Laboratoro d Smulazone e Ottmzzazone AA 2003/04 Gruppo 4 Ross Matteo Loll Luca Tema n 25: Poszonamento mpant Una dtta che produce ceramche deve decdere dove localzzare suo mpant produttv, sceglendo tra una sere d possbl nuove sed. Per ogn potenzale nuova sede s conosce la dmensone dell'mpanto che v s può realzzare e, d conseguenza, s conosce la massma capactà produttva (ntesa come numero d stock d pastrelle prodotte n un gorno) che s può ottenere dall'mpanto e s può avere una stma attendble del costo nzale d costruzone dell'mpanto e del costo d funzonamento dell'mpanto (legato alla produzone d uno stock d pastrelle). Attualmente le possbl sed per la costruzone d nuov mpant sono 6 e hanno le caratterstche evdenzate dalla tabella seguente. IMPIANTO MAX CAP COSTO INIT COSTO FUN 1 100 256 7 2 90 200 9 3 75 180 11 4 30 90 18 5 45 110 16 6 70 135 10 S ntende analzzare l costo presunto che la dtta deve sostenere nel caso n cu la sua capactà produttva a regme debba essere d (almeno) 200 stock d pastrelle al gorno. Modello Parametr: n mpant d produzone d possble costruzone CI Costo d costruzone del -esmo mpanto (= 1,...,n) CF Costo d produzone da parte del -esmo mpanto d uno stock d pastrelle (= 1,...,n) MaxC Massma capactà d produzone(n numero d stock al gorno) del -esmo mpanto(=1,...,n) Pr odmn Mnma produzone gornalera globale(n numero d stock d pastrelle) rchesta all nseme de nuov mpant costrut Varabl decsonal: Nel problema abbamo necesstà d rcavare qual mpant attvare e n che msura far produrre a quest. Appare chara, qund, la necesstà d rappresentare l numero d stock prodott gornalmente da cascun mpanto: Pr od Numero d stock prodott gornalmente dal -esmo mpanto (= 1,...,n)
Dal valore d Prod è faclmente possble dedurre se un mpanto è attvo o meno, rappresenteremo comunque questo con una varable(bnara) dedotta drettamente da quella sopra: 1 se Prod > 0 ossa se l'mpanto esmo è attvo ( = 1,..., n) Att = 0 se Prod = 0 Questa c rsulterà utle nella dcharazone de vncol. Modello PLI: Cò che s vuole è, come appare charo, mnmzzare l costo complessvo dell operazone d localzzazone degl mpant, la funzone obbettvo sarà costtuta qund dalla somma de cost d costruzone e de cost d produzone (d ogn stock) per ognuno de n mpant: n Mn CI * Att + CF *Pr od Vncol: = 1 n = 1 Pr od >= Pr odmn Vncolo sulla produzone globale del sstema d mpant che deve essere maggore o uguale al mnmo mposto n ProdMn. Pr od <= MaxC =1,,n Ogn mpanto dove rspettare la propra capactà massma d produzone gornalera espressa da MaxC Pr od >= 0 =1,,n Appare charo che la produzone debba essere maggore d 0. { 0,1} Att =1,,n Modello MPL Rportamo l codce MPL della versone con Input/Output n foglo EXCEL. Per l esecuzone attraverso Optmax n EXCEL è necessaro modfcare nel codce VBA relatvo al pulsante Solve le strnghe: MPL.WorkngDrectory = " " MPL.Solvers.Add (" ") Inserendo nella prma la drectory d lavoro contenente l fle Excel e mpl, mentre nella seconda l rfermento al rsolutore che d ntende utlzzare per l calcolo della soluzone. In manera analoga è necessaro apportare le stesse modfche al codce VBA per la versone ACCESS. TITLE Poszonamento_Impant; INDEX!Indce degl mpant d produzone mp := EXCELRANGE("PosImpant.xls","mpant");
DATA!Massma Capactà per mpanto MaxC[mp] = EXCELRANGE("PosImpant.xls","MaxCap");!Costo d costruzone per ogn mpanto IntCost[mp] = EXCELRANGE("PosImpant.xls","CostoInt");!Costo d produzone per uno stock per mpanto FunCost[mp] = EXCELRANGE("PosImpant.xls","CostoFun");!Produzone totale mnma rchesta dal sstema ProdMn = EXCELRANGE("PosImpant.xls","Req"); DECISION VARIABLES!Stock prodott gornalmante da ogn mpanto Prod[mp] EXPORT TO EXCELRANGE("ProdRange");!Attvazone o meno dell'mpanto d ndce "mp" Att[mp] EXPORT TO EXCELRANGE("AttRange"); MACRO!Calcolo del costo totale d produzone degl stock rchest n ProdMn TotProdCost:= SUM(mp: Prod * FunCost) EXPORT TO EXCELRANGE("CostoProd");!Calcolo del costo totale d costruzone degl mpant TotIntCost:= SUM(mp: Att * IntCost) EXPORT TO EXCELRANGE("CostoI"); MODEL!Funzone obbettvo, somma de cost parzal (sopra) MIN Costo=TotProdCost + TotIntCost ; SUBJECT TO BINARY END!Vncolo sulla produzone totale degl mpant attvat ProdTot: SUM(mp: Prod) >= ProdMn;!Vncolo sulle capactà d produzone massma d ogn mpanto!se "Att" è 0 l'mpanto non è attvato e qund "Prod" deve essere a!sua volta 0 CapMax[mp]: Prod <= MaxC * Att; Att[mp]; Nota: Il vncolo sulla capactà d produzone massma per mpanto permette n realtà una eventuale soluzone con un mpanto attvato ma a produzone nulla, questa charamente non potrà essere soluzone ottma, n quanto ve ne sarà sempre una mglore senza l mpanto a produzone nulla. Questo avvene n quanto nel modello MPL a dfferenza d quello PLI la varable Att non derva drettamente dal valore della varable Prod, ma è ndpendente da questa. Anals della soluzone SOLUTION RESULT
Optmal nteger soluton found MIN Costo = 2201.0000 MACROS Macro Name Values ------ TotProdCost 1610.0000 TotIntCost 591.0000 ------ DECISION VARIABLES VARIABLE Prod[mp] : mp Actvty Reduced Cost 1 100.0000 0.0000 2 90.0000 0.0000 3 0.0000 1.0000 4 0.0000 11.0000 5 0.0000 8.4444 6 10.0000 0.0000 VARIABLE Att[mp] : mp Actvty Reduced Cost 1 1.0000-44.0000 2 1.0000 110.0000 3 0.0000 180.0000 4 0.0000 0.0000 5 0.0000 0.0000 6 1.0000 135.0000 CONSTRAINTS PLAIN CONSTRAINTS Constrant Name Slack Shadow Prce ------------- ProdTot 0.0000 10.0000 ------------- CONSTRAINT CapMax[mp] : mp Slack Shadow Prce 1 0.0000-3.0000 2 0.0000-1.0000 3 0.0000 0.0000 4 0.0000-3.0000 5 0.0000-2.4444 6 60.0000 0.0000 END Dalla soluzone s nota che gl mpant attvat, con produzone mnma gornalera d 200, sono l numero1, 2 e 6, questa scelta vene fatta sulla combnazone de cost d costruzone e produzone n base al numero totale d stock da produrre. Cò che s nota è che prm due mpant sono quell con costo d costruzone maggore, ma n base al numero totale d stock prodott rsultano pù convenent consderando noltre che quest mpant sono sfruttat per tutta la loro capactà produttva(slack = 0).L mpanto numero 6 nvece è attvato ma con produzone molto nferre alla massma(slack = 60). Abbamo po verfcato l range d non varazone della base ottma al varare del valore mnmo d produzone(default=200), questo rsulta compreso tra 196 e 260 (dove l mpanto numero 6 satura la propra produzone e necessta qund l attvazone d un altro), quello che s è notato è che per valor
compres tra 191 e 195, la base ottma comprende nvece dell mpanto 6 l attvazone dell mpanto 4, questo nfatt prevede un costo d costruzone molto nferore ma maggore costo d produzone, presentando qund convenenza uncamente per bass reggm d produzone. L anals del costo ombra relatvo al vncolo sulla produzone totale rvela, banalmente, che l costo d un eventuale 201-esmo stock sarebbe d 10 ossa l costo d produzone da parte dell mpanto 6 gà attvo. Dopo alcune prove s è rscontrato che l costo ombra presenta valor semplc (come sopra l costo d prod.) fno al valore d produzone rchesta d 190, qu l costo ombra assume l valore d 11.9286, apparentemente ncomprensble, la ragone credamo rseda nel fatto che l costo ombra è relatvo al rlassamento contnuo del problema che, nel nostro caso è ntero, questo valore rappresenta qund l costo d uno stock d pastrelle nel caso n cu fosse possble attvare solamente parzalmente un mpanto e n partcolare l 6, n questo caso oltre al costo d prod. d 10 s avrebbe anche l parzale costo d attvazone ossa 135 / 70 = 1.9286. Per quanto rguarda nvece cost ombra relatv a vncol sulla capactà massma, quest rvelano che nel caso fosse possble amplamento questo sarebbe pù convenente se effettuato sull mpanto 1(costo ombra -3), dove evdentemente la produzone rsulta meno costosa.