You are on page 1of 5

Angelica Hiemstra van ’t Slot, 500762735 (klas 4)

Lina Hottentot, 500811177 (klas 4)


Kant Manyam, 500840165 (klas 6)
Warda El Mallouki, 500827731 (klas 6)
Nick Manshanden, 500859122 (klas 6)

Beroepsproject 1.2 Case AAA Bieren

AAA Bieren is een middelgrote bierbrouwerij met een afzet in Europa en de VS.
Gevraagd wordt een methode te ontwikkelen die een nieuwe wekelijkse cyclusplanning kan
maken die optimaal is, waarbij:
• de eerste 8 typen in ieder geval worden geproduceerd;
• de uit te besteden hoeveelheid werk zo laag mogelijk is.
Hierbij mag ervan uit worden uitgegaan dat de behoefte elke week (ongeveer) hetzelfde is
als in het gegeven voorbeeld voor de komende week.

De volgende gegevens zijn verkregen:


Elk type bier wordt aldus 1 keer per week gepland op de verpakkingslijn. Er zijn 12
verschillende typen die worden bepaald door:
• het biersoort: 1 = Pils, 2 = Premium en 3 = Special;
• de soort verpakking: 1= fles 33 cl. 2 = fles 0,5 liter, 3 = blikje 33 cl.;
• het soort etiket (10 verschillende soorten, afhankelijk van de inhoud en soort bier, maar
ook of het voor de VS is bestemd, danwel de Nederlandse markt). 11 = geen etiket bij blikjes.
• desoortdop:1=NL,2=VSen3=geen(blikjes).

De verschillende typen die men onderscheidt, is in Tabel 1 aangegeven.


Type Soor Soort Soort Soort
Bier t bier fles etiket dop
1 1 1 1 1
2 1 1 2 2
3 1 2 3 1
4 1 2 4 2
5 2 1 5 1
6 2 1 6 2
7 2 2 7 1
8 2 2 8 2
9 1 3 11 3
10 2 3 11 3
11 3 1 9 1
12 3 2 10 2
Tabel 1: De 12 botteltypen in de week-cyclusplanning
De omsteltijden zijn bekend en staan in Tabel 2 gegeven.
Van↓ Naar→
Type 1 2 3 4 5 6 7 8 9 10 11 12
1 - 1,8 3,2 3,6 5,1 5,4 7,2 7,3 3,9 6,9 4,9 7,8
2 1,2 - 2,5 3,6 5,5 4,9 7,6 6,8 4,1 7,1 6,4 7,2
3 2 3,3 - 2,3 6,6 6,9 5,4 5,5 3,8 6,8 5,6 4,6
4 2,7 2,8 0,7 - 7 6,4 5,8 5 3,7 6,7 6 4,1
5 3,8 4,1 6,4 6,4 - 1,1 2,9 3,2 6,4 4,1 3,3 5,6
6 4 3,6 6 5,9 0,9 - 2,8 2,6 6,1 3,8 3,9 5,1
7 5,4 5,6 4,2 4,6 2 3,1 - 1,4 5,8 3,5 5,1 3,8
8 5,2 5,1 4,1 4,1 2,4 2,7 0,7 - 6 3,7 5,7 3,3
9 2,4 2,5 2,7 2,8 5,4 5,5 5,7 5,8 - 3 6,3 6,7
10 4,7 4,8 5 5,1 2,4 2,5 2,7 2,8 2,3 - 5,5 5,9
11 4,5 4,6 4,9 6,9 2,9 3,6 4,5 4,9 6,8 6,4 - 2,5
12 6,7 5,6 3,5 4,6 6,3 6 3,1 2,6 6,3 5,9 2,1 -
Tabel 2: Omsteltijden (in aantal uren).

Voor de planning voor de komende week zijn de orders bekend en dit heeft geresulteerd in
een behoefte die in Tabel 3 is gegeven.
Type 1 2 3 4 5 6 7 8 9 10 11 12
Behoefte 26 16 24 14 13 16 18 5 11 12 7 5
Tabel 3: Behoefte komende week per type bier, uitgedrukt in aantal uren productie op de verpakkingslijn.

