In een stuk software probeer ik middels een algoritme de beste combinatie te vinden van locaties om een order te picken. Dat lukt goed en snel, behalve als er veel locaties nodig zijn om te voldoen aan de vraag in de order. Op dat moment wordt het onbruikbaar traag en om die reden zoek ik naar een optimalisatie/alternatief algoritme. Zoals uit dit topic blijkt heb ik daar hulp bij nodig.
Het algoritme zoekt uit welke combinatie van locaties gepicked moeten worden voor het kunnen uitleveren van een order.
De variabele zijn als volgt:
Op dit moment heb ik een redelijk eenvoudig backtrack algoritme geimplementeerd wat alle mogelijk combinaties afloopt en uiteindelijk het resultaat met de laagste score teruggeeft. Dit werkt perfect, maar indien er veel verschillende locaties nodig zijn om te voldoen aan de vraag in de order en er staan veel regels in de order dan zijn het aantal combinaties te groot om in redelijk tijd af te lopen. Voorbeeld hiervan is een order waarbij er 25 locaties zijn om te checken en er tenminste 10 locaties nodig zijn om te voldoen aan de vraag. In dat geval is het te maken aantal combinaties 2510.
Ik ben niet op zoek naar een oplossing, maar vooral tips/suggesties voor alternatieve oplossingsrichtingen. De aanpak nu om simpelweg te bruteforcen gaat niet nooit efficient worden bij een groot aantal combinaties.
Het algoritme zoekt uit welke combinatie van locaties gepicked moeten worden voor het kunnen uitleveren van een order.
De variabele zijn als volgt:
- Een order bestaat uit 1 of meerdere artikelen
- Een artikel op de order heeft een bestel hoeveelheid van 1 of meer
- Een locatie in het magazijn heeft een "gewicht". Dit is een nummeriek getal wat iets zegt over de moeilijkheid om te picken. Hoe lager, hoe gunstiger.
- Elk magazijn heeft een "gewicht". Dit is een nummeriek getal wat iets zegt over de toegankelijkheid. Hoe lager, hoe gunstiger.
- Eén artikel kan op verschillende locaties liggen in verschillende magazijnen
Op dit moment heb ik een redelijk eenvoudig backtrack algoritme geimplementeerd wat alle mogelijk combinaties afloopt en uiteindelijk het resultaat met de laagste score teruggeeft. Dit werkt perfect, maar indien er veel verschillende locaties nodig zijn om te voldoen aan de vraag in de order en er staan veel regels in de order dan zijn het aantal combinaties te groot om in redelijk tijd af te lopen. Voorbeeld hiervan is een order waarbij er 25 locaties zijn om te checken en er tenminste 10 locaties nodig zijn om te voldoen aan de vraag. In dat geval is het te maken aantal combinaties 2510.
Ik ben niet op zoek naar een oplossing, maar vooral tips/suggesties voor alternatieve oplossingsrichtingen. De aanpak nu om simpelweg te bruteforcen gaat niet nooit efficient worden bij een groot aantal combinaties.