call the optimization
This commit is contained in:
@@ -6,6 +6,7 @@ import time
|
||||
|
||||
from aman.com import Weather
|
||||
from aman.config.Airport import Airport
|
||||
from aman.sys.aco.Colony import Colony
|
||||
from aman.sys.aco.Configuration import Configuration
|
||||
from aman.sys.WeatherModel import WeatherModel
|
||||
from aman.sys.RecedingHorizonControl import RecedingHorizonControl
|
||||
@@ -101,12 +102,6 @@ class Worker(Thread):
|
||||
|
||||
self.ReportQueue.clear()
|
||||
|
||||
if 0 != len(self.RecedingHorizonControl.Windows):
|
||||
print('FCFS run:')
|
||||
for window in self.RecedingHorizonControl.Windows:
|
||||
for inbound in window.Inbounds:
|
||||
print(' ' + inbound.Report.aircraft.callsign + ': ' + str(inbound.InitialArrivalTime) + '; ' + str(inbound.EarliestArrivalTime))
|
||||
|
||||
# search the ACO relevant aircrafts
|
||||
relevantInbounds, earliestArrivalTime = self.RecedingHorizonControl.optimizationRelevantInbounds()
|
||||
if None != relevantInbounds:
|
||||
@@ -125,8 +120,17 @@ class Worker(Thread):
|
||||
if 0 != len(preceedingInbounds):
|
||||
acoConfig.PreceedingInbounds = preceedingInbounds
|
||||
acoConfig.Inbounds = relevantInbounds
|
||||
# TODO perform the ACO run
|
||||
# TODO update the RHC stages based on the ACO run result
|
||||
|
||||
# perform the ACO run
|
||||
aco = Colony(acoConfig)
|
||||
aco.optimize()
|
||||
if None != aco.Result:
|
||||
print('ACO-Sequence:')
|
||||
for inbound in aco.Result:
|
||||
print(' ' + inbound.Report.aircraft.callsign + ': ' + inbound.PlannedRunway.Name + ' @ ' + str(inbound.PlannedArrivalTime) +
|
||||
' dt=' + str((inbound.PlannedArrivalTime - inbound.InitialArrivalTime).total_seconds()))
|
||||
print('Delays: FCFS=' + str(aco.FcfsDelay.total_seconds()) + ', ACO=' + str(aco.ResultDelay.total_seconds()))
|
||||
|
||||
else:
|
||||
print('No relevant inbounds found for the optimization in ' + self.Icao)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user