150 likes | 217 Views
Flight Scheduling The Sequel. Resolving Conflicts to Reach Optimality REU Participant: Jessica McCoy Advisor: Wanpracha Art Chaovalitwongse. NC STATE UNIVERSITY. Flashback!. Track Advisory System Tracks = Routes Levels = Lanes Times = Times Safety first!
E N D
Flight SchedulingThe Sequel Resolving Conflicts to Reach Optimality REU Participant: Jessica McCoy Advisor: Wanpracha Art Chaovalitwongse
NC STATE UNIVERSITY Flashback! • Track Advisory System • Tracks = Routes • Levels = Lanes • Times = Times • Safety first! • Each car must be separated by route, lane, time, or some combination.
NC STATE UNIVERSITY The problem • Resolve conflicts while minimizing • Number of track changes • Number of level changes • Combined delay of all flights • Levels and departure times must remain within bounds • Flights must be separated appropriately
NC STATE UNIVERSITY IP Formulation – 1 min c1*y1(f) + c2*y2(f) + c3*y3(f) s.t. r2(f) ≤ 4 Þ 1 ≤ x2(f) ≤ 4 for all fÎFLIGHTS r2(f) ≥ 5 Þ 5 ≤ x2(f) ≤ 8 for all fÎFLIGHTS r3(f) ≤ x3(f) ≤ r3(f) + 20 for all fÎFLIGHTS where ci(f) are cost coefficients, ri(f) are requested parameters, xi(f) are actual values, and yi(f) are the changes in values; 1 = track, 2 = level, and 3 = time
NC STATE UNIVERSITY IP Formulation – 2 min c1*y1(f) + c2*y2(f) + c3*y3(f) s.t. y1(f) = | x1(f) – r1(f) | for all fÎFLIGHTS y2(f) = | x2(f) – r2(f) | for all fÎFLIGHTS y3(f) = x3(f) – r3(f) for all fÎFLIGHTS 20*|x2(f) – x2(ff)| + |x3(f) – x3(ff)| ≥ 20 for all f,ffÎFLIGHTS, f≠ff xi(f), yi(f) Î Z ≥ 0 for all fÎFLIGHTS for i = 1,2,3
NC STATE UNIVERSITY Challenges of existing code • Provides non-optimal solutions • Can only handle a fraction of a full day’s flights • Does not allow track changes as viable conflict resolution • Can formulation be improved?
NC STATE UNIVERSITY Modeling absolute value - 1 y2(f) = | x2(f) – r2(f) | is equivalent to the system y2(f) ≥ x2(f) – r2(f) y2(f) ≥ r2(f) – x2(f) y2(f) = max{ x2(f) – r2(f), r2(f) – x2(f) }
NC STATE UNIVERSITY Modeling absolute value - 2 However, difflev(f,ff) = |x2(f) – x2(ff)| is NOT equivalent to the system difflev(f,ff) ≥ x2(f) – x2(ff) difflev(f,ff) ≥ x2(ff) – x2(f)
NC STATE UNIVERSITY difflev(f,ff) = |x2(f) – x2(ff)| difflev(f,ff) ≤ lev(ff) – lev(f) + M*y(f,ff) difflev(f,ff) ≥ lev(ff) – lev(f) – M*y(f,ff) difflev(f,ff) ≤ lev(f) – lev(f) + M*(1-y(f,ff)) difflev(f,ff) ≥ lev(ff) – lev(f) – M*(1-y(f,ff)) versus difflev(f,ff) = lev1(f,ff) + lev2(f,ff) lev1(f,ff) – lev2(f,ff) = x2(f) – x2(ff) M*y(f,ff) ≥ lev1(f,ff) M*(1-y(f,ff)) ≥ lev2(f,ff)
NC STATE UNIVERSITY Version Comparison* * For comparison’s sake, all of the above values result from a file containing information for 20 flights.
NC STATE UNIVERSITY Results • Improvements in output consistency; debugged code • Track change capability makes model more realistic • Multiple viable formulations with different strengths
NC STATE UNIVERSITY Future Improvements • Improve model capacity • Keep trying different formulations • Focus on constraints, and output • Goal: find version that performs consistently • Streamline code for faster processing times, regardless of data set
NC STATE UNIVERSITY REU in a nutshell • Modeling a “real-world” problem • Experience with background research • Developing familiarity with new software • MISTA conference
NC STATE UNIVERSITY Any questions? For more information, check out my webpage at http://dimax.rutgers.edu/~jhmccoy/