\require{AMSmath}
WisFaq - de digitale vraagbaak voor wiskunde en wiskunde onderwijs


Printen

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

 Dit is een reactie op vraag 90437 
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 B
Ouder - vrijdag 4 september 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:
  • Maak 20 kolommen, bv A t/m T. Per rij komt hierin het aantal van de betreffende maat te staan.
  • De eerste rij vul je met een triviale mogelijkheid: elke cel is nul, alleen de laatste cel T1 is 1 (dus: alleen 1 coil van de laatste breedtemaat).
  • In cel U1 plaats je een formule waarmee je de niet-gebruikte breedte brekent: voor elke cel A1 t/m T1 bereken je de inhoud van deze cel x de betreffende coilbreedte, trek deze waarde af van 1490.
  • In cel T2 komt een voorwaardelijke opdracht: als U1 groter is dan coilbreedte nr. 20, dan wordt T2 1 meer dan T1. Anders wordt T2=0.
  • In cel S2 komt ook een voorwaardelijke opdracht: als T2=0, probeer je S2 op te hogen.
  • Dit 'proberen op te hogen' is opnieuw een voorwaardelijke opdracht: als U1 groter is dan coilbreedte nr. 19, dan wordt S2 1 meer dan S1. Anders wordt S2=0.
  • In de cellen A2 t/m R2 komen dezelfde soort formules als in S2: als de aantallen rechts allemaal 0 zijn, dan probeer je het aantal met 1 op te hogen.
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.


zaterdag 5 september 2020

©2001-2024 WisFaq