Lorsque vous écoutez de nouveaux meilleurs événements de solutions en temps réel (Solver.addSolverListener
), il est facile de déterminer le nombre de véhicules utilisés, par itérer tous Vehicle
cas et vérifier si nextVisit
ISN » t null
.
Notez que si vous voulez réduire le nombre de véhicules d'occasion, vous aurez besoin d'ajouter une contrainte dure ou softt pour ce qui est simple: when Vehicle(nextVisit != null) then addHard(-1); end
En ce qui concerne l'algorithme utilisé pour résoudre VRP: vérification le solveur config XML. Nous supportons beaucoup d'algo, dans le XML de configuration vrp benchmark, nous les laissons se battre les uns contre les autres pour déterminer le meilleur algo pour la production.
Merci beaucoup, Geoff. Je me demandais simplement si l'algorithme supporte également des capacités hétérogènes pour les véhicules, c'est-à-dire que le véhicule 1 a une capacité de 200 et le véhicule 2 a une capacité de 100 ... et ainsi de suite. Merci encore !! – user2876943
Je suis très nouveau à Optaplanner. J'ai juste couru le runExampls.bat pour essayer quelques instances de VRP. Suite à votre suggestion, j'ai apporté des modifications au fichier "vehicleRoutingScoreRules.drl" situé à "optaplanner-distribution-6.3.0.Final \ examples \ sources \ src \ main \ ressources \ org \ optaplanner \ examples \ vehiclerouting \ solver". Est-ce exact? J'ai ajouté la contrainte: règle "minVehicles" \t quand \t \t véhicule $: Véhicule (! NextVisit = null) \t puis \t \t scoreHolder.addHardConstraintMatch (kcontext, -1); end Toutefois, je ne vois aucun effet lors de l'utilisation du fichier runExamples.bat. Y a-t-il un lien auquel je peux me référer? Merci – user2876943
voir les documents "exécuter des exemples de la source" (le .bat et .sh les exécuter à partir des binaires jar) –