WisFaq!

\require{AMSmath} geprint op vrijdag 22 november 2024

Re: Re: Re: Optimale verdeling in Excel van waarden

mijn probleem is gelijkaardig aan het voorbeeld van de vouchers, echter is er een verschil.
Ik heb een 20 tal verschillende coilbreedtes mm ( 172-419-121-151-339-579-679-779-...) en een moederrol (1490mm). Afhankelijk van het verbruik moet ik nieuwe coils bestellen, altijd uit dezelfde breedte van moederrol.
Ik heb met jou voorbeeld (oplosser in excel) dit al kunnen uittellen, maar dan krijg ik maar 1 oplossing. ik zou alle mogelijke combinaties willen weten bij elke coil die ik er zeker in wil hebben.
Dat is mijn vraag. Hoe doe je dat?

dirk Baeté
4-9-2020

Antwoord

Hallo Dirk,

Je vraag is nogal onduidelijk: je hebt(?) 20 coilbreedtes, en je hebt(?) een moederrol. Afhankelijk van het verbruik (waarvan?) moet je coils bestellen ...

Ik vermoed dat je een overzicht wilt hebben van de (alle?) mogelijkheden waarop je de breedte van de moederrol (1490 mm) kunt opdelen in coils van kleinere breedte, voor deze kleinere breedtes zijn 20 waarden toegestaan.

Omdat er (voor zover ik kan zien) geen systeem zit in deze breedtematen, zit er niets anders op dan systematisch proberen. Je start met 1 exemplaar van 1 bepaalde breedte (dat past zeker binnen 1490 mm). Als er voldoende breedte over is, dan verhoog je het aantal exemplaren van deze breedtemaat met 1. Je gaat door met verhogen van het aantal totdat er niet voldoende breedte over is om verder op te hogen. Je brengt dit aantal dan terug naar 0 en verhoogt het aantal exemplaren van de 2e breedtemaat. Vervolgens verhoog je het aantal van de 1e maat opnieuw totdat dit niet meer mogelijk is. Je brengt het aantal weer terug naar 0 en verhoogt het aantal van de 2e maat opnieuw. Dit gaat door totdat ook voor deze 2e maat niet voldoende breedte over is. De aantallen voor 1e en 2e breedtemaat gaan dan naar 0, je verhoogt het aantal exemplaren van breedtemaat nr. 3, enz. Op deze wijze kom je alle mogelijke combinaties tegen.
Vergelijk dit met de kilometerteller van een auto: het rechter cijfer gaat van 0 naar 1, 2, 3 enz, t/m 9. Na het cijfer 9 kan dit cijfer niet verder worden opgehoogd. Het gaat terug naar 0, waarbij het voorlaatste cijfer wordt met 1 opgehoogd (van 0 naar 1): de teller wijst 10 aan. Het rechter cijfer doorloopt opnieuw de waarden 0 t/m 9, springt weer naar 0 waarbij het voorlaatste cijfer weer met 1 wordt opgehoogd: van 1 naar 2, we zitten op 20 km. Na 99 km gaan beide laatste cijfers terug naar 0, er komt een honderdtal bij, enz.

In Excel zou je dit als volgt kunnen aanpakken:
Wanneer je op deze wijze rij 2 hebt gevuld met de juiste formules, dan kopieer je deze formules naar de volgende rijen. In de kolommen A t/m T vind je dan een overzicht van alle mogelijke combinaties.

Echter, wil je werkelijk een overzicht van alle mogelijkheden? Dit worden er erg veel, ik schat enkele duizenden. Hier zitten ook erg triviale mogelijkheden tussen, zoals 1 coil van breedtemaat 1 en verder niks. Ik vermoed dat je de overblijvende breedte van de moederrol wel wilt gebruiken.
Je kunt proberen om de voorwaardelijke opdrachten intelligenter te maken, of het vinden van een volgende mogelijkheid in meer stappen uit te voeren (eerst bovengenoemde procedure, maar daarna nog een test of er geen onbenutte breedte over is), maar het wordt dan snel een onleesbaar geheel. Er zijn veel handigere tools dan Excel om dit soort problemen aan te pakken. Ik zou liever een computerprogrammaatje schrijven. Zelfs voor een laagdrempelige programmeertaal als Python is dit een eenvoudig probleem.

GHvD
5-9-2020


© 2001-2024 WisFaq
WisFaq - de digitale vraagbaak voor het wiskunde onderwijs - http://www.wisfaq.nl

#90440 - Lineair programmeren - Ouder