Als PDF downloaden - Haufe.de
Als PDF downloaden - Haufe.de
Als PDF downloaden - Haufe.de
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Controller magazin 3/94<br />
Abb.3<br />
REM Iterative Berechnung mehrfacher Schattenpretse durch Layrange-RHaxation.<br />
REM Probleindaten tut Demo. 12 Produkte. 6 Kapazilaeten.<br />
REM DATA Anweisungen: 1. Spalte Hoechstwerte <strong>de</strong>r Grenz<strong>de</strong>ckungsbeitraege,<br />
REM 2. Spelte Abnahme <strong>de</strong>r Grenz<strong>de</strong>ckungsbeitraege pro Mengeneinheit<br />
REM Weitere Spalten: Produktionskoeffizienten.<br />
REM<br />
REM Algorithmus und Programm von Dipl.-Ing. Hana-Haimann Boehm. Karlsruhe<br />
REM Lahrbeauftragter a.d. FH f>for2heim<br />
REM<br />
DATA 10,2,2,1 2,0.9.0.8.1.1,2 0<br />
DATA 5,1.0 5.1 1.0.1 24.0.86,1.12<br />
DATA 18.3,2.5,4,3.1 8,1.03.1 47<br />
DATA 15.4,1 7,0,1.2,0.55.1.23,1 08<br />
DATA 9,2.0.45,1 2.0.8,0 46.1 23.0.73<br />
DATA 11,1.0.7,1,0.75,0 47.1.34,1.6<br />
DATA 21, 2, 2.4, 3 6. 19, 4.2, 3.7, 1.8<br />
DATA 37, 4, 6.7. 3.9. 2 5. 3.9. .2. 3.8<br />
DATA 23,5.2 6,1 7,4 2.1.8,2.9.3.4<br />
DATA 18.1 1.2 3.1 7.3 5,2 8,0.8,1.7<br />
DATA 9.1.2 3.1.7.0 3,2 5,2.4,1.7<br />
DATA 12,2,2.4.1.7,0.85.2 4,6.5,1.7<br />
REM<br />
DEFINT IJ, M N<br />
M ' 6: N = 12<br />
DIM HWINI, DGINI, MGflNI, OKflNI, AIN. MI<br />
DIM B(MI. K(MI, RELIMI, PtlMI, KORRKMI<br />
REM Das Definitions/eichen # <strong>de</strong>finiert Vanable doppelter Gertauigkeit<br />
REM Relaxationskoeffizienten KorreKturtMiwene<br />
RELIII » 1.8: RELI2I = 1.8: REL(3I = 1.8<br />
REU4I = 1.8: RELISI = 1.8: RELI6I = 18<br />
EKRIT = .01: IRUNDEN = 25: RUEBSLMAX . 22.5<br />
REM Kapazitaeten<br />
Kill = 31: K(2) = 33: K(3I - 26<br />
K(4I = 22: K(SI » 41: K(6I . 30<br />
REM Eingabe aus Data Statement«<br />
FOR J = 1 TO N<br />
READ HWIJI<br />
READ DGIJI<br />
FOR I » 1 TO M<br />
READ AU, II<br />
NEXT I<br />
NEXT J<br />
REM BERECHNUNG<br />
CLS<br />
PRINT "Berechnung laeutt. Bitte warten r<br />
PflINT -Startzeit TIMES<br />
REM Herslelung <strong>de</strong>r unbeschraenkten Loesung als relaxiertes Problem<br />
REM Bei diesen Mengen sind die Grenz.DB auf tMI gafalan.<br />
FOR J = 1 TO N<br />
MGflJI = HWIJI / DGIJI<br />
NEXT J<br />
REM<br />
REM Schrittweise Einschraenkung in <strong>de</strong>n zulaessigen Beraicb unter Einhaltung<br />
REM «ina« aHiiiMUan Zustan<strong>de</strong><br />
NR - 0 ' Numrrwr <strong>de</strong>r Fehlenests<br />
DO<br />
• Bis zum LOOP UNTIL FEHLSUM < EKRIT<br />
FOR IRUNDE » 1 TO IRUNDEN<br />
FOR I - 1 TO M<br />
IF I = 1 THEN II ' M ELSE • > I 1<br />
REM Korrektur <strong>de</strong>r Opportkosten aus <strong>de</strong>m Ergebnis <strong>de</strong>r Ielztbeart>et1en Kapazitaet<br />
BEL = 0<br />
FOR J . 1 TO N<br />
IF KORRfdIl 0 THEN<br />
IF AU, III 0 THEN<br />
OK»(JI = OK»IJI t AU. III • KORRKU)<br />
SP» = HWUl OKfUl<br />
IF SP» > 0 THEN<br />
Ma»UI = SP» / DGUl<br />
ELSE<br />
MG»UI = 0<br />
REM Nicht Negativitael wird erzwungen<br />
END IF<br />
END IF<br />
END IF<br />
REM AkkumulaUon <strong>de</strong>r Belegung<br />
IF MG»U) > 0 AND AU, I) 0 THEN<br />
BEL ^ BEL . AU. II ' MG»UI<br />
END IF<br />
NEXT J<br />
REM Neue Korrektur und neuer Schattenpteis<br />
Bdl = BEL<br />
RUEBEL > (BEL KIIII / Kdl ' Relative Ueberbelegung<br />
IFRUEBEL > RUEBELMAX THEN RUEBEL ^ RUEBELMAX<br />
IF P»(l) = 0 AND RUEBEL < 0 THEN<br />
KORR»(ll " 0<br />
ELSE<br />
KORR»lll c RELIII • RUEBEL<br />
PN« = P»(ll . KORR»(ll<br />
REM Die Karush-KuhnTucker Bedingung: Kapazitaetsresarve mal Schattenprai«<br />
REM gleich Nul. wird schnttweise erzwungen.<br />
IF PN» < O THEN<br />
KORRKII P»(ll: P«(ll . 0<br />
ELSE<br />
Pflll = PN«<br />
ENDIF<br />
END IF<br />
NEXTI<br />
NEXT IRUNDE<br />
REM<br />
REM Test dar Genauigkeit<br />
REM Neuberechnung <strong>de</strong>r Mengen zur Vernwidung kunrtulierendar RundungsfeMer<br />
FOR J = 1 TO N<br />
OK«U) = 0<br />
FOR II = 1 TO M<br />
IF AU. «) 0 AND P««) 0 THEN<br />
OK»UI = OK»UI • AU. III • P»«)<br />
END IF<br />
NEXT II<br />
SP» = (HWIJI OK«UI) ' Maximale Stueckspanna<br />
IF SP« > 0 THEN<br />
MG«U) . SP« / DGU)<br />
ELSE MG»UI = 0<br />
ENDIF<br />
NEXT J<br />
REM Fehlertest durch Pruefung dar Kapazitaatenbelegung<br />
FEHLSUM = 0<br />
FOR I = 1 TO M<br />
BEL = 0<br />
FOR J = 1 TO N<br />
IF AU, II 0 AND MG«UI > 0 THEN<br />
BEL = Btl * AU, il • MG«UI<br />
ENDIF<br />
NEXT J<br />
UEBEL = BEL Kill<br />
IF P«(l) 0 THEN<br />
FEHLSUM = FEHLSUM * ABSfUEBELI<br />
ELSEIF UEBEL > 0 THEN<br />
FEHLSUM » FEHLSUM * UEBEL<br />
END IF<br />
NEXT I<br />
NR = NR » 1<br />
PRINT -Test Nr NR, -Fehlersummo •; FEHLSUM<br />
LOOP UNTIL FEHLSUM < EKRIT<br />
REM Ausgabe<br />
CLS<br />
PRINT "Ausgabe <strong>de</strong>r Kapazitaetsreserven und Scfiattenpreise''<br />
PfllNT<br />
FOR H = 1 TO M<br />
P = P«(lll<br />
PRINT -Kapazitaet 'Reserve Kill B(lll.<br />
PRINT -Schattenpreis"; P<br />
NEXT II<br />
PRINT : PRINT "Ausgabezeit "; TIME«. "Teste "; NR<br />
PRINT "Ausgabe <strong>de</strong>r Mengen und Opportkosten"<br />
FOR J = 1 TO N<br />
MI = MG«U1: O = OK«UI<br />
PRINT "Produkt "; J. "Menge "; MI, "Opportkosten "; O<br />
NEXT J:<br />
SYSTEM<br />
136