=============================================================================== Title: hyparr Project: Transformation of HYSDEL model into PWA model Purpose: Dervive hyperplane arrangement Input: Hyp: hyperplanes Hyp.A(i,:)*x = Hyp.B(i), for i = 1...rows(Hyp.A) that define a hyperplane arrangement P: constraints P.A*x <= P.B define polyhedron P=[] is possible dom: constraints dom.A*x <= dom.B defines the domain these constraints are only used if dom.constr exists lpsolver verbose minR: minimal required radius of Chebycheff ball of polyhedra Output: delta: hyperplane arrangement, or the markings of the regions generated by the hyperplanes Hyp, where delta(:,j) represents the j-th region of the arrangement as a {-1, 1} vector. Only the markings of the regions having feasible points in P and dom are returned. Example: delta = [1 1 -1; 1 -1 -1] means that there were 2 hyperplanes and that they induce 3 polyhedra: 1. A x <= B; 2. A(1,:) <= B(1), A(2,:) >= B(2); 3. A(1,:) >= B(1), A(2,:) >= B(2); Note: This definition is contrary to the one in optMerge (and Ziegler) Comments: By default, the reverse search tool by Komei Fukuda is currently not used, as it does not work realiably for large problems. Instead, the feasibility of the regions is checked by solving LPs. The efficiency is improved by the following means: * if dom.constr=1, only regions with feasible points in dom are considered * large hyperplane arrangements are stored in the function * in a last step, only the regions with feasible points in P are returned (thus allowing the storage of already computed hyperplane arrangements) Authors: Tobias Geyer <geyer@control.ee.ethz.ch>, Fabio Torrisi