01.11.2013 Aufrufe

Als PDF downloaden - Haufe.de

Als PDF downloaden - Haufe.de

Als PDF downloaden - Haufe.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!