580 likes | 685 Views
Simplex. “walk on the vertices of the feasible region”. v = current vertex if neighbor v’ of v with better objective then move to v’. Simplex. “walk on the vertices of the feasible region”. vertex = feasible point defined by a collection of d inequalities.
E N D
Simplex “walk on the vertices of the feasible region” v = current vertex if neighbor v’ of v with better objective then move to v’
Simplex “walk on the vertices of the feasible region” vertex = feasible point defined by a collection of d inequalities neighbors = vertices sharing d-1 of the inequalities
v = current vertex if neighbor v’ of v with better objective then move to v’ Simplex max cT x Ax b x 0 assume v = (0,...,0)T i such that ci > 0 iff v is not optimal
v = current vertex if neighbor v’ of v with better objective then move to v’ Simplex max cT x Ax b x 0 v’ = (0,..,xi,..,0)T Make xi as big as possible stopper: aj x = bj
v = current vertex if neighbor v’ of v with better objective then move to v’ Simplex max cT x Ax b x 0 v’ = (0,..,xi,..,0)T Make xi as big as possible stopper: aj x = bj Substitute: xi’ = bj – aj x
Simplex max 2x+y x+y 4 y-x 1 x-y 2 y 2 x 0 y 0 Is (x,y)=(0,0) optimal?
Simplex max 2x+y x+y 4 y-x 1 x-y 2 y 2 x 0 y 0 Let’s increase y as much as we can.
Simplex max 2x+y x+y 4 y-x 1 x-y 2 y 2 x 0 y 0 substitute z=1-(y-x)
Simplex max 2x+y x+y 4 y-x 1 x-y 2 y 2 x 0 y 0 substitute z=1-(y-x) z 0 y x-z+1
Simplex max 2x+y x+y 4 y-x 1 x-y 2 y 2 x 0 y 0 max 3x-z+1 2x-z 3 z 0 z 1 x-z 1 x 0 z-x 1 y x-z+1
Simplex max 3x-z+1 2x-z 3 z 0 z 1 x-z 1 x 0 z-x 1 Is (x,z)=(0,0) optimal?
Simplex max 3x-z+1 2x-z 3 z 0 z 1 x-z 1 x 0 z-x 1 Let’s increase x as much as we can.
Simplex max 3x-z+1 2x-z 3 z 0 z 1 x-z 1 x 0 z-x 1 substitute w=1-(x-z)
Simplex max 3x-z+1 2x-z 3 z 0 z 1 x-z 1 x 0 z-x 1 substitute w=1-(x-z) w 0 x 1+z-w
Simplex max 3x-z+1 2x-z 3 z 0 z 1 x-z 1 x 0 z-x 1 max 2z-3w+4 z-2w 1 z 0 z 1 w 0 w-z 1 w 2 x 1+z-w
Simplex max 2z-3w+4 z-2w 1 z 0 z 1 w 0 w-z 1 w 2 Is (z,w)=(0,0) optimal?
Simplex max 2z-3w+4 z-2w 1 z 0 z 1 w 0 w-z 1 w 2 Let’s increase z as much as we can.
Simplex max 2z-3w+4 z-2w 1 z 0 z 1 w 0 w-z 1 w 2 substitute u=1-(z-2w)
Simplex max 2z-3w+4 z-2w 1 z 0 z 1 w 0 w-z 1 w 2 substitute u=1-(z-2w) u 0 z 1+2w-u
Simplex max 2z-3w+4 z-2w 1 z 0 z 1 w 0 w-z 1 w 2 max w-2u+6 u 0 u-2w 1 2w-u 2 w 0 u-w 2 w 2 z 1+2w-u
Simplex max w-2u+6 u 0 u-2w 1 2w-u 2 w 0 u-w 2 w 2 Is (u,w)=(0,0) optimal?
Simplex max w-2u+6 u 0 u-2w 1 2w-u 2 w 0 u-w 2 w 2 Let’s increase w as much as we can.
Simplex max w-2u+6 u 0 u-2w 1 2w-u 2 w 0 u-w 2 w 2 substitute v=2-(2w-u)
Simplex max w-2u+6 u 0 u-2w 1 2w-u 2 w 0 u-w 2 w 2 substitute v=2-(2w-u) v 0 w 1+u/2-v/2
Simplex max w-2u+6 u 0 u-2w 1 2w-u 2 w 0 u-w 2 w 2 max 7-3u/2-v/2 u 0 v 3 v 0 v-u 2 u+v 6 u-v 2 w1+u/2-v/2
Simplex max 7-3u/2-v/2 u 0 v 3 v 0 v-u 2 u+v 6 u-v 2 Is (u,v)=(0,0) optimal?
Simplex max 7-3u/2-v/2 u 0 v 3 v 0 v-u 2 u+v 6 u-v 2 7 YES Is (u,v)=(0,0) optimal?
Simplex (u,v)=(0,0) w 1+u/2-v/2 = 1 z 1+2w-u = 3 x 1+z-w = 3 y x-z+1 = 1 (x,y)=(3,1)
Simplex (x,y)=(3,1) max 2x+y x+y 4 y-x 1 x-y 2 y 2 x 0 y 0 is an optimal solution
Simplex – geometric view (x,y)=(3,1) max 2x+y x+y 4 y-x 1 x-y 2 y 2 x 0 y 0
Getting the first point min 1T z A x + z = b x 0 z 0 min cT x Ax=b x 0 wlog b 0
Points, lines point = (x,y) line = (x1,y1),(x2,y2) = 2 points
Line as a point and a vector point = (x,y) x1+t (x2-x1),y1+t (y2-y1) line = (x1,y1),(x2-x1,y2-y1) = point and a vector
Is point on a line? point = (x,y) x=x1+t (x2-x1) y=y1+t (y2-y1) line = (x1,y1),(x2,y2)
) ( x2-x1 x-x1 y2-y1 y-y1 det Is point on a line? point = (x,y) t (x2-x1)=x-x_1 t (y2-y1)=y-y_1 line = (x1,y1),(x2,y2)
) ( x2-x1 x-x1 y2-y1 y-y1 det Is point on a line? point = (x,y) is on line = (x1,y1),(x2,y2) if and only if = 0
) ( x2-x1 x-x1 y2-y1 y-y1 det Is point on a line? =0 for x on the line >0 <0
Line segment x=x1+t (x2-x1) y=y1+t (y2-y1) t [0,1] line segment = (x1,y1),(x2,y2)
Do two line segments intersect? a1=(x1,y1), a2=(x2,y2) a3=(x3,y3), a4= (x4,y4) a3 L2 L1 a2 a4 a1 a1 and a2 on different sides of L2 a3 and a4 on different sides of L1 or endpoint of a segment lies on the other segment
Many segments, do any 2 intersect? (a1,b1) (a2,b2) ... (an,bn) O(n2) algorithm
Many segments, do any 2 intersect? O(n log n) algorithm assume no two points have the same x-coordinate no 3 segments intersect at one point
Sweep algorithm sort points by the x-coordinate
Sweep algorithm events: insert segment delete segment
Sweep algorithm will find the left-most intersection point the lines are “neighbors on the sweep line”
Sweep algorithm sort the endpoints by x-coord p1,...,p2n T empty B-tree for i from 1 to 2n do if pi is the left point of a segment s INSERT s into T check if s intersects prev(s) or next(s) in T if pi is the right point of a segment s check if prev(s) interesects next(s) in T DELETE s from T
Area of a simple polygon (x3,y3) (x2,y2) (x1,y1)
Area of a simple polygon (x1,y1),...,(xn,yn)
Area of a simple polygon (x1,y1),...,(xn,yn) (xn+1,yn+1)=(x1,y1) R=0 for i from 1 to n do R=R+(yi+1+yi)*(xi+1-xi) return |R|/2