Fairness - balance number of locations serviced per vehicle
Personne n'a encore pris cette issue.
- Langage dominant
- C++
- Étoiles
- 155
- Forks
- 47
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
We want to be able to balance the number of locations serviced by each vehicle to be as even as possible. The use-case is for example drivers who are getting paid (at least partially) by number of deliveries.
This constraint should be behind a flag and optional.
Implementation: use the underlying solver to
- Establish a vehicle vars <-> vehicle counts relationship via the
Distributeconstraint - Add a
Deviationconstraint for vehicle counts targeting thedeviationvar - Minimizing the
deviationvar
Roughly as follows:
std::vector<IntVar*> vehicleCounts;
for (auto vehicle = 0; vehicle < numVehicles; ++vehicle)
vehicleCounts.push_back(solver->MakeIntVar(0, numNodes));
solver->AddConstraint(solver->MakeDistribute(vehicleVars, vehicleCounts));
auto* deviationVar = solver->MakeIntVar(0, numNodes * numNodes);
solver->AddConstraint(solver->MakeDeviation(vehicleCounts, deviationVar, numNodes));
model.AddVariableMinimizedByFinalizer(deviationVar);
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Aucun fichier ni test n’est nommé. Commencez par localiser le modèle d’itinéraires de véhicules et sa configuration des contraintes optionnelles, puis examinez comment le solver sous-jacent expose Distribute, Deviation et la minimisation par finalizer. C’est terminé lorsqu’un flag optionnel active un nombre équilibré de lieux par véhicule et que le solver en minimise l’écart.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- backend
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 28/100