Beslissingsvariabelen
1, als bier van typei wordt omgezet naar bier vantype j
{
X ij = 0 , als bier vantype i niet wordt omgezet naar bier van type j
(i=1 , … ,12 ; j=1 ,… , 12)

Y i= {0 ,1,alsalsbierbiertypetypeinieti geproduceerd wordt (i=1 , … ,12)


geproduceerd wordt

Parameters
Oij =Omsteltijd ∈uren van bier type inaar bier type j
B j =Behoefte van bier type j
T i=Tijd waarop je product i produceert

Doelfunctie
12
max Z=∑ B j Y j
j=1
Randvoorwaarden
1. De som van als bier type i naar type j wordt omgeschakeld, moet bier type i ook
worden geproduceerd.

12

∑ X ij=Y i ∀ i∈ ( 1 ,… , 12 ) met j ≠i
j=1

2. De som van bier type j naar type i wordt omgeschakeld, moet bier type j ook worden
geproduceerd.

12

∑ X ij=Y j ∀ j ∈ ( 1 , … ,12 ) met i≠ j


i=1

3. Er zijn maximaal 168 uren in 1 week voor de productie.

12 12

∑ ∑ Oij X ij+∑ B j Y j ≤168


i=1 j=1 j

4. Om een goeie volgorde te voor het omschakelen van je bieren te krijgen kan je deze
formule gebruiken om subgroepen tegen te gaan.

T j ≥T i +1−M ( 1−X ij ) ∀ i ≠ j met i , j ≠ 0 en i,j ≠ 1

Tekenrestricties
X ij =1 of 0 ( i=1 , … ,12 ; j=1, … , 12 )Y i=1 of 0(i=1, … , 12)

Beslissingsvariabelen:
Voor deze oplossing kunnen we 2 binaire beslissingsvariabelen gebruiken. Dat geeft 1 als iets
gedaan wordt en 0 als iets niet gedaan wordt. Wat we hebben gedaan is aangeven met x_ij,
wat overigens betekent: Het omstellen van bier type i naar bier type j. Dus als het wordt
omgezet dan geeft de binaire variabele 1 aan. Verder hebben we dat ook voor y_i gedaan,
want je moet natuurlijk ook weten of het geproduceerd wordt of niet, dus 1 als het
geproduceerd wordt en 0 als het niet geproduceerd wordt. Je hoeft alleen de letter i te
geven, want voor het produceren zijn er maar 12 types. Met deze binaire variabelen kunnen
we dus straks een doelfunctie maken en randvoorwaarden.

Doelfunctie

Er zijn meerdere manieren om het probleem te interpreteren en op te lossen. Wij hebben


gekozen voor maximaliseren. We willen dus de productie maximaliseren. Dat hebben we
gedaan door gebruik te maken van de parameter b_i dat de behoefte betekent van bier type
i uitgedrukt in productie uren. Tevens maken we gebruik van y_i (of het geproduceerd
wordt). Als je dus de behoefte van bier type i neemt en dat vermenigvuldigd met de binaire
variabele y_i, wat 1 is als het geproduceerd wordt en dat voor alle bier typen doet kan je
daar de som van nemen wat dus het totaal geeft van je productie uren.

Randvoorwaarden

De eerste randvoorwaarde zegt: Als je bier j produceert, dan betekent dat dat je de machine in
moet stellen om bier j te kunnen produceren. Dit hoef je maar een keer te doen (want je produceert
een bepaalde biersoort maar een keer per week). 

Als je bier j niet gaat produceren, dan hoef je de machine ook niet in te stellen om biersoort j te
kunnen produceren, en dus zijn voor alle waardes van i x_ij =0.

Deze randvoorwaarden kun je bij elkaar voegen door te zeggen:

als je biersoort j produceert, dan schakel je precies een keer de machine om naar biersoort j. Als je
biersoort j niet produceert, hoef je de machine ook niet in te stellen om biersoort j te kunnen
produceren. 

Als je biersoort i produceert, betekent dat ook dat je de machine een keer omschakelt van biersoort i
naar een andere biersoort (want hoe kun je anders het volgende biertje gaan produceren?) Weg
schakelen van bier i naar een ander bier hoef je maar een keer te doen, want er is maar een bier dat
direct na i wordt geproduceerd. 

Als je biersoort i niet gaat produceren, dan hoef je de machine niet van i naar een ander bier om te
zetten (want de machine is nooit ingesteld om i te kunnen produceren ). 

Als je alleen deze randvoorwaarden gebruikt, dan krijg je problemen, doordat je te korte cyclussen
hebt.
Bijvoorbeeld: de oplossing zegt x_12 = 1 en x_21 = 1. Dan produceer je eerst bier 1, dan bier 2, dan
weer bier 1… En dan kan je nooit een ander bier produceren.

Dus we hebben een nieuwe variabele geintroduceerd wat eigenlijk een hulpvariabele
voorstelt.
De variabele t geeft een volgorde aan waarin de bieren geproduceerd worden. Dus, als t_j >
t_i, dan wordt bier i eerder in de week geproduceerd en bier j later. Wat je wilt is dat t_j > t_i
als bier j na bier i wordt geproduceerd (de tijd van bier j is later dan de tijd van bier i). Dit
voorkomt cyclussen zoals het voorbeeld met x_12 =1 en x_21 = 1. Want hoe kun je hebben
t_1 >t_2 > t_1 > t_2.
Je moet alleen wel t niet definiëren voor één van de variabelen (want uiteindelijk wil je wel
een cyclus hebben van alle biertjes die je hebt geproduceerd). 

Als laatste randvoorwaarde moet je je natuurlijk ook houden aan je aantal uren. Je hebt een
week en dat is 168 uur. Dus wat je kan zeggen is: De som van de omsteltijd voor zowel i als j
en dat vermenigvuldigen met de binaire variabele of het uberhaupt wordt omgesteld. En dat
optellen de behoefte die je vermenigvuldigd met de binaire variabele of het uberhaupt
geproduceerd wordt. Dat geeft het totaal aantal uren en dat moet dus gelijk of kleiner zijn
dan 168 uren.

You might also like