2016-05-27 17 views
3

Wir haben ein schwieriges Problem mit Optaplanner. Wir arbeiten an einem Projekt, für das wir eine optimierte Fahrzeugroute berechnen müssen, die bestimmte Stunden berücksichtigt, zwischen denen die Kunden gewartet werden möchten.arrivalTime in Optaplanner XML Lösungsdatei

Wir konnten eine vrp-Datei erstellen, wie im Beispielordner von Optaplanner angegeben. Die Stunden der Zeitfenster sind in Sekunden kodiert. Es lädt korrekt in der GUI-App.

Allerdings scheint das Routing-Problem nicht durchführbar. Wenn wir die Zeitfenster nicht berücksichtigen, erhalten wir ein Ergebnis. Wir haben uns die XML-Datei angesehen und festgestellt, dass die Ankunftszeit nicht den fälligen Zeiten entspricht. In der Tat würden wir gerne wissen, wie man das XML interpretiert, um unseren Fehler zu finden.

<VrpVehicle id="19"> 
    <id>1</id> 
    <capacity>75</capacity> 
    <depot class="VrpTimeWindowedDepot" reference="14"/> 
    <nextCustomer class="VrpTimeWindowedCustomer" id="20"> 
    <id>4</id> 
    <location class="VrpRoadLocation" reference="11"/> 
    <demand>1</demand> 
    <previousStandstill class="VrpVehicle" reference="19"/> 
    <nextCustomer class="VrpTimeWindowedCustomer" id="21"> 
     <id>2</id> 
     <location class="VrpRoadLocation" reference="7"/> 
     <demand>1</demand> 
     <previousStandstill class="VrpTimeWindowedCustomer" reference="20"/> 
     <vehicle reference="19"/> 
     <readyTime>39600</readyTime> 
     <dueTime>43200</dueTime> 
     <serviceDuration>60</serviceDuration> 
     <arrivalTime>3300060</arrivalTime> 
    </nextCustomer> 

Kennt jemand die von Optaplanner erzeugte Ausgabe? Wie können wir die vorgeschlagene Route abrufen und was bedeutet ArrivalTime? Im Moment betrachten wir 4-2 als die optimale Route für Fahrzeug 19. Ist das korrekt?

Mit freundlichen Grüßen, MB

Antwort

0

Ihre Interpretation über die Route korrekt ist, trotz dass es Fahrzeug 1, die Kunden 4 dient -> 2, und dass es nicht unbedingt optimal, aber die aktuelle Route.

Die Ankunftszeit in den Beispielen wird von ArrivalTimeUpdatingVariableListener aktualisiert, die die Standorte von Kunden verwendet, um die Entfernung zu bestimmen. Diese Entfernungen können nicht ohne weiteres für Ihren Anwendungsfall verwendet werden, da ihr Gerät keine Sekunde und wahrscheinlich um den Faktor 1000 skaliert ist.

Sie müssen die Entfernung in Sekunden haben oder Ihre Sekunden auf das Gerät skalieren 'in den Beispielen verwendet, um die Ankunftszeit korrekt zu berechnen.