Optimierungsverfahren und BASIC-Programme [Reprint 2021 ed.] 9783112594025, 9783112594018


170 101 37MB

German Pages 174 [173] Year 1989

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

Optimierungsverfahren und BASIC-Programme [Reprint 2021 ed.]
 9783112594025, 9783112594018

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

C. Richter Optimierungsverfahren und BASIC-Programme

Optimierungsverfahren und BASIC-Programme von Claus Richter

Mit 15 Abbildungen und 27 Programmen

Akademie-Verlag Berlin 1988

Verfasser: Prof. Dr. sc. n a t . Claus Richter Ingenieurhochschule K o t h e n

I S B N 3-05-500232-6

Erschienen im Akademie-Verlag Berlin, D D R -1086 Berlin, Leipziger Str. 3 © Akademie-Verlag Berlin 1988 Lizenznummer: 202 • 100/400/87 P r i n t e d in t h e German Democratic Republic Gesamtherstellung: V E B Druckhaus „Maxim Gorki", 7400 Altenburg Lektor: Dr. Reinhard Höppner LSV 1084 Bestellnummer: 7636639 (6999) 02500

Vorwort

Auf dem Gebiet der linearen und der nichtlinearen Optimierung gibt es seit Jahren eine Vielzahl von Büchern. Warum noch eins? Die Behandlung mathematisch-naturwissenschaftlicher, technischer und ökonomischer Fragestellungen erfordert in wachsendem Umfang die Lösung linearer oder nichtlinearer Optimierungsaufgaben. Mit der Bereitstellung leistungsfähiger Klein- und Kleinstcomputer sind die technischen Voraussetzungen dafür geschaffen. Seit den Arbeiten von Kantorowitsch und Dantzig in den 30er und 40er Jahren hat auch die Entwicklung effektiver numerischer Verfahren der Optimierung eine stürmische Entwicklung genommen. Ihre theoretische Begründung und sachgerechte Implementierung stellt inzwischen einen eigenständigen Problemkreis dar, welcher als Numerik der Optimierung (in englischer Sprache als „Computational Mathematical Programming", in russischer Sprache als „Vycislitelnye Metody lineinogo i nelineinogo programmirovanija") bezeichnet wird. Die Aneignung der auf diesem Gebiet bereitgestellten Erkenntnisse, noch mehr aber das Erleben des Zusammenhangs von beschriebenem Algorithmus und umgesetztem Programm werden zum Bedürfnis des an der Optimierung interessierten Praktikers. Gegenstand des Buches sind deshalb in erster Linie nicht theoretische Grundlagen, sondern Fragen der praktischen Realisierung der Verfahren mit modernen rechentechnischen Mitteln, insbesondere mit Mikrorechnern (programmierbare Taschenrechner, Heimcomputer, tragbare Computer, Personalcomputer, Arbeitsplatzcomputer, Bürocomputer usw.). Die Anwendung der Optimierung führt zu unmittelbar spürbaren volkswirtschaftlichen Effekten. Das begann mit der Entwicklung von zentraler Großrechentechnik und hat durch die Nutzung von Mikrorechnersystemen einen starken Schub erfahren. Software, insbesondere für die lineare Optimierung, wurde aus solchen Gründen in der letzten Zeit zu einem begehrten Handelsobjekt. In den Rechenzentren sind in der Regel kommerziell erwerbbare Programmpakete vorhanden, die der Anwender nutzen kann, um seine Probleme zu lösen. Aber inzwischen stehen immer mehr Mikrorechnersysteme zur Verfügung, die der Einzelne für die Lösung seiner Probleme direkt oder im Dialog mit zentralisierter Rechentechnik nutzen kann. Darum werden in diesem Buch Fragen der numerischen Umsetzung und der Implementierung auf Mikrorechnern behandelt. Wer einige Verfahren auf seinem (Personal-) Computer realisiert, lernt gleichzeitig besser mit kommerzieller Software umzugehen, deren Innenleben er in der Regel nicht kennt (Urheberrechte) und nicht kennen muß. In diesem Sinne ist dieses Buch nicht nur ein Lehrbuch für die Umsetzung von Opti-

6

Vorwort

mierungsverfahren auf Mikrorechnern, sondern führt auch an die Benutzung kommerzieller Programmpakete, insbesondere der linearen Optimierung, heran. Das Buch richtet sich vorrangig an Ingenieure, Mathematiker, Naturwissenschaftler und Ökonomen, die es während der Ausbildung, zur Weiterbildung und zur effektiveren Arbeit mit informationsverarbeitenden Mitteln der vierten Rechnergeneration benutzen können. Es soll einen Einstieg in die Behandlung von Optimierungsaufgaben auf Kleinrechnern ermöglichen. > Für die Unterstützung beim Zustandekommen des Buches bin ich zahlreichen Kollegen zu Dank verpflichtet, insbesondere Prof. E L S T E R , Prof. G Ö P F E R T und Prof. H A B T M A N N für Hinweise und Kritiken sowie Prof. G R A U E R , Dr. K L E I N M I C H E L und Dr. S C H Ö N E F E L D für die Zuarbeit zu einzelnen Kapiteln. Bei der Implementierung und dem Testen der Programme waren vor allem Herr B E I C H E , Frau Dipl.-Math. P A W L A K und Herr Dr. P O L L M E R behilflich. Ihnen sei ebenso gedankt wie Frau S. H O P E M A N N und Frau B. SCHMIDT für das Schreiben des Manuskripts. Dem Akademie-Verlag und besonders Herrn Dr. H Ö P P N E R danke ich sehr für die kameradschaftliche und sachkundige Zusammenarbeit, welche auch über schwierige Phasen der Entstehung des Buches hinweggeholfen hat. Schließlich möchte ich meiner Familie für das Verständnis danken, mit welcher sie die Belastung mitgetragen hat, welche dem Autor nun einmal aus dem Schreiben eines Buches erwächst. Die Publikation von Algorithmen und Programmen schließt zu erwartende Kritiken und Hinweise von vornherein ein. Sie werden mir Anregung sein, an der Aufbereitung von Optimierungsverfahren für Microcomputer weiterzuarbeiten. CLAUS R I C H T E R

Inhaltsverzeichnis

1.

Optimierung und rechentechnische Realisierung (Implementierung)

11

1.1. 1.2. 1.2.1. 1.2.2. 1.2.3.

11 15 15 17

1.3. 1.3.1. 1.3.2. 1.3.3. 1.3.4.

Formulierung der Aufgabenstellung v Optimierungsverfahren in technischen und technologischen Fragestellungen . . . . Optimierung der Abmessungen eines Stahlträgers . Der Williams-Otto-Prozeß Ermittlung der optimalen täglichen Betriebsweise einer Wasserpumpe in einem Verbrauchsnetz mit Hochbehälter . Optimierung und Programmierung (Softwarebasis) Übersicht zu Programmiersprachen Die Programmiersprache BASIC Optimierungsverfahren und numerische Eigenschaften Vom BASIC-Programm zum Expertensystem

2.

Lineare Optimierung

33

2.1. 2.2. 2.3. 2.3.1. 2.3.2.

Das Simplexverfahren Das revidierte Simplexverfahren Die Klasse der Iterationsverfahren Das Ellipsoidverfahren Das Projektionsverfahren

34 37 43 43 47

3.

Eindimensionale Suche

51

3.1. 3.2. 3.3. 3.4.

Das Fibonacci-Verfahren Das Verfahren des Goldenen Schnitts Verfahren mit quadratischer Interpolation Verfahren mit kubischer Interpolation

52 54 56 58

'

19 21 21 24 28 30

4.

Unbeschränkte nichtlineare Optimierung

61

4.1. 4.1.1. 4.1.2. 4.1.3. '4.2. 4.2.1. 4.2.2. 4.2.3. 4.2.4. 4.2.5.

Verfahren der direkten Suche Die stochastische Suche Das Verfahren der koordinatenweisen Suche Das einfache Polytopverfahren Ableitungsbehaftete Verfahren Das Verfahren des steilsten Abstiegs Das Verfahren der konjugierten Gradienten Das Newton-Verfahren Das Newton-Verfahren mit konsistenter Approximation der Hesse-Matrix . . . . Das Verfahren der variablen Metrik

61 61 63 64 67 68 70 72 75 76

8

Inhaltsverzeichnis

6. 5.1. 5.1.1. 5.1.2. 5.2. 5.2.1. 5.2.2. 5.3. 5.3.1. 5.3.2. 5.3.3. 5.3.4. 5.3.5.

Beschränkte nichtlineare Optimierung ' Verfahren der direkten Suche Die adaptive Zufallssuche Das erweiterte Polytopverfahren Die quadratische Optimierung Das Relaxationsverfahren Methode der aktiven Restriktionen Ableitungsbehaftete Verfahren Das Schnittebenenverfahren Verfahren der sequentiellen quadratischen Approximation Erweitertes Newton-Verfahren Das Verfahren der verallgemeinerten reduzierten Gradienten Verfahren mit Straffunktionen

Anhang. Lösung eines linearen Least-Square-Problems bzw. eines linearen Gleichungssystems • » A.l. Die QR-Zerlegung A.2. Die Cholesky-Zerlegung . . .

79 79 79 82 85 86 87 '. 90 90 92 95 97 103 106 107 109

Literatur

111

BASIC-Programme

114

P.2.1. P.2.2. P.2.3. P.2.4. P.3.1. P.3.2. P.3.3. P.3.4. P.4.1. P.4.2. P.4.3. P.4.4. P.4.5. P.4.6. P.4.7. P.4.8. P.5.1. P.5.2. P.5.3. P.5.4. P.5.5. P.5.6. P.5.7. P.5.8. P.5.9. P.A.l. P.A.2.

Das Simplexverfahren 114 Das revidierte Simplexverfahren 118 Das Ellipsoidverfahren 121 Das Pro jektions verfahren 123 Das Fibonacci-Verfahren 125 Das Verfahren des goldenen Schnitts 126 Die quadratische Interpolation 427 Die kubische Interpolation 128 Die unbeschränkte stochastische Suche 130 Das Verfahren der koordinatenweisen Suche 131 Das einfache Polytopverfahren 133 Das Verfahren des steilsten Abstiegs 136 Das Verfahren der konjugierten Gradienten 137 Das Newton-Verfahren 139 Das Newton-Verfahren mit konsistenter Approximation der Hesse-Matrix-. . . . 141 Das Verfahren der variablen Metrik 143 Die adaptive Zufallssuche 144 Das erweiterte Polytopverfahren 145 Das Relaxationsverfahren 148 Verfahren der Methode der aktiven Restriktionen . . . . • 150 Das Schnittebenenverfahren 152 Verfahren der sequentiellen quadratischen Approximation 154 Erweitertes Newton-Verfahren 156 Verfahren der verallgemeinerten reduzierten Gradienten 159 Verfahren mit Straffunktion 163 Die QR-Zerlegung 166 Die Cholesky-Zerlegung 167

Sachwortverzeichnis

168

Symbolverzeichnis

R R™ ]R + " ||a;|| xT = («!,..., x„) 0 e = (1, ..., 1)T ej V/(x) V2/(x)

Menge der reellen Zahlen w-dimensionaler Euklidischer Raum nichtnegativer Orthand des w-dimensionalen Euklidischen Raumes Euklidische Norm: ||a?|| = (x^x)1'2 transponierter Vektor Nullvektor Vektor, dessen Komponenten alle gleich Eins sind ¿-ter Einheitsvektor: et = (0,..., 0, 1, ..., d)T Gradient der Funktion f(x): V/(x) = ( d f j d x u ..., 8fj8xn )T Hesse-Matrix der zweiten Ableitungen der Funktion /(x):

Lxx(x, u)

Hesse-Matrix der zweiten Ableitungen der Lagrange-Funktion L(x, u) (Lxx(x, u))uj

diag (d) V x: 3 x: (h)j (A)ij

=

8L 8x, 8xj

Diagonalmatrix, deren i-tes Diagonalelement gleich der z'-ten Kom ponente des Vektors d ist Für alle Elemente x gilt: "Es existiert ein Element x, für das gilt: Vektor, der aus der /-ten Spalte der Matrix A besteht j-te Komponente des Vektors h (i, j)-tes Element der Matrix A

1.

Optimierung und rechentechnische Realisierung (Implementierung)

Die Optimierung — besonders die lineare Optimierung — hat durch die Möglichkeiten der Rechentechnik seit den 50er Jahren viele Anwendungen und Weiterentwicklungen erfahren. Einen qualitativ neuen Schritt können wir jetzt beobachten, da die Datenverarbeitungsressourcen zentral und dezentral zur Verfügung stehen. Das hat natürlich Rückwirkungen auf die Optimierung selbst, besonders auf Verfahren für nichtlineare Probleme. Im ersten Abschnitt dieses Kapitels werden die Problemstellungen formuliert, für die dann in den Kapiteln 2 bis 5 Lösungsverfahren vorgestellt werden. Weiterhin werden einleitende Bemerkungen zu den BASIC-Implementierungen gemacht. Im zweiten Abschnitt sollen einige Tendenzen der Entwicklung der Rechentechnik (die Hardwareseite) im Überblick dargestellt werden, um dann im dritten Abschnitt, die sich daraus ergebenden Möglichkeiten der Umsetzung von Optimierungsverfahren auf Rechnern mit Hilfe von Programmiersprachen und die sich ergebenden numerischen Fragen (die Softwareseite) behandeln zu können.

1.1.

Formulierung der Aufgabenstellung

Mit der vorliegenden Beschreibung von Verfahren der Optimierung und ihrer Implementierung auf einem Mikrorechner soll dem Leser ein Hilfsmittel in die Hand gegeben werden, effektive numerische Methoden mit geringem Aufwand in die Bibliothek der von ihm verwendeten Software aufzunehmen. Damit ergibt sich, insbesondere für den mit der CAE-Problematik beschäftigten Ingenieur, die Möglichkeit, leistungsfähige Verfahren zur Lösung der in seinem Arbeitsbereich auftretenden Optimierungsprobleme einzusetzen. Der Sammlung liegen Verfahren zugrunde, denen in den vergangenen Jahren in der Literatur große Aufmerksamkeit geschenkt wurde und die sich auch nach den Erfahrungen der Autoren bei der Lösung von technischen und technologischen Problemen besonders bewährt haben. Im einzelnen werden folgende Problemklassen behandelt. Lineare Optimierung: Gegeben ist die Aufgabe z = c7x = min! bei Ax - ö ^ 0,

x > 0.

12

1. Optimierung und Rechentechnik

Als Lösungsverfahren werden bereitgestellt • das Simplex verfahren, • das revidierte Simplexverfahren • aus der Klasse der Iterationsverfahren: das Ellipsoid verfahren und das Projektionsverfahren. Eindimensionale Minimumsuche: Gegeben ist die Funktion f{x) einer reellen Veränderlichen x. Gesucht ist der Punkt x*, für welchen gilt: f(x*)22X2 4~

^ m l ^ l 4~ am2x2 Xj bi

0

4"

V / =

^ 0 V

i

4~ xn+1

4 " a2nXn

4"

4 " &mnxn

1, 2 , . . . , m

+

4"

=

4 " xn+2

4~ xn+m

~

=

^2)

bm,

(1)

n,

= 1, 2 , . . m

zu maximieren. In Matrixschreibweise lautet die Aufgabenstellung z = cTx = max!

(2)

mit Ax = b, x ^ 0, 6 ^ 0. Es wird vorausgesetzt, daß der Rang der Koeffizientenmatrix A des Gleichungssystems der Nebenbedingungen in (1) gleich m ist. Für die Darstellungen des Simplexverfahrens seien einige Begriffe definiert. Definition 1. Jede Lösung x von Ax = b, die der Bedingung x ^ 0 genügt, wird als Lösung bezeichnet.

zulässige

2.1. Simplexverfahren

35

Definition 2. J e m linear unabhängige Spaltenvektoren von A bilden eine Basis, die zu diesen Vektoren gehörigen Variablen heißen Basisvariable und alle restlichen Variablen Nichtbasisvariable. Definition 3. Ist das Gleichungssystem von (1) so umgeformt, daß für irgendeine Basis die Basisvariablen durch die Nichtbasisvariablen ausgedrückt sind und die Zielfunktion nur noch von den Nichtbasisvariablen abhängig ist, so wird von einer Basisdarstellung der Lösungsmannigfaltigkeit des linearen Optimierungsproblems gesprochen. Die allgemeine Form einer solchen Basisdarstellung für (1) ist: Basisvariable

Nichtbasisvariable r x

r

x

n i ~f" i2 2 + ••' r 21Xl ~f" r22X2 4" • • • r

mlxl T rm2X2 x

g&l + g2 2 +

r

x

r

x

~t~ m n 2n n

+

X

n-L1 n+2

^mnxn x

9m n

— ¿1, &2>

=



(3)

km>

+ ZB(x) = C

Definition 4. Gegeben ist eine beliebige Basis von A und die dazugehörige Basisdarstellung. Eine Lösung x von Ax = b, bei der alle Nichtbasisvariablen gleich Null sind, heißt Basislösung. Eine Basislösung heißt darüber hinaus zulässige Basislösung, wenn alle Basisvariablen nichtnegativ sind. Sind in (3) alle Sg 0, so ist die Basislösung xL = (0, 0 , . . . , 0, !cu ..., km)r eine zulässige Basislösung, die Basisdarstellung wird dann als zulässige Basisdarstellung bezeichnet. Eine Basislösung bzw. eine zulässige Basislösung ist also eine Lösung, die nur höchstens m von Null verschiedene Lösungskomponenten hat. Der Zusammenhang zwischen einer zulässigen Basislösung und einem Eckpunkt des Lösungsbereiches wird mit folgendem Satz angegeben. Satz. Eine zulässige Lösung x von (1) ist dann und nur dann ein Eckpunkt, wenn x eine zulässige Basislösung ist. Mit diesen Definitionen kann das Simplextheorem formuliert werden. Simplextheorem. Die Lösung eines linearen Optimierungsproblems (2) ist eine zulässige Basislösung. Zur Bestimmung einer optimalen Lösung von (1) oder (3) kommen nach dem Simplextheorem also nur zulässige Basislösungen in Frage. Welche von diesen Lösungen die optimale ist, wird durch das Simplexkriterium beantwortet. Simplexkriterium. Ist xL = (0, 0 , . . . , 0, kt)..., km)T eine zulässige Basislösung (alle ki ^ 0, i = 1 , . . . , m) von (3) und hat die Zielfunktion in der dazugehörigen Basisdarstellung die Form gixi + g2x2 H

\- g«xn + z&(x) = c

mit gj ^ 0 für j = 1, ..., n, so ist xL eine Lösung. Das Simplex verfahren zur Ermittlung einer Lösung von (1) kann mit den gegebenen Aussagen folgendermaßen charakterisiert werden. Aufgrund des Simplextheorems sind nur die zulässigen Basislösungen auf Optimalität zu untersuchen. Dazu wird von einer zulässigen Basisdarstellung ausgegangen, d. h., 3*

36

2. Lineare Optimierung

(1) wird in (3) übergeführt. Für die zulässige Basislösung xL0 gilt dann z(xL0) = c 0 . Ein Iterationsschritt des Verfahrens besteht im Auffinden einer neuen Basis B 1 mit der dazugehörigen zulässigen Basislösung xL1, für die der Wert der Zielfunktion z(xhl) = ci (c : Ss Co) nicht kleiner als c 0 ist und möglichst maximal zunimmt. Nach einer endlichen Zahl von Anwendungen eines solchen Iterationsschrittes wird erreicht, daß alle Koeffizienten

nk = - W I M .

46

2. Lineare Optimierung

=

g* _

n+ 1

Btfjti

BkVMk1 S5: Setze k = k + 1 und gehe zu Sl. Das BASIC-Programm P.2.3 realisiert diesen Algorithmus. Beispiel Gesucht ist die Lösung der linearen Optimierungsaufgabe z - — x1 — x2 = min! bei »i ^ 1. x

2 = l'>

Die Zielfunktion z erreicht .unter den angegebenen Nebenbedingungen im Punkt x* = (1, 1)T den Wert —2. Die Rechnung wurde nach 41 Iterationen abgebrochen, nachdem die aus dem Optimierungsverfahren resultierenden Ungleichungen um weniger als 10~3 verletzt waren. Die erreichte Näherung x41 besitzt die Gestalt x*1 = (1.0009, 1.000 326) T . Weiterführende Bemerkungen Der Algorithmus von KHACHIJAN hat seit seiner Publikation im Jahre 1979 eine große Anzahl von wissenschaftlichen Veröffentlichungen induziert. Das Hauptaugenmerk war dabei auf die Aussage gerichtet, daß der Algorithmus über der Operationsmenge ( + , —, X, I, i ) polynomial im Aufwand ist. Diese bedeutet, daß die maximale Anzahl der notwendigen Operationen zur Lösung der Aufgabe (1) durch ein Polynom in n und m nach oben abgeschätzt werden kann. Hierbei setzt man voraus, daß das Wurzelziehen im Rahmen der verwendeten Wortlänge im Rechner exakt und mit polynomialem Aufwand ausgeführt werden kann. Die erwähnte Eigenschaft des Ellipsoid-Algorithmus läßt ihn gegenüber dem Simplexverfahren vorteilhaft erscheinen, weil das Simplexverfahren in seinem Aufwand exponential von m und n abhängt. Das angeführte einfache Beispiel zeigt jedoch die inzwischen in zahlreichen anderen Testbeispielen bestätigte Tendenz: Aus den auf der Polynomialität im Aufwand hergeleiteten Komplexitätsvergleichen lassen sich nur schwer Aussagen über das Verhalten von Optimierungsverfahren bei der Behandlung einzelner Beispiele ableiten.

2.3.2. Projektionsverfallren

2.3.2.

47

Das Projektionsverfahren Grundlagen des Verfahrens

Das Projektionsverfahren von KABMARKAR ([22]), auch Karmarkar-Algwithmus nannt, dient der Lösung der linearen Optimierungsaufgabe z = c7x = min!

ge(1)

•bei x 6 Q n S mit Q = {x 6 IR" : Ax = 0}

und

S = {x € lR+n: eJx = 1}.

Im allgemeinen liegt jedoch eine Optimierungsaufgabe der Gestalt bei

z = cTdb — min! A£=b,

x^O

(2)

vor. Ist dafür ein zulässiger Punkt a mit projektive Transformation _ i —

x

(&,/a,)

i

> 0, i = 1,..., n, gegeben, so kann durch

_ 2 — l, ..., 71, %n+l — *

1 + 27 (*./«,) t=l

" /j ^

i

eine Aufgabe der Form (1) konstruiert werden (siehe Beispiel). Zur Behandlung von (1) betrachten wir das Problem bei

cTDx = min! Q n 8 = {x e

(3) : ADx = 0 ,

e^x = 1}

mit einer Diagonalmatrix D = diag (d), wobei d; > 0 ist. Zwischen der Aufgabe (1) und (3) gibt es die folgenden Beziehungen: (i) Ist x* Lösung von (1) mit cTx* = 0, so ist ^ _ ~

Dlx* eJD'1x*

Lösung von (3) mit cJDx**

= 0.

(ii) Ist x** Lösung von (3) mit cJDx** x* =

Dx** eTDx**

Lösung von (1) mit cJx*

= 0, so ist (4)

= 0.

Man bestimmt nun in jeder Iteration zu fester Matrix D eine Näherungslösung der Aufgabe (3), konstruiert daraus unter Verwendung von (4) eine approximative Lösung von (1) und ändert die Matrix D ab.

48

2. Lineare Optimierung

Anstelle des Problems (3) wird, ausgehend von Zentrum a° der Menge Q n S, die modifizierte Aufgabe cJDx

= min !

ADx

= 0,

(5)

bei eTx = 1,

\\x — o°|| iS 0, i = 1, ..., n, bekannt und wird D = diag (o) verwendet, dann beschreibt a° = (1 jn, . . . , l/w) T gerade das Zentrum des zulässigen Bereichs von (3), denn wegen a € Q ist Aa .= 0 und damit auch ADa° = A—a = 0, also a° € Q n und wegen e T a° = 1 auch a° € S. Die Lösung der Aufgabe (5) kann durch die Auswertung der Kuhn-Tucker-Bedingungen explizit angegeben werden. Mit v p = (/„ - ß T ( ß B T ) - l B) De lautet sie q =

-

otrpl\\p\].

Durch die Wahl von r und x ist die zu (3) gehörige Vorzeichenbedingung erfüllt. Hat man q ermittelt, so ergibt sich aus der Transformationsvorschrift (4) eine Näherung x der Lösung von (1). Zur besseren Approximation der Lösung von (1) leitet man aus der beschriebenen Berechnungsvorschrift für x ein Iterationsverfahren her. Ausgehend von x° = a° wird dabei die Näherung xk+1 dadurch ermittelt, daß man in der Aufgabe (5) die Matrix D durch die Matrix Dk = diag (xk) ersetzt und das damit entstehende Optimierungsproblem löst. (i) Wird die Folge {xk} durch die beschriebene Vorgehensweise erzeugt, so gilt: Entweder es ist cJxk+l f(xk+1)

= 0 für ein k < oo, oder es gilt

^ /(x«) - ò ,

k = 0, 1, 2, ..

wobei " nn /(*) = E ~

cTx

> .2

ò = ò(n) ^ ix —

oi2n

2

gesetzt wurde. (ii) In 0{n(q + log «)) Schritten findet man einen Punkt x mit cJx" = 0 oder cTx"lcTa°

£

2-i.

2.3.2. Projektions verfahren

49

Aufbau des Algorithmus SO: Wähle den Startpunkt x° = a° = (1 \n, ..., l/w)T und q > 0, » € (0, 1/4]. Setze r = 1 /]/n(n — 1) und k = 0. S l : Setze Dk = diag (xk)

und

Bk

S2: Berechne Pk = {In - Bk(BkBkT)-i (XT

q" =a°

r(f!)-

Bk) DkC,

pk.

S3: Berechne S4: Ist

xk+1 = (eTDkqky1 cTxk+1lcra°

so ist x* = x

k+1

Dkqk.

g 2"«, Lösung. Stop.

S5: Setze k = k + 1 und gehe zu S l . Das BASIC-Programm P.2.4 realisiert diesen Algorithmus. Beispiel Gegeben ist die lineare Optimierungsaufgabe % = — ifcj +

bei

iki,

= min!

¿2^0

/2\ und der innere Punkt a = I ). \4/

Abb. 9. Zulässiger Bereich im obigen Beispiel 4

Richter

50

2. Lineare Optimierung

Durch Hinzufügen von Schlupfvariablen ergibt sich bei 2±1

—min'

+ ±2

£ = —

— £ 2 + ^3

Ä j

=1,

^

—— l y

+ ¿5 = i^jj ¡^2)

$5 — 0.

Die Transformation a _ j^l — j

A _ —

xe

__ Ül4 > -M — j

> ^3 — x

• — i? —

x6

a

liefert ein Problem der Form (1): bei

z

= — 2 x + 4a;2 = min! t

ixt — 4x2 + xa

— —

4 x

»=1

= 1,

— ccg == Oj +

2

«6=0,

x5

— 5a;6 = 0,

s, ^ 0 .

Nach 33 Iterationsschritten ergab sich als Näherungslösung äfe = (1.0009, 1.0007, 4.17 • 10"4, 4.17 • 10"4, 3.99825, 4.09 • 10"5)T i = 4.09 • 10- 5 .

Weiterführende Bemerkungen Der von K A R M A R K A R 1984 veröffentlichte Algorithmus [ 2 2 ] hat zu intensiven Diskussionen unter den Optimierern geführt. Wie beim Khachijan-Algorithmus steht der polynomiale Aufwand zu seiner Lösung, diesmal allerdings über der Menge der Operationen ( + , —, *, /), im Mittelpunkt der Aufmerksamkeit. Die praktische Realisierung des Karmarkar-Algorithmus läßt eine Reihe von Fragen offen. Dies betrifft insbesondere die Lösung der Teilprobleme und die Wahl des Parameters «. Das von Karmarkar vorgeschlagene Intervall 0, so setze x1 = x2 und gehe zu S3. Sonst setze x° = x2 und gehe zu S4. Das BASIC-Programm P.3.4 realisiert diesen Algorithmus. Beispiel Es ist das Minimum von f(x) = / f a , x2) = 100(a;2 - x,2)2 + (1 -

x,)2

entlang der Richtung d = (10, 1)T durch den P u n k t x° = (—2, 0) zu finden. Die Genauigkeit soll e — 0.0001 betragen und der Schätzwert f ü r das Minimum ist 0. Nach 11 Iterationen wurde eine Intervallänge kleiner als 10~4 erreicht. Als Näherung x11 ergibt sich

Der Zielfunktionswert beträgt / ( x n ) = 0.246991.

4.

Unbeschränkte nichtlineare Optimierung

Die Situation auf dem Gebiet der nichtlinearen Optimierung hat sowohl von der theoretischen Durchdringung als auch von der Entwicklung universell anwendbarer Software nicht den Stand erreicht, wie er für die lineare Optimierung dargestellt werden konnte. Optimierungsverfahren und entsprechende Software werden meist an wissenschaftlichen Institutionen entwickelt und sind für spezielle Probleme entworfen. Eine umfassende Übersicht zu Verfahren der nichtlinearen Optimierung unter besonderer Berücksichtigung von Implementierungsproblemen ist in [10] gegeben. Wir stellen hier die Verfahren für unbeschränkte Probleme in zwei Klassen unterteilt dar. Im Abschnitt 4.1 werden Verfahren behandelt, die für die Organisation des Suchprozesses nur die Werte der Zielfunktionen verwenden. Im Abschnitt 4.2 werden Verfahren vorgestellt, die neben den Werten der Zielfunktion auch Informationen über erste und zweite Ableitungen verwenden. Alle im Kapitel 4 behandelten Verfahren sind nicht nur für die Lösung unbeschränkter Probleme zu verstehen, sondern auch als theoretische Basis und Softwaremodule für Verfahren zur Lösung beschränkter Probleme.

4.1.

Verfahren der direkten Suche

Verfahren dieser Klasse sind besonders geeignet für praktische Optimierungsprobleme, für die keine Stetigkeits- oder Differenzierbarkeitsannahmen getroffen werden können, und/oder für Probleme, bei denen die Berechnung von Ableitungen analytisch oder numerisch schwer oder nicht durchführbar ist. Sollten jedoch Gradienten analytisch zur Verfügung stehen oder mit vertretbarem numerischen Aufwand näherungsweise berechenbar sein, so sind die Verfahren des Abschnitts 4.2 vorzuziehen. 4.1.1.

Die stochastische Suche Grundlagen des Verfahrens

Es wird von der Aufgabe ausgegangen, daß das Minimum der Funktion f(x) von n Veränderlichen gesucht ist: f{x) = min!

«eR».

62

4. Unbeschränkte nichtlineare Optimierung

Zur Lösung dieser Aufgabenstellung sei ein Verfahren der großen Klasse der Zufallssuchverfahren vorgestellt. Die Grundidee dieser Verfahren besteht darin, daß nur die Werte der Zielfunktion für zufällig ausgewählte Punkte im IR" miteinander verglichen werden, um das Minimum zu lokalisieren. Die einzelnen Verfahren unterscheiden sich dann darin, wie diese zufällige Wahl erfolgt. Bei diesem Verfahren erfolgt die Bestimmung der zufälligen Punkte, indem von einem beliebigen Startpunkt ausgegangen wird, dessen Zielfunktionswert schon berechnet worden ist, einen Schritt mit einer vorgegebenen Schrittweite in eine zufällig gewählte Richtung ausgeführt und der Zielfunktionswert mit Hilfe der neu berechneten Iterierten bestimmt wird. Ist der neu berechnete Zielfunktionswert besser als der des Ausgangspunktes, so wird der Schritt als erfolgreich bezeichnet und der neugewonnene Punkt wird zum Ausgangspunkt für die weitere Suche, die dann wieder in einem neuen Schritt in eine zufällig gewählte Richtung fortgesetzt wird. War der Schritt nicht erfolgreich, so wird der Punkt verworfen, eine andere zufällige Richtung berechnet und damit ein neuer Punkt bestimmt. Dieses Vorgehen wird solange fortgesetzt, bis l Probeschritte von einem Punkt aus nicht erfolgreich sind. Meist wird l der Dimension n des zu lösenden Problems gleichgesetzt oder größer gewählt. Aufbau des Algorithmus SO: Vorgabe eines Startpunktes sc0, der Schrittweite h und der maximalen Zahl von Probeschritten l (Anzahl der Zielfunktionswertberechnungen). Ermittle f(x°) und setze k = 0 sowie xb = x°. S 1 : Berechne einen Vektor dessen Komponenten im Intervall [—1, 1] gleich verteilte Zufallszahlen sind. Setze x k = a?b + Ag

S 2 : Berechne f(x k). Ist /( x k) < f(xb ), setze xb = x k. S 3 : Setze k = k + 1. Wenn k > l dann ist xb die Lösung. Sonst gehe zu S l . Das BASIC-Programm P.4.1 realisiert diesen Algorithmus. Beispiel E s ist die folgende Funktion zu minimieren: f(x) = Xj 4 — 2z! 3 + «2 2 + X1X2 — 4a;1 X2 + 3.

Mit dem Startpunkt x° = (3, 4) T , der Schrittweite h = 1.0 und der maximalen Anzahl von Probeschritten l = 200 erhält man die Lösung = Xb

/1.641358642\ ^0.939060940/"

Der Funktionswert beträgt /(»„) =

—1.493673542.

Weiterführende Bemerkungen Zu dem beschriebenen Algorithmus gibt es nun noch eine Vielzahl von Modifikationen und Erweiterungen zur Verbesserung des Verfahrens. Das soll an zwei Beispielen verdeutlicht werden. Die Einführung einer variablen Schrittweite hk ist eine Möglichkeit

4.1.2. Koordinatenweise Suche

63

zur Beschleunigung des Verfahrens. Zum Beginn der Optimierung, also wenn sich der Ausgangspunkt mit hoher Wahrscheinlichkeit in größerer Entfernung vom Optimum befindet, wird die Schrittweite hk relativ groß gewählt. Wenn l nichterfolgreiche Schritte ausgeführt worden sind, so wird die Suche diesmal nicht abgebrochen, sondern die Schrittweite hk verringert, z. B. halbiert. Danach wird die Suche mit der verringerten Schrittweite fortgesetzt. Der Abbruch erfolgt bei diesem Vorgehen, wenn eine vorgegebene, minimale Schrittweite unterschritten worden ist. Eine zweite Modifikation besteht darin, daß nach einem nicht erfolgreichen Schritt nicht sofort eine neue zufällige Richtung bestimmt wird, sondern daß ein Schritt in die entgegengesetzte Richtung vollzogen wird, d. h. xk = xb — Ag. Sollte der Schritt in die entgegengesetzte Richtung nicht erfolgreich sein, so wird ein neuer Zufallsvektor berechnet und der neue Probepunkt wieder nach der Gleichung xk = xb + berechnet. Beide Modifikationen lassen sich auch kombinieren. Stochastische Suchverfahren werden ob ihrer Einfachheit und Robustheit bei ingenieurtechnischen Optimierungsproblemen häufig verwendet, besonders auch in der Version für beschränkte Probleme (s. 5.1.1).

4.1.2.

Das Verfahren der koordinatenweisen Suche Grundlagen des Verfahrens

Das Verfahren der koordinatenweisen Suche (HOOKE-JEEVES [19]) stellt eine Verbesserung einer einfachen koordinatenweisen Suche (Gauß-Seidel) dar. Diese Verbesserung besteht darin, daß sich zwei Suchetappen abwechseln. In der ersten Etappe der sogenannten „Suchbewegung" (exploratory move) wird ähnlich wie bei der koordinatenweisen Suche die Umgebung des Suchpunktes in allen Koordinatenrichtungen mit fester Schrittweite abgesucht. In der zweiten Etappe der „Vorstoßbewegung" (pattern move) wird ein Schritt in der bisher erfolgreichsten Richtung der ersten Etappe getan. Die Effektivität dieses Verfahrens nimmt ab, wenn gemischte Glieder der Optimierungsvariablen in der Zielfunktion auftreten. Das Hooke-Jeeves-Verfahren besteht aus folgenden Operationen. Es sind ein Startpunkt x° und Anfangsschrittweiten Ax für alle Koordinatenrichtungen vorzugeben sowie die Zielfunktion im Startpunkt zu berechnen. In der ersten Etappe der „Suchbewegung" wird dann jede Variable um die entsprechende Schrittweite verändert. So ergibt sich z. B. der neue Suchpunkt in der ersten Koordinatenrichtung zu Xi1 = xf -f- Ax^. Sollte der Wert der Zielfunktion im P u n k t x ^ keine Verbesserung gegenüber dem Startpunkt erbringen, so wird in Richtung —Axj0 gesucht. Tritt auch dabei keine Verbesserung ein, wird der Punkt a^0 für den nächsten Schritt abgespeichert. Die gleiche Prozedur wird dann in allen Koordinatenrichtungen durchgeführt und damit ist dann die „Suchbewegung" beendet. Danach schließt sich eine „Vorstoßbewegung" an. Sie besteht darin, daß in die Richtung fortgeschritten wird, die sich aus den erfolgreichen Schritten der vorhergehenden Etappe ergibt. Die „Vorstoßbewegungen" werden durchgeführt, solange sich die Zielfunktion verbessert. Nach jeder „Vorstoßbewegung" wird die Zielfunktion lokal mit der „Suchbewegung" untersucht. Treten keine Verbesserungen mehr ein, werden die Schrittweiten bis zur Erfüllung eines Abbruchkriteriums verkleinert.

64

4. Unbeschränkte niehtlineare Optimierung Aufbau des Algorithmus

SO: Vorgabe eines Startpunktes x°, einer Schrittweite h0 und der Abbruchschranke e. Setze k = 0, j = 0. S1: Setze j = j + 1. Ist j > n, gehe zu S4, sonst setze k+I

x

= x k

+ hkej.

S2: Ist f(xk+1) < f(xk), so gehe zu S3. Setze k+I

x

=

k _

x

hke.

und gehe zu Sl. S3: Setze (xk+1)j = (as*),- und gehe zu Sl. S4: Ist asA+1 4= xk, gehe zu S5. Sonst setze hk+1 = Ät/10. Ist hk+l < e, so ist xk+1 die Lösung. Stop. Sonst setze k = k -f- 1 und gehe zu Sl. S5: Setze xk = x" + 2(« fc+1 — xk)

und j = 0. Gehe zu Sl. Das BASIC-Programm P.4.2 realisiert diesen Algorithmus. Beispiel

Es wird das gleiche Problem wie in Abschnitt 4.1.1 verwendet. Die folgende Zielfunktion ist zu minimieren f{x) = a?!4 — 2a;!3 -f- x22 + x12x22 — 4«1a;2 + 3. Mit dem Startpunkt x° = (3, 4) T , der Schrittweite h0 = 1 und der Abbruchschranke e = 10~2 erhält man nach 83 Zielfunktionswertberechnungen die Lösung

Der Funktionswert beträgt f(x83) = —1.5148. 4.1.3.

Das einfache Polytopverfahren Grundlagen des Verfahrens

Dieses Verfahren gehört zu den ableitungsfreien Verfahren der deterministischen Suche, mit deren Hilfe folgende Probleme gelöst werden: f(x) — min!

acel».

Die Idee wurde erstmals von N E L D E R und MEAD [34] vorgeschlagen. Es wird von einem konvexen Vieleck (Simplex) ausgegangen. Dieser Simplex besitze bei einem w-dimensionalen Raum genau n -(- 1 Ecken. Die Zielfunktionswerte an den Eckpunkten seien bekannt. Zur sukzessiven Annäherung an das Optimum wird nun die Eigenschaft des

4.1.3. Einfaches Polytop-Verfahren

65

Simplexes ausgenutzt, daß sich auf der Gegenseite eines Eckpunktes nur eine Fläche befindet, auf der ein neuer Simplex aufgebaut werden kann, dabei bleiben n Eckpunkte erhalten, und nur ein Eckpunkt unterscheidet den neuen vom vorangegangenen Simplex. Der Aufbau eines neuen Simplex erfolgt nun wie folgt: Es wird der Eckpunkt herausgesucht, der den größten Zielfunktionswert besitzt. Dieser Punkt wird am Schwerpunkt seiner Gegenfläche reflektiert. Damit ist erst einmal ein neuer Simplex entstanden. Nun wird der Zielfunktionswert in diesem Punkt berechnet. Ist dieser kleiner als der zweitgrößte Zielfunktionswert an den Eckpunkten der Gegenfläche, wird wieder von vorn begonnen. Ist dies nicht der Fall, erfolgt die Kontraktion, d. h., die Größe des Simplexes wird verringert, indem die Strecke zwischen dem neu ermittelten Punkt und dem Schwerpunkt verkürzt wird, wobei aber die Suchrichtungen erhalten bleiben, z. B. auf die Hälfte. An diesem Punkt werden nun wiederum der Zielfunktionswert berechnet und die oben genannten Bedingungen überprüft. Ist dieser Schritt erneut nicht erfolgreich, so wird der neu erhaltene Punkt wieder an dem Schwerpunkt der Gegenfläche gespiegelt. Wenn dieser Schritt ebenfalls nicht erfolgreich sein sollte, dann werden die Koordinaten aller Punkte mit den Koordinaten des Eckpunktes gemittelt, der den kleinsten Zielfunktionswert besitzt, so daß alle Kanten des Simplexes verringert wurden und so ein neuer Ausgangssimplex entstanden ist. Wenn der Zielfunktionswert des Eckpunktes, der durch Reflexion um den Schwerpunkt entstanden ist, kleiner als der kleinste Zielfunktionswert der anderen Eckpunkte ist, so kann man vermuten, daß diese Richtung sehr erfolgreich ist, und es erfolgt die Expansion, d. h. die Strecke zwischen dem Schwerpunkt und dem neuen Punkt wird

*1

-

Abb. 13. Darstellung der Vorgehensweise nach dem einfachen Polytopverfahren 5 Bichter

'66

4. Unbeschränkte nichtlineare Optimierung

vergrößert, wobei ebenfalls die Richtung beibehalten wird. Der Abbruch des Verfahrens erfolgt, wenn der Simplex hinreichend klein geworden ist. In Abb. 18 ist das entsprechende Vorgehen erläutert. Aufbau des Algorithmus SO: Vorgabe eines Startpunktes x1, der Schrit'tweite h, der Abbruchschranke e, des Reflexionskoeffizienten a, des Kontraktionskoeffizienten ß und des Expansionskoeffizienten y. Setze xj+1 = x1 + h e j = 1 , . . . , n. S l : Ordne die Punkte des Simplex so, daß gilt: > fix1) < f(x2) ^ ••• ^ f(xn) g/(.x» + 1 ). S2: Berechne den Schwerpunkt aller Punkte ohne den schlechtesten » \

x, = 1 ¡n£ xi J'=i S3: Reflexion des Punktes mit dem schlechtesten Zielfunktionswert am Schwerpunkt: Ist /(®1r) ^ fix1), gehen+1 zu S6. Ist /(x ) < f(xt) < f(x ), setze xn+1 = xr und gehe zu S7. Ist f(xT) jä: /(x n + 1 ), ermittle den inneren kontrahierten Punkt nach Xc=xs

+ ß(Xn+1 — Xs\

und gehe zu S4. Sonst ermittle den äußeren kontrahierten Punkt: xc — xs -f- ß{xT

x$).

S4: Der Ist f(x c) < f{x ), setze xn+1 — xc bisher und gehe zu S7. S5: gesamte den xi = (®1Simplex + xi)j2, wird ¿um = 2, 3 , . . . , » besten + 1 . Wert kontrahiert: n+1

Ermittle /(»'), i = 2, 3 , . . . , n + 1, und gehe zu Sl. S6: Im Expansionsschritt berechne xe =xs

+ y(xr — xa).

Ist /(ice) < f(xr), setze xn+1 = xe und gehe zu S7. Sonst setze xn+1 = xt S7: Ist 1 »+1 1 B+l ——r Z (/(*i(x) = — des Gradienten einer zu 8xt minimierenden Funktion /(x) das System von Gleichungen einzugeben, deren gemeinsame Nullstelle bestimmt werden soll. Aufbau des Algorithmus SO: Wähle zwei Anfangsnäherungen x° und x1 für ein lokales Minimum der Funktion /(x), eine Abbruchschranke e > 0 sowie eine Zahl q mit 0 < q < 1. Setze k = 1.

(4)

76

4. Unbeschränkte nichtlineare Optimierung

S1: Bestimme die Diskretisierungsschrittweite hk gemäß (4) und berechne die Elemente der Matrix Hk aus (3). S2: Ermittle yk als Lösung des linearen Gleichungssystems Vf(xk) + Hk(y - xk) = 0. Setze sk = yk — xk. S3: Falls ||s*|| ^ e ist, setze x* = xk. Stop. S4: Berechne die kleinste nichtnegative ganze Zahl jk gilt

0, für welche mit ock = (1/2)'*

f(xk + i-i «s = . . i — l «=i

(5)

Eine Erhöhung der Effektivität des Verfahrens erreicht man, wenn der Schwerpunkt, gewichtet durch die Zielfunktionswerte, berechnet wird [12, 15], d. h. Xs= mit . und

{

'-1 1 y AiX1 A(l - 1) t i

(6) W

f1 für f(x') - /(x1) ^ 0.05(!/(ae1)j + 10"4) l l l 1 {[f(x ) — f(x )]l[/(x ) — /{x )] sonst, i-i ¿=i

Um den Schwerpunkt erfolgt eine Reflexion des Punktes mit dem schlechtesten Zielfunktionswerten (xl) nach: xs = xs + x(xs — xl).

(7)

Der Reflexionskoeffizient oc ist im Programm P.5.2 gleich Eins. War diese Reflexion erfolgreich, d. h. /(x T ) < f{xl) und werden alle Nebenbedingungen eingehalten, dann

5.1.2. Erweitertes Polytopverfahren

83

erfolgt eine Expansion des Simplex nach £Ce = xä + y(xt

-

X,)

(8)

mit dem Expansionskoeffizienten y > 1. Stellt jedoch der Zielfunktionswert im reflektierten Punkt gegenüber den anderen keine Verbesserung dar oder werden Nebenbedingungen verletzt, dann wird außerhalb des alten Simplex kontrahiert (0 < ß < 1). xc = xs + ß(xr -

(9)

xs).

Sollte das noch keine Verbesserung bei der Minimumsuche bringen oder werden Nebenbedingungen verletzt, so erfolgt eine Reflexion des berechneten Punktes am Schwerp u n k t in d e n a u f g e s p a n n t e n S i m p l e x (Kontraktion

nach

innen)

xc = xs + tx(xl — Xs).

(10)

Verletzt dieser Punkt Grenzen oder wird keine Verbesserung des Zielfunktionswertes erreicht, so werden die Koordinaten des schlechtesten Punktes mit denen des besten gemittelt. Sind bei diesem Punkt immer noch die Grenzen verletzt oder noch immer keine Verbesserung erreicht, so werden alle Eckpunkte des Polytop außer xl durch (x1 + x*)/2 mit i = 2, 3, ..., I ersetzt. Als Abbruchkriterium wird F ^ s mit F =

n

«/

-t E (/(«*) l 1=1 \

i

T

1

1 ¿=1

\2

0.5

/

(11)

verwendet. Um der Forderung nach multivalenter Nutzbarkeit des Algorithmus zu entsprechen, ist es sinnvoll, neben der Möglichkeit, den Startsimplex im explizit gegebenen Lösungsgebiet mit Hilfe von Zufallszahlen aufzubauen, auch ein vollständiges Einlesen des Simplex vorzusehen. Weiterhin ist das Verfahren auch für Probleme ohne Nebenbedingungen anwendbar. Die Auswertung einer Reihe von Anwendungsfällen zeigt, daß das Verfahren mit Annäherung an die Lösung an Effektivität verliert. Die Konvergenzgeschwindigkeit in Nähe der Lösung ist gering, jedoch die Zuverlässigkeit des Suchprozesses hoch.

Aufbau des Algorithmus SO:

Sl:

Vorgabe eines zulässiges Startpunktes x1 und Ermittlung der restlichen l — 1 = 2n — 1 Eckpunkte des Startpolytopen durch zufällige Verteilung der Punkte im Gebiet der Grenzen (3). Werden dabei Grenzen des Typs (2) verletzt, so wird der hinzukommende Punkt mit dem Schwerpunkt der bisher zulässigen Eckpunkte gemittelt. Eingabe des Abbruchkriteriums e. Die verfahrensspezifischen Parameter haben die Werte: j — £Pg

S4:

0c(x§

.

Werden die Grenzen (2) nicht eingehalten, gehe zu S5. Ist f(xt) < fix1), gehe zu S4. Ist fix,) ^ f{x'), gehe zu S5. Sonst gehe zu S9. Expansion entlang der Reflexionsrichtung. Berechne 3?e — QPS -f- yixr

S5:

Werden die Grenzen (2) nicht eingehalten, gehe zu S9. Ist /(x e ) < fix,.), dann setze xT = xe. Gehe zu S9. Kontraktion entlang der Reflexionsrichtung. Setze Xc = X5 -f- ßfor

S6:

+

Werden die Grenzen (2) nicht eingehalten, gehe zu S6. Ist fixc) < fix2), dann setze xT = xc und gehe zu S9. Reflexion des kontrahierten Punktes am Schwerpunkt xc =xs

S7:

Xs).

x^/2.

Werden die Grenzen (2) verletzt, dann gehe zu S8. Ist /(scc) < fix'), dann setze xr = xc and gehe zu S9. Mittelung aller Punkte mit dem bisher besten Punkt: xi = ixi + x^/2,

i = 2, 3 , . . . , I.

Werden die Grenzen (2) verletzt, wird die Mittelung wiederholt. Berechne die Zielfunktionswerte fix2), ..fix1). Gehe zu S10. S9: Ersetze den bisher schlechtesten Wert xl = xT. S10: Berechne F nach (11). Ist F < e, dann ist x1 die Lösung mit /(afe.1). Stop. Sonst gehe zu S l . Das BASIC-Programm P.5.2 realisiert diesen Algorithmus Beispiel Als Optimierungsproblem wird wiederum die Aufgabe aus Abschnitt 4.1.1 gewählt. Diese Aufgabe wird wie in Abschnitt 5.1.1 erst mit unteren und oberen Grenzen behandelt und dann um eine Ungleichung erweitert. Damit soll es möglich sein, das erweiterte Polytopverfahren mit dem einfachen Polytopverfahren (s. 4.1.1) und dem Verfahren der adaptiven Zufallssuche zu vergleichen. Es sei die folgende Funktion zu mini-

5.2. Quadratische Optimierung

85

mieren

f(x) = Xj* — 2Z1Z + x2a +

— 4z1a;2 + 3

mit . -2

á 8,

t = 1,2.

Der Startpunkt ist wie bisher X o = (3,4) T und die Abbruchschranke e = 10~8. Als Lösung erhält man nach 67 Zielfunktionswertberechnungen X

!

/1.600 3257 \ ^0.906 052 74j

mit dem Zielfunktionswert /(x 1) = —1.5146117. Im Vergleich zum Verfahren der adaptiven Zufallssuche konnte die Anzahl der notwendigen Zielfunktionswertberechnungen von 124 auf 67 gesenkt werden, wobei ein besserer Funktionswert erreicht werden konnte. Im weiteren sei die obige Aufgabe betrachtet, erweitert um die Ungleichung 4*! + 5X ^ 20. Der Startpunkt ist wiederum x° — (3,4) T und die Abbruchschranke e = 10 -6 . Man erhält nach 50 Funktionswertberechnungen das beschränkte Minimum bei 2

X

, ^

= _

/1.1691231\ y3.0648013/

mit dem Zielfunktionswert /(x 1) = 9.5715541. Dieses Verfahren kann natürlich auch in gleicher Weise einfach nichtlineare Nebenbedingungen berücksichtigen. Weiterführende Bemerkungen Da das erweiterte Polytopverfahren den Anfangspolytop zufällig um den Startpunkt aufbaut, besteht eine hohe Wahrscheinlichkeit, daß die globale Lösung erreicht wird. Neben dieser positiven Eigenschaft erkennt man jedoch, wenn man den Lösungsverlauf analysiert, daß das Verfahren mit Annäherung an das Minimum an Effektivität verliert. Es bietet sich also an, dieses Verfahren mit einem Verfahren mit lokaler Konvergenz zu kombinieren. Das erweiterte Polytopverfahren wird sehr häufig für die Lösung von ingenieurtechnischen Problemen verwendet. Es ist ein zuverlässiges und robustes Lösungsverfahren f ü r Optimierungsprobleme mit nichtstetigen und nichtdifferenzierbaren Zielfunktionen und Nebenbedingungen. Numerische Experimente lassen es zweckmäßig erscheinen, die Unzulässigkeit eines Startpunktes im Programm anzuzeigen.

5.2.

Die quadratische Optimierung

Für den Fall eines Optimierungsproblems mit_quadratischer Zielfunktion und linearen Nebenbedingungen existiert eine ganze Reihe von Verfahren und Programmen. Wir stellen hier das Relaxationsverfahren und ein Verfahren basierend auf der Idee der aktiven Nebenbedingungen vor. Die Verfahren der quadratischen Optimierung sind auch als Softwarebausteine für Probleme mit allgemein nichtlinearen Zielfunktionen und Nebenbedingungen zu verstehen.

86

5. B e s c h r ä n k t e nichtlineare Optimierung

5.2.1.

Das Relaxationsverfahren Grundlagen des Verfahrens

Zur Lösung der quadratischen Optimierungsaufgabe z — xJCx

+ pJx + d = min!

(1)

bei Ax - b ^ 0 läßt sich das Relaxationsverfahren von Gauß-Seidel zur Lösung linearer Gleichungssysteme in modifizierter Form anwenden. Diese von Hildreth und d'Esopo beschriebene Vorgehensweise geht von der zu (1) dualen Aufgabe aus. Zu deren Konstruktion betrachtet man die zum Problem (1) gehörende Lagrange-Funktion L(x, u) = xTCx

+ pTx + d + uJ(Ax

— b).

(2)

Aus der notwendigen Bedingung für die Existenz des Minimums Lx = 2Cx + p + A^u = 0 folgt mit a = -—

2

C *pr

, x = - - i C-\p

+ A^u) = a - - i C - ^ t « .

(3)

Setzt man (3) in (2) ein, so ergibt sich mit h = - — AC-^p — b = Aa — & 2

(4)

G = — AC-W 4

(5)

und

das duale Problem 0. Setze k = 0. S l : Bestimme für i = 1, ..., m wtk und u^1 durch die Vorschrift v>ik = —

1 /i_1 r 0w

+ (Vgi{xk)Y (x-xk);, ¿6 If Richter

(3)

98

5. Beschränkte nichtlineare Optimierung

Die Nebenbedingungen in (3) werden als Schätzung der im Optimalpunkt aktiven angesehen und nach Lösung von (3) geändert, falls a) für die dualen Variablen ut die Bedingung b) die Nebenbedingungen a{x ig

22 0 (i 6 Ik) nicht erfüllt ist oder

(i (J Ik) verletzt sind.

Zur Lösung von (3) betrachtet man das System von Nebenbedingungen ttiX = bi (i € I k ). (4) Eine verallgemeinerte Elimination von Variablen aus dem System (4) besteht darin, daß Matrizen S und Z mit den Eigenschaften AS = I, AZ = 0 konstruiert werden. Eine spezielle Lösung von (4) kann, dann durch x = Sb , beschrieben werden. Alle Punkte x = Sb + ö mit Ad = 0 genügen darüber hinaus ebenfalls den Nebenbedingungen (4). Unter Verwendung der Darstellung von n vorausgesetzt wird, ist Zk nichtleer. Die Gradienten der Restriktionen, deren Indizes infr k enthalten sind, werden zu einer n X %-Matrix A(xk) zusammengefaßt. Aus A(xk) und dem Gradienten der Zielfunktion wird ein Vektor vk = ..., vnk)J nach folgender Vorschrift bestimmt: Vk = -(Äix")-1)!

Vf{xk).

(7)

Falls xk nicht optimal ist, wird ein Vektor yk = ( y / , . . . , ynk)J aus vk gemäß k = 1

i 0, falls » 6 J* = {i € I : ~sk ^ gi(xk) —sonst

0, v*

-ek}

gebildet, der schließlich dazu dient, die Abstiegsrichtung sk = («/, ..., sNk)J durch sk = A{xk)'1 yk festzulegen. Danach erfolgt die Wahl von Xk gemäß /(x k «f- Xksk) = min f(xk + As*) + ek.

(9)

Anschließend setzt man k xk+i = xk + Äks . Außerdem sind die Indexmengen Zk+1 und Zk+1 in Abhängigkeit von xk+1 neu zu bestimmen ,und der Algorithmus wird durch Erhöhung von k fortgesetzt. Aufbau des Algorithmus SO: Wähle 6 G derart, daß für höchstens n Restriktionen gi(x), i = h^,..., h^, i0 n gilt: gi(x°) = 0. Bestimme die Indexmengen Z0 und Z0 mit den definierenden Eigenschaften (i) card Z0=n, (ii) W , . . . , ^ ) c Z 0 , (iii) Z0 = {1, ...,m) \ Z 0 . Wähle eine Abbruchschranke e0 > 0 und setze k = 0. S l : Berechne 4 ( * * r = {{?ghAxk)> •••> ^ A ^ Y Y

1

S2: Bestimme den Vektor vk aller Elemente vk, deren Indizes zu Zk gehören gemäß vk = - ( i ^ * ) - 1 ) 1 " F/(x k ). Bestimmung der Abstiegsrichtung: S3:

Bestimme H(xk) = [i € Zk: gi(xk) < 0 oder v* < 0} und H(xk, ek) = {i e Zk: gt(ick) < -sk oder v k < —ek}.

7*

100

54 55 56 57 58

5. Beschränkte nichtlineare Optimierung .

Ist H(xk) = 0, so setze x* = xk. Stop. Ist H(xk, ek) = 0, so setze e t + 1 = ekj2. Gehe zu S3. Setze yf = —vk falls i € H(xk, ek). Berechne ck = 27 k ( y f ) 2 • i€H(x ,ek) Falls c

k

S9:

S: ek ist, setze sk+1 = ek. Gehe zu S9. € (0, ek) ist, setze ek+l = ek/2. Gehe zu S3. = 0 ist und H{xk, sk) = H(xk). Setze x* = xk. Stop.

Berechne

(12)

(13) (14)

102

5. Beschränkte nichtlineare Optimierung

wobei c, d, bu b2, l, u Vektoren sind und Alt A2, A3 Matrizen mit konstanten Elementen, /(sc) ist eine skalare und g(x) ist eine vektorielle nichtlineare Funktion. Die nx Komponenten von x werden als „nichtlineare" Variable und die n2 Komponenten von y als „lineare" Variable bezeichnet. In Analogie dazu seien die m 1 Gleichungen in (12) als „nichtlineare" Nebenbedingungen und die m2 Gleichungen in (13) als „lineare" Nebenbedingungen bezeichnet. Insgesamt sind dann m = m, + m2 Nebenbedingungen vorhanden und n = nr + n2 Variable. Die Unterscheidung zwischen linearen und nichtlinearen Nebenbedingungen sei hier ganz besonders hervorgehoben. Der Algorithmus besteht aus einer Reihe von äußeren Iterationen, in denen jeweils linear begrenzte Unterprobleme gelöst werden. Diese Unterprobleme bestehen aus den ursprünglichen linearen Nebenbedingungen (13) und der Linearisierung der Nebenbedingungen'(12). Das bedeutet, daß g(x) im Iterationspunkt linear approximiert wird. Diese Approximation wird folgendermaßen bezeichnet: g(x, x")=g

= g{xk) + J(x") (x - x«) = gk + Jk(x - x").

(15)

Dabei ist xk der Wert der nichtlinearen Variablen auf der fc-ten Iteration. Das linear beschränkte Unterproblem ergibt sich dann zu: f(x) + c^x + d^y - XJ(sr - g) + VM9

~ 9)J (9 ~ 9) =- min!

(16)

mit g+A1y

= bl,

A2X + Asy = b2,

(17) (18)

und L^LYH"'

(19)

Die Zielfunktion in (16) ist die sogenannte erweiterte oder modifizierte Lagrange-Funktion. Sie kann als eine Erweiterung der Straffunktionstechnik (s. auch Abschnitt 5.3.5) verstanden werden. So ist \ k eine Schätzung des Lagrange-Multiplikators der nichtlinearen Nebenbedingungen (12) und der Skalarg ein Straffunktionskoeffizient der hier quadratischen Straffunktion. Verwendet man (15) in (17) und (18) erhalten die'linearisierten Nebenbedingungen die Form

ft^atö-r«"'')-

«

Das Unterproblem (16) mit den Nebenbedingungen (20) und den oberen und unteren Schranken für die Variablen x und y in der Form (14) und den Schlupfvariablen s x und s 2 wird mit dem Verfahren der reduzierten Gradienten gelöst. Mit einem solchen Verfahren und der beschriebenen Umsetzung konnten erfolgreich große schwachbesetzte Optimierungsprobleme mit über 1000 Variablen bearbeitet werden.

5.3.5. Verfahren mit Straffunktionen

5.3.5.

103

Verfahren mit Straffunktionen Grundlagen des Verfahrens

Klassische Verfahren mit Straffunktionen lösen die Aufgabe bei

f{x) = min! gi(x) ^ 0,

(1) i = 1, ...,m,x

€ IR",

dadurch, daß eine Folge von Minimierungsproblemen ohne Nebenbedingungen behandelt wird. Bei diesen Problemen ändert man die Zielfunktion derart ab, daß durch hinzugefügte Strafterme das Verletzen gewisser Nebenbedingungen bestraft wird und man durch hinzugefügte Barriereterme das Erfülltsein der restlichen Nebenbedingungen erzwingt. Ein Beispiel für eine Familie solcher Straf-Barriere-Funktionen ist E(x, r) = f{x) + r £ max {0, 9 i (x)} f - £ ( M , ¿eis r ins \ g&x))

(2)

welche vom Parameter r abhängt. Für m = n = 1 und / s = 0 bzw. 7b = 0 sind Ausgangsproblem und zugehörige Straf-Barriere-Funktionen in Abb. 15 dargestellt.

Ausgehend von einem Startpunkt x° mit g^x0) < 0 wird der Iterationspunkt xk+1 dadurch ermittelt, daß man die Aufgabe E(x,rk)=

mini

(3)

mit dem Startpunkt xk näherungsweise löst und anschließend rk+1 = crk mit c > 1 setzt. Zur besseren Berücksichtigung von Straf- bzw. Barriereeinfluß wird oft, so auch im folgenden, zwischen Strafparameter rak und Barriereparameter rBk unterschieden. Es wird also anstelle von (2) E{x, rs, rB) = f(x) +rsZ

max {0, gt(x)) - r B £ (¡7,(®))_1

(2')

verwendet. Von der erzeugten Folge {xk} kann gezeigt werden, daß sie unter Standardvoraussetzungen gegen eine Lösung x* der Aufgabe (1) konvergiert.

104

5. Beschränkte nichtlineare Optimierung

Die skizzierte Vorgehensweise hat den Nachteil, daß die Parameterfolgen {rsk} und {rBk} gegen Unendlich bzw. gegen Null streben. Dies bringt Probleme in der numerischen Behandlung von (3) mit sich. Deshalb sind Modifikationen sinnvoll, welche schon für endliche Parameterwerte {rB, rs} eine beliebig genaue Annäherung an die Lösung in (1) erlauben. Die auf der Proximal-Point-Idee [44] beruhende Shifting-Technik betrachtet hierzu gestörte Probleme der Form f(x) =

min!

bei g,(x) — Vi^O,

i = 1,..., m,

und ändert nicht nur die Parameter rü und r s , sondern auch den Störungsvektor v, betrachtet also Teilprobleme mit vk, rsk, r Blt ) = f(x) + rB,k £ ( ias

\

— gi(x)

+ rSJCZm;ix(0,gi(x) ieis

\ +

v^)

+vi").

(4)

Hierbei können die Werte rSik bzw. rBk für mehrere Teilprobleme konstant bleiben, während sich die Störung vk ändert. Auf der dargestellten Shifting-Technik beruht die im BASIC-Programm P.5.9 vorliegende Implementierung. Ausgehend von Anfangsbelegungen r s 0 = 10 und r D 0 = 0 . 1 werden zwei Situationen unterschieden. 1. Es werden Straf-Barriere-Parameter und Störungen geändert. Dann ergibt sich fn.k+i = 0.1r Bßk ,

= 10rSill,

rSik+1

vM+i = O.-lvj*

2. Es wird nur die Störung geändert. Man erhält r

B.k+1 = rB.k> k+1

Vi

k+1

Vi

= Vi" +

r

S.k+l

gi(x

k

)

=

r

&,kt

für

i e I k

= m a x {0, Vi" + g,(x )}

B

,

für

i 6 /s •

Die Einteilung der Indexmengen Is und 7 B ist vom Nutzer des Programms selbst vorzugeben, desgleichen die Anzahl der zu jedem Störungsparameter zu lösenden gestörten Probleme. Zur Behandlung der Minimierungsaufgabe ohne Nebenbedingungen wird die^RangEins-Aufdatierung genutzt, welche im Abschnitt 4.2.4 beschrieben ist. Aufbau des Algorithmus SO: Wähle einen Startpunkt x° € R " eine > 0 und Indexmengen / s , IB mit grf( x°) < 0 für i € 7b sowie Parameter r B t 0 , rs,0 und Störungen v i = 1, ..., m. Gib eine Zahl p von Teilproblemen vor, welche zu festen Straf- und Barriereparameter gelöst werden. Setze t = 0, k = 0.

5.3.5. V e r f a h r e n m i t S t r a f f u n k t i o n

Sl: S2: S3: S4:

105

Setze t = t + l ' Ermittle ausgehend' von xk den Punkt xk+1 als Minimum der Funktion (4). Falls \E(xk+1, vk, rs_k, rBik) - /(x k )\ ^ e, so ist x* = xk+1 Lösung. Stop. Falls t < p: Setze Vih+1 = v k + g,(xk) (»€ J B ), v^1

= max {0, v^ + gi(xk)}

(i = U . = N E B E N B E D I N G U N G : " 1 3 4 0 P R I N T " > = UND = NEBENBEDINGUNG:" 1 3 6 0 E=Y+1

440

P.2.1. Simplexverfahren 1380 1400 1420 1440 1460 1480 1500 1520 1540 1560 Ns" 1580 1600 1620 1640 1660 1680 1700 1720 1740 1760 1780 1800 1820 1840 1860 1880 1900 1920 1940 ~1960 1980 2000 2020 2040 2060 2080 2100 2120 '2140 2160 2180 2200 2220 2240 2260 2280 2300 2320 2340 2360 2380 2400 2420 2440 2460 2480 2500 2520 2540 2560 2580 2600 2620 '2640

266a

8*

115

K=MN+NS+1:F0R J=NS+1 TO M ZEI=E+1:SP=1 5 PRINT FNCn»NEBENBEDINGUNG";J; XJ(J)=K PRINT"=X(";XJ(J);")" CJ(J)=10000 K=K+1:NEXT J:FOR P=1 TO 500:NEXT F:INPUT" " , Tn:PRINT CHHH(12) FOR 1=1 TO M : X I ( I ) = X J ( I ) : N E X T I ZEI=7:SP=15 INPUT" ",Tn;PRINT CHRn(1 2 ) : P R I N T FNCn"KOEFFIZIEHTEN DER ZIELFUNKTIO ZEI=8 PRINT FNCn" » H=10:MR=M FOR 1=11+1 TO M+I'IN:V=1 2 * ( I - M R ) - 1 1 I F I-M>5 THEN V=12*(I-MR)-71:GOTO 1700 V=12*(I-MR)-11 ZEI=R:SP=V PRINT F N C n " X ( " ; I - M ; " ) = " ; : I N P U T " " , C J ( I ) I F I-M=5 THEN R=11:MR=I-(V+11)/12: GOTO 1760 CJ(I)=CJ(I)*PT*(-1 ) NEXT I : Z E I = 7 : S P = 3 PRINT CHRn(12) PRINT FNCn"WERT DER RECHTEN SEITE " FOR 1=1 TO M ZEI=I+8:SP=15 PRINT FNCn"== DER NEBENBEDINGUNG"; PRINT"X(";I;")=";:INPUT " ",B(I) NEXT I FOR 1=1 TO M: FOR J=1 TO N IF I O J THEN 2020 A(I,J)=1 GOTO 2040 A(I,J)=0 NEXT J:NEXT I PRINT CHRn(12):ZEI=7 PRINT FNCn"NEBENBED. KOEFF.:" ZEI=8 PRINT FNCn" " ZEI=9 FOR 1=1 TO II ZEI=9:SP=15 PRINT FNCn"KOEFF. DER NEBENBED. N R . : " ; I FOR J=M+1 TO M+MN:V=6*(J-M)-5 ZEI=10+1:SP=V+9 PRINT FNCn;:INPUT" " , A ( I , J ) NEXT J:NEXT I I F NB=0 THEN 2400 FOR 1=1 TO NB A(NS+I,M+MN+I)=(-1) NEXT I REM AUFBEREITUNG UND AUSDRUCK DES SIMLEXT. FOR 1=1 TO M:FOR J=1 TO N I F X I ( I ) < > X J ( J ) THEN 2460 CI(I)=CJ(J) NEXT J:NEXT I IT=0 REM REM *** SCHRITT 2 *** REM FOR J=1 TO N Z(J)=0 FOR 1=1 TO M Z( J ) = Z ( J ) + C I ( I ) * A ( I , J ) NEXT I ZC(J)=Z(J)-CJ(J)

116

P. 2.1. Simplex verfahren

2 6 8 0 NEXT J 2 7 0 0 0B=0 2 7 2 0 FOR 1 = 1 TO M 2740 OB=OB+CI(I)*B(I) 2 7 6 0 NEXT I 2 7 8 0 PRINT C H R n ( l 2 ) 2 8 0 0 Z E I = 1 : S P = 2 5 : P R I N T FNCn"ITERATION N R . " ; I T 2820 ZEI=2 2 8 4 0 PRINT FNCn" » 2 8 6 0 Z E I = 4 : S P = 2 0 : P R I N T F N C n " B A S I S VARIABLEN WERT" 2 8 8 0 FOR 1 = 1 TO M 2 9 0 0 PRINT T A B ( 1 5 ) ; " X ( " ; X I ( I ) ; " ) " ; T A B ( 3 5 ) ; I N T ( 1 0 0 * B ( I ) + . 5 ) / 1 0 0 : N E X T 2 9 2 0 N1 =1 : N 2 = 8 2 9 4 0 I F N2>=W THEN 2 9 8 0 2 9 6 0 N2=N 2 9 8 0 Z E I = 1 4 : S P = 5 : P R I N T F N C n " V A R . DES S I M P L E X T . " 3 0 0 0 FOR I = N 1 TO N 2 * 3020 ZEI=15:SP=1 3040 PRINT"X(";XJ(I) ; ") ; "; 3 0 6 0 NEXT I : Z E I = 1 : S P = 2 5 3080 INPUT"WEITER",On 3 1 0 0 PRINT C H R n ( l 2 ) 3120 ZEI=1:SP=25:PRINT FNCn"ITERATION":IT 3 1 4 0 Z E I = 2 : S P = 2 5 :PRINT FNCn" " 3 1 6 0 Z E I = 4 : S P = 2 5 : P R I N T F N C n " K O E F F . MATRIX A ( I , ' J ) : " 3 1 8 0 Z E I = 5 : P R I N T FNCb" » 3200 N4=60:N3=10 3 2 2 0 FOR 1 = 1 TO M : : F O R J = N 1 TO N 2 : V = I N T ( N 4 / N 3 ) * ( J - 1 ) + 1 3 2 4 0 PRINT TAB(V);INT(100*A(I,J)+.5)/100; 3 2 6 0 NEXT J : N E X T I : I N P U T " " , 0 a 3 2 8 0 Z E ' I = 1 3 : S P = 1 5 ¡ P R I N T FNCn " M A R G . D E C K . B E I T R A G S K O E F F . Z ( J ) - C ( J ) : " 3 3 0 0 FOR I = N 1 TO N2 3 3 2 0 PRINT I N T ( 1 0 0 * Z C ( I ) + . 5 ) / 1 0 0 ; " "; 3 3 4 0 NEXT I : 3 3 6 0 I F N 2 > = N THEN 3 4 2 0 3380 N1=N1+8:N2=N2+8 3 4 0 0 GOTO 2 9 4 0 3420 ZEI=8:SP=50:PRINT FNCn"ZIELFKT.Z=";INT (100*0B+.5)/100; 3 4 4 0 Z E J = 9 : S P = 5 0 : P R I N T FNGn;:INPUT "weiter",On 3460 IT=IT+1:CM=ZC(1):JM=1 3 4 8 0 FOR J = 2 TO N 3 5 0 0 I F Z C ( J ) < = C M THEN 3 5 4 0 3520 CM=ZC(J):JM=J 3 5 4 0 NEXT J 3 5 6 0 REM 3 5 8 0 REM *** SCHRITT 3 *** 3 6 0 0 REM 3 6 2 0 I F CM>0 THEN 4 4 8 0 . 3 6 4 0 M3=M+MN:M0=M+1 3 6 6 0 I F M=NS THEN 3 7 8 0 3 6 8 0 FOR 1 = 1 TO M 3 7 0 0 M4=NS+1 3 7 2 0 FOR J = M 4 TO M 3 7 4 0 I F X I ( I ) = X J ( J ) THEN 4 3 8 0 3 7 6 0 NEXT J : N E X T I 3 7 8 0 FOR K=MO TO M3 3 8 0 0 FOR 1 = 1 TO M 3 8 2 0 I F X J ( K ) = X I ( I ) GOTO 3 8 8 0 3 8 4 0 NEXT I • 3 8 6 0 I F Z C ( K ) = 0 THEN 3 9 2 0 3 8 8 0 NEXT K 3 9 0 0 GOTO 3 9 4 0 3 9 2 0 P R I N T " * MEHRERE O P T . L O E S U N G E N MOEGLICH * " 3940 PRINT:PRINT:PRINT 3 9 6 0 P R I N T " * * * OPTIMALE LOESUNG GEFUNDEN * * * " 3 9 8 0 PRINT " * * * NACH";IT;"ITERATIONEN * * * "

I

P.2.1. Simplexverfahren

117

3980 PRINT " * * * N A C H " ; I T ; " I T E R A T I O N E N * * * " 4000 FOR 1=1 TO M 4020 I F B ( I ) < > 0 THEN 4080 4040 P R I N T : P R I N T " * * * DEGENERIERTE LOESUNG * * * " 4060 GOTO 4100 4080 NEXT I 4100 PRINT 4120 P R I N T " " 4140 PRINT " ENTSCH. VARIABLEN WERT " 4160 PRINT " " 4180 FOR 1=1 TO M 4200 PRINT TAB ( 8 ) ; " X ( " ; X I ( I ) ; " ) " ; T A B ( 1 6 ) ; " = " ; T A B ( 2 5 ) ; I N T (1000*B(I)+.5) /1 000 4220 NEXT I 4240 PRINT " ! BEACHTE ! " : P R I N T "ALLE VARIABLEN,DIE I N DIESER TABELLE" 4260 PRINT"NICHT GEZEIGT WERDEN,HABEN DEN WERT 0 " 4280 PRINT " " 4300 I F PT=1 THEN PRINT TAB(5);"MAXIMUM Z = " ; ABS(OB) 4320 I F P T = - 1 THEN PRINT T A B ( 5 ) ; " M I N I M U M Z = " ; ABS(OB) 4340 PRINT " " 4360 STOP 4380 P R I N T : P R I N T " * * * UNBESCHRAENKTE LOESUNG * * * " 4400 STOP 4420 REM 4440 REM *** SCHRITT 5 *** 4460 REM 4480 XM=1E+25:IM=0 4500 FOR 1=1 TO M 4520 I F A ( I , J M ) < = 0 THEN 4600 4540 X X = B ( I ) / A ( I , J M ) 4560 I F XX>=XM THEN 4600 4580 XM=XX:IM=I 4600 NEXT I 4620 I F IM>0 THEN 4680 4640 P R I N T " * * * LOESUNG UNMOEGLICH * * * " 4660 STOP 4680 X X = A ( I M , J M ) 4700 B ( I M ) = B ( I M ) / X X 4720 FOR J=1 TO N 4740 A ( I M , J ) = A ( I M , J ) / X X 4760 NEXT J 4780 FOR 1=1 TO M 4800 I F I = I M THEN 4920 4820 X X = A ( I , J M ) 4840 B ( I ) = B ( I ) - X X * B ( I M ) 4860 FOR J=1 TO N 4880 A ( I , J ) = A ( I , J ) - X X * A ( I M , J ) 4900 NEXT J 4920 NEXT I 4940 C I ( I M ) = C J ( J M ) 4960 X I ( I M ) = X J ( J M ) 4980 GOTO 2560 5000 END

118

P.2.2. Revidiertes Simplexverfahren

1 0 0 REM' *** REVIDIERTES SIMPLEXVERPAHREN ** P . 2 . 2 . ** 1 2 0 PRINT "LINEARE OPTIMIERUNG" 1 4 0 PRINT " R E V I D I E R T E SIMPLEXMETHODE" 1 6 0 PRINT " " : PRINT 1 8 0 P R I N T "MIT ODER OHNE ZWISCHENDRUCK (MIT +1 ,OHNE - 1 ) " 2 0 0 INPUT ZZ 2 2 0 REM *** SCHRITT 0 *** 2 4 0 REM EINLESEN DER ANZAHL DER TYPEN VON NEBENBED. UND ANZAHL DER VARIABLEN 2 6 0 INPUT "ANZAHL DER E N T S C H . - V A R I A B . ? " ; N 2 8 0 P R I N T : P R I N T " A N Z . DER N E B E N B E D I N G . " : P R I N T " ( A U S G . NICHTNEG. NEBENBEDINGG.) 3 0 0 I N P U T " K L E I N E R ODER GLEICH >= ? " ; L C 3 2 0 INPUT "GROESSER ALS ODER GLEICH > = ? " ; G C 3 4 0 INPUT " G L E I C H = ? " ; E C 3 6 0 MM=GC+EC:M=MM+LC:MK=GC+LC:N1 =MK+N3 8 0 P=N1 +MM:M'l =M+1 : M2=M+2: N0=N1 4 0 0 DIM A ( M 2 , P ) , B ( M 2 , M 1 ) , B S ( M ) , V ( M 2 ) , N B ( P ) , S L ( P ) , C ( P ) 4 2 0 REM EINLESEN DER KOEFF. DER NEBSNB. UND DER Z I E L F K T . 4 4 0 P R I N T : P R I N T "NEBENB. K O E F F . : " 4 6 0 PRINT " " 4 8 0 M4=M1 - 1 5 0 0 FOR 1=1 TO M4 5 2 0 PRINT " K O E F F . DER N E B E N B . N R . " ; I 5 4 0 FOR J = 1 TO N 560 PRINT"ENTSCH.-VARIABLE";J;" ";I;"=";:INPUT A(I,J) 5 8 0 NEXT J : N E X T I 6 0 0 P R I N T : P R I N T " K O E F F . DER Z I E L F K T . : " 6 2 0 PRINT " " 6 4 0 FOR J = 1 TO N 6 6 0 P R I N T "XC" ; J ; " ) = " ; 6 8 0 INPUT A A : A ( M 1 , J ) = - A A 7 0 0 NEXT J : P R I N T 7 2 0 REM DIE NULLTE SPALTE WIRD AUFGEBAUT 7 4 0 I P GC=0 THEN GOTO 9 0 0 7 6 0 P R I N T : P R I N T "TORT DER RECHTEN S E I T E ( > = ) " 7 8 0 PRINT " ' " 8 0 0 FOR 1=1 TO GO 8 2 0 A ( I , N+1 ) = - 1 : A ( I , N 1 + I ) = 1 : B ( M 2 , I ) = - 1 840 B ( I , I ) = 1 :A(M2,N1+I)=1 :BS(I)=N1+I 8 6 0 PRINT " N E B E N B . - N R . " ; I ; " = " ; : I N P U T A ( I , 0 ) 880 B ( I , 0 ) = A ( I , 0 ) : N E X T I 9 0 0 I P EC=0 THEN GOTO 1 0 6 0 9 2 0 P R I N T : P R I N T " W E R T DER RECHTEN S E I T E ( = ) " 940 PRINT" " 9 6 0 FOR ' I=GC+1 TO MM 980 A(I,N1+I)=1 : B ( I , I ) = 1 :A(M2,N1+I)=1 1000 BS(I)=N1 +1: B(M2,1)=-1 1020 PRINT"NEBENB.-NR.:=";I;"=";:INPUT A(I,0) 1040 B(I,0)=A(I,0):NEXT I 1 0 6 0 I F L C = 0 ' THEN GOTO 1 2 2 0 1 0 8 0 P R I N T : P R I N T "WERT DER RECHTEN S E I T E ( < = ) " 1 1 0 0 PRINT " —" 1 1 2 0 FOR I=MM+1 TO M 1 1 4 0 A ( I , N + I - E C ) = 1 : B ( I , I ) = 1 : BS ( I ) = N + I - E C 1 1 6 0 P R I N T "NEBENB. N R . " ; I ; " = " ; : I N P U T A ( I , 0 ) 1180 B ( I , 0 ) = A ( I , 0 ) 1 2 0 0 NEXT I 1 2 2 0 B(M1 ,M1 )=1 : B ( H 2 , M 1 )=1 1240 PRINT:PRINT 1 2 6 0 I F MM=0 THEN PRINT "PHASE 1 E X I S T I E R T NICHT":GOTO 1 4 0 0 1 2 8 0 REM *** SCHRITT 1 *** 1 3 0 0 REM ICUENSTL. FUNKTIONSWERT PUER PHASE 1 GESETZT 1 3 2 0 L=1 :NO=P:REM NO I S T AKTU. SPALTENZAHL 1 3 4 0 FOR 1=1 TO MM' 1360 B(M2,0)=B(M2,0)-B(I,0)

P.2.2. Revidiertes Simplexverfahren 1380 1400 1420 1440 1460 1480 1500 1520 1540 1560 1580 1600 1620 1640 1660 1680 1700 1720 1740 1760 1780 1800 1820 1840 1860 1880 1900 1920 1940 1960 1980 2000 2020 2040 2060 2080 2100 2120 2140 2160 2180 2200 2220 2240 2260 2280 2300 2320 2340 2360 2380 2400 2420 2440 2460 2480 2500 2520 2540 2560 2580 2600 2620 2640 2660 2680

NEXT I ML=M1+L:REM ML=M+2 FUER PHASE 1 ;M+1 FUER PHASE 2 PRINT:PRINT I F ZZ>=0 THEN PRINT "ANFANGSTABLEAU" PRINT" ":GOSUB 3 1 6 0 REM KENNZ. DER N I C H T B A S I S V . ; N B ( J ) = 0 I F J I S T NICHTBASISV. FOR 1=1 TO M : N B ( B S ( I ) ) = 1 :NEXT I ZER0=1E-08:NIL=1E-20 REM *** SCHRITT 2 * * * REM ERMITTELN DES KLEINSTEN C ( J ) ; K O E F F I Z . I N Z I E L F K T . MIN=-ZERO:S=0:PV=0:ML=M1+L FOR J = 1 TO N 0 : C ( J ) = 0 I F N B ( J ) = 1 THEN GOTO 1 7 4 0 REM b e r e c h n u g c ( j ) FOR 1=1 TO M : C ( J ) = C ( J ) + B ( M L , I ) * A ( I , J ) : N E X T I C(J)=C(J)+A(ML,J) I F C ( J ) > = M I N THEN GOTO 1 7 4 0 MIN=C(J):S=J NEXT J I F S=0 THEN GOTO 2 4 4 0 REM *** SCHRITT 5 *** MIN = 1 E + 2 0 : R = 0 FOR 1=1 TO M 1 : V ( I ) = 0 FOR K=1 TO M1 : V ( I ) = V ( I ) + B ( I , K ) * A ( K , S ) :NEXT K.-NEXT I V(ML)=C(S) FOR 1=1 TO M I F V ( I ) =0 THEN GOTO 2 0 4 0 R=I:MIN=B(I,0)/V(I) GOTO 2 1 2 0 I F DF0 THEN GOTO 2 1 2 0 K=K+1 MIN=B(R,K)/V(R) GOTO 1 9 4 0 NEXT I REM *** SCHRITT 4 *** I F R=0 THEN GOTO 2 3 6 0 I F ZZ>=0 THEN GOSUB 3 3 0 0 PV=V(R) FOR J = 0 TO M 1 : B ( R , J ) = B ( R , J ) / P V : N E X T J FOR 1=1 TO ML I F I = R THEN GOTO 2 3 0 0 FOR J = 0 TO M 1 : B ( I , J ) = B ( I , J ) - V ( I ) * B ( R , J ) : N E X T J NEXT I ' NB(BS(R))=0:NB(S)=1:BS(R)=S:N1=N1+1 GOTO 1 5 8 0 P R I N T " V A R I A B L E " S " I S T UBESCHRAENKT" GOSUB 3 3 0 0 : S T 0 P GOTO 3 1 2 0 REM • * * * SCHRITT 3 *** I F L=0 THEN GOTO 2 6 4 0 ' REM KONTROLLE: W MUSS NULL S E I N I F A B S ( B ( M L , 0 ) ) > = 1 E - 0 8 THEN GOTO 2 5 6 0 PRINT"PHASE 1 1ST O . K . " L=0:N0=N1 GOTO 1 5 8 0 PRINT"ZULAESSIGER BEREICH I S T NULL" PRINT"SUMME DER KUENSTLICHEN V A R . = " ; - B ( M L , 0 ) FOR 1=1 TO 1 0 0 : N E X T I GOSUB 3 3 0 0 : S T O P PRINT"OPTIMALE LOÈSUNG GEFUNDEN" PRINT:PRINT" » P R I N T " ENTSCH.VARIABLEN WERT"

119

120 2700 2720 2740 2760 2780 2800 2820 2840 2860 2880 29002920 2940 2960 2980 3000 3020 3040 3060 3080 3100 31 20 3140 3160 3180 3200 3220 3240 3260 3280 3300 3320 3340 3360 3380 3400 3420 3440 3460 3480 3500 3520 3540

P.2.2. Revidiertes Simplexverfahren PRINT" " FOR 1=1 TO M : S L ( B S ( I ) ) = B ( I , 0 ) PRINT T A B ( 8 ) ; " X ( " ; BS ( I ) ; " ) " ; TAB(1 6 ) ; " = " ; T A B ( 2 5 ) ; I N T ( 1 0 0 0 * B ( I , 0 ) + ' . 5 ) / 1 0 0 0 NEXT I INPUT Gn PRINT:PRINT P R I N T " B E A C H T E " : P R I i l T " DAS ALLE NICHT AUFGEP. VAR. DEN WERT NULL HABEN" PRINT:PRINT PRINT" PRINT"MAXIMUM VON Z " ; B ( M 1 , 0 ) PRINT" " INPUT Dn FOR 1=1 TO M PRINT" " ; I ; " " I F IHM THEN GOTO 3 0 2 0 P R I N T " K E I N E GLEICHUNGEN":GOTO 3 0 8 0 I F N B ( I + N ) = 1 THEN P R I N T " S C H L U P F " ; S L ( N + I ) : G 0 T 0 3 0 8 0 INPUT F a PRINT"BEDINGUNG 0 " NEXT I SS=1 : GOSUB 3 3 0 0 END REM *** ANFANGSTABLEAU *** PRINT : P R I N T PRINT"HATRIX A ( M + 2 , P ) " PRINT" " FOR 1=1 TO ML: FOR J = 0 TO NO : V=INT ( 6 * ( J - 1 )+1 ) PRINT T A B ( V ) ; I N T ( 1 0 0 * A ( I , J ) + . 5 ) / 1 0 0 ; NEXT J : N E X T I RETURN I F L=1 THEN PRINT"NOCH I N PHASE 1 " PRINT" " FOR J = 1 TO N O : P A = C ( J ) : N E X T J : P R I N T " " I F S=1 THEN GOTO 3 4 2 0 P R I N T " X ( " ; S ; " ) KOHHT IN DIE B A S I S " P R I N T " X ( " ; BS ( R ) ; " ) WIRD I N DIE- NEBENBEDINGUNG " ; R ; " E L I M I H I E R T " PRINT:PRINT PRINT "MATRIX B(M+2,M+1 ) " PRINT" " FOR 1=1 TO M2: FOR J = 1 TO H1 : V = I N T ( 8 * ( J - 1 )+1 ) PRINT T A B ( V ) ; I N T ( 1 0 0 * B ( I , J ) + . 5 ) / 1 0 0 ; NEXT J : N E X T I RETURN

P.2.3. Ellipsoidverfahren 100 REM *** DAS ELLIPSOIDVEFAHRKN ** P . 2 . 3 . ** 120 PRINT"DAS ELLIPSOIDVERFAIIREN (KHACIIIAN)" 140 REH DAS VERPAHREN LOEST DAS ZUR AUFGABE GEKOERENDU 160 REM UNGLEICHUNGSSYSTEM 180 REM DIE ERSTEN H WERTE: PRIMALE VARIABLE 200 REM DIE LETZTEN M WERTE:DUALE VARIABLE 220 REM ******************************************** 240 INPUT "DIMENSION DES PROBLEMS:";N1 260 INPUT "ANZAHL DER NEBENJ3EDINGUNGEN : " ; M1 280 N=M1+N1:M=N*2+1 300 DIM A(M1 ,N1 ) , X (N1 ),D(N1 ),BE(M1 ) , Q(N1 ) , B(M, N) ,C (M) 320 DIM Y ( N ) , B D ( N , N ) , P ( N ) , B B ( N , N ) , E T ( N , N ) 340 FOR 1=1 TO M1 : FOR J=1 TO N1 360 P R I N T " A " ; I ; J ; " = " : I N P U T A ( I , J ) : NEXT J 380 PRINT"RECHTE SEITE B " ; I ; " = " : I N P U T BE(I) 400 NEXT I 420 FOR J=1 TO N1: PRINT J ; "-TER ZIE L FU NK T10 N S K 0 E F FIZIE N T=" 440 INPUT D(J):NEXT J 460 PRINT"BEGRENZUNG ANFANGSELLIPS01D (JA=1/NEIN=-1)" 480 INPUT KA 500 IF KA0 THEN L=L1 900 L=INT(L)+1 920 REM *** SCHRITT 0 *** 940 FOR 1=1 TO N: Y ( I ) =0 : FOR J=1 TO N 960 B D ( I , J ) = 0 : I F I = J THEN B D ( I , J ) = 2 " L 980 NEXT J:NEXT I 1000 IT=1 1020 10=1 :MAX=-C(1 ) 1040 REM *** SCHRITT 1 *** ' 1060 FOR J=1 TO N:MAX=MAX+B(1 ,J)*Y(J):NEXT J 1080 FOR 1=2 TO M : S = - C ( I ) 1100 FOR J=1 TO N 1120 S = B ( I , J ) * Y ( J ) + S : N E X T J 1140 IF MAX F L THEN GOTO 8 6 0 8 4 0 GOTO 8 8 0 860 FH=Z(I):H-I 8 8 0 I F Z ( I ) < FL THEN GOTO 9 2 0 9 0 0 GOTO 9 4 0 920 F L = Z ( I ) : L = I 9 4 0 NEXT I 9 6 0 REM ZWEOTGROESSTER WERT WIRD ERMITTELT 980 FG=-1E+20 1 0 0 0 FOR 1=1 TO N+1 1 0 2 0 I F I=H THEN GOTO 1 0 8 0 1 0 4 0 I F Z ( I ) > F G THEN GOTO 1 0 6 0 1060 FG=Z(I):G=I •1080 NEXT I 1 1 0 0 REM *** SCHRITT 2 *** 1 1 2 0 FOR J = 1 TO N 1140 X0(J)=0 1 1 6 0 FOR 1=1 TO N+1 1 1 8 0 I F I = H THEN GOTO 1 2 2 0 1200 XO(J)=XO(J)+S(I,J) 1220 NEXT.I 1 2 4 0 REM XO XH XG XL WERDEN ERMITTELT .1260 X O ( J ) = X O ( J ) / N 1280 XH(J)=S(H,J) 1300 XG(J)=S(G,J) 1320 XL(J)=S(L,J) 1 3 4 0 NEXT J 1 3 6 0 FOR J = 1 TO N 1380 X(J)=XO(J) 1 4 0 0 NEXT J

133

134 1420 1440 1460 1480 1500 1520 1540 1560 1580 1600 1620 1640 1660 1680 1700 1720 1740 1760 1780 1800 1820 1840 1860 1880 1900 1920 1940 1960 1980 2000 2020 2040 2060 2080 2100 2120 2140 21 6 0 2180 2200 2220 2240 2260 2280 2300 '2320 2340 2360 2380 2400 2420 2440 2460 2480 2500 2520 2540 2560 2580 2600 2620 2640 2650 2660 2680 2700 2720

P.4.3. Polytop-Verfahren GOSUB 2 7 4 0 FO=F:PRINT"SCHWERPUNKT I N 1 1 2 0 " REM R E F L E K T I O N ( S C H R I T T 3) FOR J = 1 TO N XR(J)=X0(J)+AL*(X0(J)-XH(J)) X(J)=XR(J) NEXT J GOSUB 2 7 4 0 : F R = F : P R I N T " R E F L E K T I O N I N S T E P 1 2 2 0 " ; F REM EXPANSION(SCHRITT 6) I F F R < F L THEN GOTO 1 7 0 0 REM I F F R > F L AND F R > F G T E S T FR UND FG I F F R > F G THEN GOTO 2 0 0 0 GOTO 1 9 2 0 REM EXPANSION (SCHRITT 6) FOR J = 1 TO N XE(J)=GA*XR(J)+(1-GA)*XO(J) X(J)=XE(J) NEXT J GOSUB 2 7 4 0 : F E = F I F F E < F L THEM GOTO 1 8 4 0 GOTO 1 9 2 0 FOR J = 1 TO N S(H,J)=XE(J) NEXT J : Z ( H ) = F E : P R I N T " E X P A N S I O N IM STEP 1 4 8 0 " GOTO 2 5 2 0 FOR J = 1 TO N S(H,J)=XR(J) NEXT J : Z ( H ) = F R : P R I N T " R E F L E K T I O N IM STEP 1 5 6 0 " GOTO 2 5 2 0 I F F R > F H THEN GOTO 2 1 0 0 FOR J = 1 TO Ii XH(J)=XR(J) NEXT J Z(H)=FR FOR J = 1 TO N XC(J)=BE*XH(J)+(1 -BE)*XO(J) X(J)=XC(J) NEXT J GOSUB 2 7 4 0 : F C = F REM *** SCHRITT 4 *** I F F C > F H THEN GOTO 2 3 6 0 FOR J = 1 TO N S(H, ITERATIONSZAHL ? " ; NMZ:NFZ=0 540 PRINT " MAX. ITERATIONSZAHL = ";NMZ 560 INPUT "ZWISCHENDRUCKE J / N ? ( 1 / O ) " ; I P P 580 PRINT" AKTUELLE WERTE" 600 PRINT" STARTPUNKT" 620 FOR 1=1 TO N:PRINT L ( I ) ; • ! < = " ; " X ( " ; I ; " ) = " ; X ( I ) ; " , = " ; U ( I ) : N E X T I 640 REM *** AUFBAU DES POLYTOPS *** 660 1=1 680 GOSUB 3 0 0 0 : F ( 1 ) = Z 700 1=1+1 720 FOR J=1 TO I i : C ( I , J ) = L ( J ) + ( ( ( R N D ( 1 ) * 1 0 0 0 9 - 1 ) / 9 9 9 0 ) * ( U ( L ) - L ( J ) ) ) : X ( J ) = C ( I , J ) 740 IM=1:GOSUB 3060 760 I F IC=1 THEN GOTO 840 780 REM *** BERECHNUNG DES SCHWERPUNKTES DER BISHERIGEN POLYTOPPUNKTE *** 800 FOR J=1 TO N:XC(J) = ( ( 1 - 1 ) * X C ( J ) + C ( I , J ) ) / I : NEXT J 820 GOTO 880 840 FOR J=1 TO H : C ( I , J ) = C ( I , J ) + X C ( J ) / 2 : X ( J ) = C ( I , J ) : N E X T J 860 GOTO 740 880 GOSUB 3 0 0 0 : F ( I ) = Z 900 IF I = F ( K ) T H E N GOTO 1 8 2 0 GOTO 2 5 2 0 REM EXPANSIONSSCHRITT-SCHRITT 4 GAM=1.3 FOR 1=1 TO N : X E ( L ) = X O ( L ) + G A M * ( X O ( L ) - X H ( L ) ) : X ( L ) = X E ( L ) : N E X T L REM Z U L A E S S I G K E I T S T E S T IM=0:GOSUB 3 0 6 0 I F ( E C = 0 ) AND ( I C = 0 ) THEN GOTO 1 7 6 0 GOTO 2 5 2 0 GOSUB 3 0 0 0 : F E = Z I F FE>=FR THEN GOTO 2 5 2 0 FOR 1=1 TO N: X R ( I ) = X E ( I ) : N E X T : F R = F E = G O T O 2 5 2 0 REH KONTRAKTIONSSCHRITT-SCHRITT 5 BE=.5 FOR 1=1 TO N : X C ( I ) = X O ( I ) + B E * ( X R ( I ) - X O ( I ) ) : X ( I ) = X C ( I ) : N E X T REM ZULAESSIGKEITSTEST IM=0:GOSUB 3 0 6 0 I F ( E C = 0 ) AND ( I C = 0 ) THEN GOTO 1 9 6 0 GOTO 2 0 2 0 GOSUB 3 0 0 0 : F C = Z I F F C > = F ( K ) THEN:GOTO 2 0 2 0 FOR 1=1 TO N : X R ( I ) = X C ( I ) : N E X T : F R = F C : G 0 T 0 2 5 2 0 REM KONTRAKTION - SCHRITT 6 FOR 1=1 TO N : X S ( I ) = X 0 ( I ) + A L * ( X 0 ( I ) - X C ( I ) ) : X ( I ) = X S ( I ) : N E X T ,IM=1:GOSUB 3 0 6 0 I F 10=1 THEN GOTO 2 1 6 0 GOSUB 3 0 0 0 : F S = Z I F F S > = F ( K ) THEN GOTO 2 1 6 0 FOR 1=1 TO N : X R ( I ) = X S ( I ) : N E X T : F R = F S : G 0 T 0 2 5 2 0 REM MITTEILUNG DES BISHER BESTEN PICT.ES- SCHRITT 7 FOR 1=1 TO N : X M ( I ) = ( C ( 1 , I ) + X S ( I ) ) / 2 : X ( I ) = X M ( I ) : N E X T I M = 1 : GOSUB 3 0 6 0 I F 10=1 THEN GOTO 2 3 6 0 GOSUB 3 0 0 0 : F I = Z I F F I > = F ( I C ) THEN GOTO 2 3 6 0 FOR 1=1 TO N : X R ( I ) = X M ( I ) : N E X T FR=F(I):GOTO 2520 REM * * * SCHRITT 8 * * * REM MITTEILUNG ALLER PUNKTE MIT BISHER BESTEM PUNKT 1=1 1=1+1 FOR L=1 TO N : C ( I , L ) = ( C ( I , L ) + C ( 1 , L ) ) / 2 : X ( L ) = C ( I , L ) : N E X T IM=1:GOSUB 3 0 6 0 I F IC=1 THEN GOTO 2 4 0 0 GOSUB 3 0 0 0 : F ( I ) = Z I F K K THEN GOTO 2 3 8 0 GOTO 2 5 8 0 REM *** SCHRITT 9 *** FOR L=1 TO N : C ( I C , L ) = X R ( L ) :NEXT F(K)=FR REM ABBRUCHTEST-SCHRITT 1 0 S1=0:S2=0 FOR 1=1 TO K : S 1 = S 1 + F ( I ) : S 2 = S 2 + F ( I ) * F ( I ) : N E X SD=S2-S1 *S1/K:SD=SD/IC REM ERMITTLUNG DES MAX.A'BSTANDES DER POLYTOPPUNKTE DM=0

L

P.5.2. Erweitertes Polytopverfahren 2.700 2720 2740 2760 2780 2800 2820 2840 2860 2880 2900 2920 2940 2960 2980 3000 3020 3040 3060 3080 3100 3120 3140 3160 3180 3200 3220 3240 3260 3280 3300 3320 3340

FOR 1=1 TO K - 1 : F 0 R J = I + 1 TO K D=0 FOR 1=1 TO N : D = D + ( C ( I , L ) - C ( J , L ) ) " 2 : N E X T D=SQR(D) I F D>DM THEN GOTO 2 8 2 0 GOTO 2 8 4 0 DM=D NEXT J : N E X T I F (NZF>NMZ) THEN GOTO 2 9 2 0 I F ( S D > . 0 0 0 0 0 1 ) AND ( D M > . 0 0 0 1 ) THEN GOTO 9 2 0 REM AUSGABE DER LOESUNG PRINT"MINIMUM:" PRINT"NZF=" ;NZF; "ZIELFUNKTIONSWE'RT" ; F ( 1 ) FOR 1=1 TO N : P R I N T " X ( " ; I ; " ) = " > 0 ( 1 , 1 ) : N E X T END Z=X(1)"4-2*X(1)"3+X(2)-2+X(1)-2*X(2)-2-4*X(1)*X(2)+3 NZF=NZF+1 RETURN FOR 11=1 TO 2 * N : E C ( I I ) = 0 : N E X T I I : E C = 0 FOR 11=1 TO M : I C ( I I ) = 0 : N E X T I I : I C = 0 I F IM=1 THEN GOTO 3 2 6 0 FOR 11=1 TO N GOTO 3 1 8 0 E C ( I I ) = 1 :EC=1 I F X ( I I ) > U ( I I ) THEN GOTO 3 2 2 0 GOTO 3 2 4 0 N I = N + I I : E C ( N I ) = 1 :EC=1 NEXT I I G(1)=4*X(1)+5*X(2) I F G ( 1 ) < 2 0 THEN GOTO 3 3 2 0 GOTO 3 3 4 0 I C ( 1 )=1 : I C = 1 RETURN

147

148

P.5.3. Relaxationsverfahren nach Hildreth—d'Esopo

1 0 0 REM * * * HILDRETH - D'ESOPO ** P . 5 . 3 . *** 1 2 0 PRINT" " 1 4 0 PRINT"HILDRETH - D'ESOPO" 1 6 0 PRINT" " 1 8 0 REM * * * EINGANGSINFORMATIONEN *** 2 0 0 REM 2 2 0 REM *** SCHRITT 0 *** 2 4 0 REM 2 6 0 INPUT"DIMENS10N DES PROBLEMS : " , N 2 8 0 INPUT"ANZAHL DER NEBENBEDINGUNGEN : ",M 3 0 0 DIM C ( N . N ) , C 1 ( N ) , P ( N ) , P 1 ( N ) , A ( M , N ) . B ( M ) , X ( N ) , U ( H ) 3 2 0 DIM W ( M ) , D ( N , M ) , D D ( N , M ) , G ( M , M ) , H ( M ) 3 4 0 INPUT"ABBRUCHSCHRANKE I S T : " , E P S 3 6 0 INPUT"MAXIMALE ITERATIONSZAHL : ",ITMAX 3 8 0 PRINT:PRINT"EINGABE DER KOEFFIZIENTEN DER NEBENBEDINGUNGEN11 4 0 0 FOR 1=1 TO M:PRINT I;".NEBENBEDINGUNG":FOR J = 1 TO N 420 PRINT"KOEFFIZIENT";J;" : ";:INPUT A ( I , J ) : N E X T J 4 4 0 INPUT"RECHTE S E I T E : " , B ( I ) : N E X T I 4 6 0 PRINT:PRINT"EINGABE DER ZIELPUNKTIONSKOEFFIZIENTEN" 4 8 0 PRINT" (xT) * C * x + (pT) * x = min !11:PRINT 5 0 0 FOR 1=1 TO N:FOR J = 1 TO N : C ( I , J ) = 0 : N E X T J , I 5 2 0 PRINT"MATRIX C (DIAGONALELEMENTE) : ":FOR 1=1 TO N 5 4 0 PRINT"KOEFFIZIENT VOR X " ; I ; " " 2 : INPUT C ( I , I ) 560 IF C ( I , I ) < E P S THEN PRINT"PROBLEM UNGEEIGNET":GOTO 1 9 2 0 5 8 0 01 ( I ) = C ( I , I ) : N E X T I 6 0 0 PRINT"VEKTOR ( p T ) : " : F 0 R 1=1 TO N 6 2 0 PRINT"KOEFFIZIENT VOR X " ; I ; " : " ; : I N P U T P ( I ) 640 P 1 ( I ) = P ( I ) : N E X T I 6 6 0 PRINT:PRINT"EINGABE STARTVEKTOR : ":FOR 1=1 TO Ii 6 8 0 PRINT I ; " . W E R T : " ; : I N P U T X ( I ) : N E X T I 7 0 0 PRINT:PRINT"DUALE VARIABLE : ":FOR 1=1 TO M 7 2 0 PRINT I ; " . W E R T : " ; : I N P U T . U ( I ) :HEXT I 7 4 0 FOR 1=1 TO M : W ( I ) = 1 0 0 0 : N E X T I 7 6 0 FOR 1=1 TO N: C ( I , I ) =1 / C ( I , I ) : NEXT I 7 8 0 FOR 1=1 TO M:FOR J = 1 TO N : D ( J , I ) = A ( I , J ) : N E X T J , I 8 0 0 FOR 1=1 TO N:FOR J = 1 TO M : D D ( I , J ) =0:FOR K=1 TO N 820 D D ( I , J ) = D D ( I , J ) + C ( I , K ) * D ( K , J ) : N E X T I i , J , I 8 4 0 FOR 1=1 TO N:F0R J = 1 TO M : D ( I , J ) = D D ( I , J ) : N E X T J , I 8 6 0 FOR 1=1 TO M:FOR J = 1 TO M : G ( I , J ) = 0 : F O R K=1 TO N 880 G ( I , J ) = G ( I , J ) + . 5 * A ( I , K ) * D ( K , J ) : N E X T K , J , I 9 0 0 FOR 1=1 TO N : X ( I ) = 0 : F O R J = 1 TO N 9 2 0 X ( I ) = X ( I ) + C ' ( I , J ) * P ( J ) :NEXT J , I 9 4 0 FOR 1=1 TO M : H ( I ) = 0 : F O R J = 1 TO N 960 H ( I ) = H ( I ) + . 5 * A ( I , J ) * X ( J ) : N E X T J : H ( I ) = H ( I ) + B ( I ) : N E X T I 9 8 0 REM 1 0 0 0 REM *** SCHRITT 1 *** 1 0 2 0 FOR K=1- TO ITMAX 1 0 4 0 REM 1 0 6 0 T=0 1 0 8 0 FOR 1=1 TO M 1100 S = ~ H ( I ) / 6(1,1) 1 1 2 0 \ F 0 R J = 1 TO M 1 1 4 0 I F I = J THEN 1 1 8 0 1160 S = S - G ( I , J ) * U ( J ) / G ( I , I ) 1 1 8 0 NEXT J 1 2 0 0 L1=LG+1 1 2 2 0 I F K L 1 THEN 1 2 8 0 1 2 4 0 I F S > 0 THEN 1 2 8 0 1 2 6 0 S=0 1280 U(I)=S 1300 R=W(I)-U(I) 1 3 2 0 I F T>ABS(R) THEN 1 3 6 0 1 3 4 0 T=ABS ( R ) 1 3 6 0 NEXT I 1 3 8 0 REM 1 4 0 0 REM *** SCHRITT 2 ***

P.ö.3. Relaxationsverfahren nach Hildreth—d'Esopo 1420 1440 1460 1480 1500 1520 1540 1560 1580 1600 1620 1640 1660 1680 1700 1720 1740 1760 1780 1800 1820 1840 1860 1880 1900 1920

REM IF T 0 GOTO 1620 I F - A ( I , M + 1 ) / A ( I , S ) < M I N THEN M I N = - A ( I , M + 1 ) / A ( I , S ) : R = I NEXT I :GOSUB 1840:SWAP X ( S ) , Y ( R ) : G O T O 1180 I F PDB="d M THEN 1740 FOR 1=1 TO I - 1 : V ( I ) = 0 : FOR J=1 TO N I F Y ( J ) = 1 THEN V ( I ) = A ( J , M + 1 ) : G O T O 1720 NEXT J NEXT I : RETURN FOR 1=1 TO N : V ( I ) = 0 : FOR J=1 TO II I F X ( J ) = - I THEN V ( I ) = - A ( N + 1 , J ) : G O T O 1820 PRINT A ( I , J ) NEXT J NEXT I:RETURN FOR 1=1 TO N+1 : I F I=R THEN 1940 FOR K=1 TO M+1 I F K=S THEN 1920 A(I,K)=A(I,K)-A(I,3)*A(R,K)/A(R,S) NEXT K NEXT I:FOR 1=1 TO N+1: I F I = R GOTO 1980 A(I,S)=A(I,S)/A(R,S) NEXT I : FOR K=1 TO M+1 : I F K=S GOTO 2020 A(R,K)=-A(R,K)/A(R,S) NEXT K : A ( R , S ) = 1 / A ( R , S ) RETURN

153

154

P.5.6. Wilson-Verfahren

100 REM *** WILSONVERFAHREN ** . P.5v6.- ** 120 PRINT" " 140 PRINT"WILSON - VERPAHREN" 160 PRINT" " 180 REM *** KONSTANTEN *** 200 T1B=»ABBRUCHTEST ERFUELLT !" 220 T2n="MAXIMALE ITERATIONSZAHL ERREICHT" 240 REM *** EINGABEINFORMATION *** 260 INPUT"DIMENSION DES PROBLEMS : ",N 280 INPUT"ANZAHL DER NEBENBEDINGUNGEN : ",M 300 DIM A(M,N),C(N,N),D(N,M).DD(N.M),G(M,M) 320 DIM B(M),HS(N),HZ(N),X(N),U(M),XR(N),W(M) 340 REM 360 REM *** SCHRITT 0 *** 380 REM 400 INPUT"ABBRUCHSCHRANKE : ",EPS 420 INPUT11 ANZAHL DER MAXIMALEN ITERATIONEN : ",ITMAX 440 PRINT"EINGABE STARTWERTE:" 460 FOR 1=1 TO N:PRINT"X";X;" = ";:INPUT"",X(I):NEXT I:PRINT 480 FOR 1=1 TO M:PRINT"U";I;" = ";:INPUT"",U(I):NEXT I 500 FOR IT=1 TO ITMAX 520 REM 540 REM *** SCHRITT 1 *** 560 REM 580 FOR 1=1 TO N:XR(I)=X(I):NEXT:GOSUB 1480:S1=SIT 600 FOR 1=1 TO M:GOSUB 1 1 2 0 : B ( I ) = - Y 620 FOR J=1 TO N:GOSUB 1200:A1(I,J)=YY:NEXT J , I 640 FOR 1=1 TO M:FOR J=1 TO N : B ( I ) = B ( I ) + A 1 ( I , J ) * X ( J ) : N E X T J , I 660 FOR K=1 TO N:FOR J=1 TO N:GOSUB 13 2 0 : C ( K , J ) = . 5 * ZY:NEXT:NEXT 680 FOR 1=1 TO N:P(I)=0:FOR J=1 TO N : P ( I ) = P ( I ) - 2 * C ( I , J ) * X ( J ) : N E X T : N E X T 700 I=M+1:FOR J=1 TO N:GOSUB 1200:P(J)=YY+P(J):NEXT 720 GOSUB 1780 740 REM 760 REM *** SCHRITT 2 *** 780 REM 800 GOSUB 1 4 8 0 : I F ABS(SIT-S1) 0 OR C ( I , 0 ) < > 0 OR A B S ( C ( I , J ) ) < . 0 0 0 1 THEN 1 6 2 0 E L S E 1 6 6 0 J = J + 1 : I F J < = N THEN 1 6 0 0 1 = 1 + 1 : I F r < = N THEN 1 5 8 0 E L S E PRINT " M a t r i x i s t singulaer":END C(0,J)=1:C(I,0)=1:L=I:K=J:Q=C(I,J) FOR J = 1 TO N : H Z ( J ) = C ( L , J ) / - Q : N E X T : F O R 1=1 TO N : H S ( I ) = C ( I , K ) FOR J = 1 TO N : C ( I , J ) = C ( I , J ) + H Z ( J ) * H S ( I ) : N E X T EPS2 TI-IEN A ( K , K ) = - T ( K - I i ) / W : Z ( K ) = 1 1 1 8 0 I F WEPS THEN 2 8 0 0 REM *** SCHRITTE 1 6 - 1 7 *** K=0:FOR J = 1 TO M-N I=ZS(J):GOSUB 3140 I F Y=RHO THEN 2 4 8 0 L=L+1:ZD1(L)=J:V(L)=-Y NEXT I F K>L THEN PRINT"ENTARTUNG":GOTO 3 1 2 0 GOSUB 4 4 6 0 FOR J 0 = 1 TO K J1=0 J1=J1+1 I F J 1 > L THEN PRINT"AUSTAUSCH UNMOEGLICH": GOTO 3 1 2 0 FOR J = 1 TO N I=ZS(ZS1(JO)):GOSUB 3260 J2=ZD1(J1):G(J,J2)=YY

P.5.8. Verfahren der verallgemeinerten reduzierten Gradienten 2680 2700 2720 2740 2760 2780 2800 2820 2840 2860 2880 2900 2920 2940 2960 2980 3000 3020 3040 3060 3080 3100 3120 3140 3160 3180 3200 3220 3240 3260 3280 3300 3320 3340 3360 3380 3400 3420 3440 3460 3480 3500 3520 3540 3560 3580 3600 3620 3640 3660 3680 3700 3720 3740 3760 3780 3800 3820 3840 3860 3880 3900 3920 3940 3960 3980

NEXT J J 2 = Z S ( Z S 1 ( J O ) ) : Z S ( Z S 1 ( J O ) ) = Z D ( Z D 1 ( J1 ) ) ZD(ZD1(J1))=J2 FOR J = J 1 TO L-1:ZD1 ( J ) = Z D 1 ( J + 1 ) : N E X T L=L-1 NEXT JO PRINT"************************" PRINT I T , " - T E ITERATION" FOR 1=1 TO N : P R I N T " X " ; I ; X ( I ) : N E X T FOR 1=1 TO M:GOSUB 3140 PRINT"WERT DER NEBENBEDINGUNG"; I ; " : " ; Y : N E X T I=H+1:GOSUB 3140 PRINT"ZIELFUNKTIONSWERT : " ; Y NEXT IT PRINT"***********************" PRINT"ABBRUCH NACH"; IT ;"SCHRITTEN" PRINT"LOESUNG:" FOR 1=1 TO N:PRINT " X " ; I ; M X ( I ) : N E X T FOR 1=1 TO MrGOSUB 3140 PRINT"WERT DER NEBENBEDINGUNG"; I ; " : " Y : N E X T I=M+1: GOSUB 3140 PRINT"ZIELFUNKTIONSWERT:";Y END ON I GOTO 3 1 6 0 . 3 1 8 0 . 3 2 0 0 , 3 2 2 0 , 3 2 4 0 Y=X(1)"2-6*X(1)+X(2)+5:RETURN Y = X ( 1 ) * 2 - 6 * X ( 1 ) - 2 * X ( 2 ) + 5 sRETURN Y=(X(1)-3)'3-X(2)-2.5:RETURN Y=-(X(1)-4)*3+X(2)-3:RETURN Y = X ( 1 ) ~ 2 + X ( 2 ) : RETURN ON I GOTO 3 2 8 0 , 3 3 4 0 , 3 4 0 0 , 3 4 6 0 , 3 5 2 0 ON J GOTO 3 3 0 0 , 3 3 2 0 YY=2*X(1)-6:RETURN YY=1:RETURN ON J GOTO 3 3 6 0 , 3 3 8 0 YY=2*X(1)-6¡RETURN YY=-2:RETURN ON J GOTO 3 4 2 0 , 3 4 4 0 YY=3*(X(1)-3)"2:RETURN YY=-1: RETURN ON J GOTO 3 4 8 0 , 3 5 0 0 YY=-3*(X(1 )-4)*2:RETURN YY=1 .-RETURN ON J GOTO 3 5 4 0 , 3 5 6 0 YY=2*X(1):RETURN Y Y = 2 * X ( 2 ) : RETURN REM * * * QR-MODUL * * * L=N:IF N=M THEN L=N-1 FOR J=1 TO L : B = 0 : FOR I = J TO M : B = B + A ( I , J ) * A ( I , J ) : NEXT I An="DIE SPALTEN VON A SIND LINEAR ABHAENGIG!" I F B=0 THEN PRINT An:END A = - S G N ( A ( J , J ) ) * S Q R ( B ) : I F A ( J , J ) = 0 THEN A=-SQR(B) A L P H A = B - A ( J , J ) * A : A ( J , J ) = A ( J , J ) - A : F O R K=J+1 TO N+1 S=0:F0R I = J TO M : S = S + A ( I , J ) * A ( I , K ) : N E X T I:TS(K)=S/ALPHA FOR I = J TO M : A ( I , K ) = A ( I , K ) - A ( I , J ) * T S ( K ) : N E X T I:NEXT K A ( J , J ) = A : N E X T J : I F A(N,N)=0 THEN PRINT An:RETURN A(N,N+1)=A(N,N+1 )/A(N,N):FOR J=N-1 TO 1 STEP - 1 FOR I=N TO J+1 STEP - 1 : A ( J , N + 1 ) = A ( J , N + 1 ) - A ( J , I ) * A ( I , N + 1 ) NEXT I : A ( J , N + 1 ) = A ( J , N + 1 ) / A ( J , J ) : N E X T J D=0:IF M=N THEN D=0:G0T0 3880 FOR I=N+1 TO M:D=D+A(I,N+1)*A(I,N+1):NEXT I:D=SQR(D) RETURN REM * * * STRAHLMINIMIERUNG *** N0=0:F=.618:IE=0 FOR 1=1 TO N : A X ( I ) = X ( I ) : B X ( I ) = X A ( I ) : N E X T I N0=0: FOR 1=1 TO N : D = A B S ( A X ( I ) - B X ( I ) > I F D>NO THEN NO=D:NEXT I

161

162 4000 4020 4040 4060 4080 4100 4120 4140 4160 4180 4200 4220 4240 4260 4280 4300 4320 4340 4360 4380 4400 4420 4440 4460 4480 4500 4520 4540 4560 4580 4600 4620 4640 4660 4680 4700 4720 4740 4760 4780 4800

P.5.8. Verfahren der verallgemeinerten reduzierten Gradienten I P N0FW THEN 4200 FOR 1=1 TO N : B X ( I ) = W ( I ) : W ( I ) = U ( I ) : N E X T I FW=FU:IE=1 :G0T0 3960 FOR 1=1 TO N : A X ( I ) = U ( I ) : U ( I ) = W ( I ) : N E X T I FU=FW:IE=2: GOTO 3960 FOR 1=1 TO N : X ( I ) = A X ( I ) : N E X T I RETURN I P PHA=3 THEN 4420 1=1:GOSUB 3 1 4 0 : P H I = Y FOR 1=2 TO M:G0SUB 3140 I F Y>PHI THEN PHI=Y NEXT I Y = P H I : I F PHA=2 THEN Y=PHI~2 RETURN I=M+1:G0SUB 3140:RETURN P=V(J):V(J)=V(I):V(I)=P FOR 1=1 TO N-1 : J = I MMAX=V(I) POR K=1 TO N : I F V(K)>=MMAX THEN:MMAX=V(K):J=K NEXT K I P J < I THEN 4600 K=ZS1(J):ZS1(J)=ZS1(I):ZS1(I)=K P=V(J):V(J)=V(I):V(I)=P NEXT I RETURN FOR 1=1 TO N : X 0 ( I ) = X ( l ) : X 1 ( I ) = X ( I ) + A L * S ( I ) : N E X T GOSUB 4 2 8 0 : Y 0 = Y FOR 1=1 TO N : X ( I ) = X 1 ( I ) :NEXT I GOSUB 4280 :-Y1=Y FOR 1=1 TO N : X ( I ) = . 5 * ( X 0 ( I ) + X 1 ( I ) ) : N E X T I:GOSUB 4280 I F Y0 THEN POR 1=1 TO N : X 1 ( I ) = X ( I ) : N E X T I : Y 1 = Y I F ABS(Y)>EPS THEN 4720 RETURN

P.5.9. Straf-Barriere-Verfahren 1 0 0 REM *** STRAP - BARRIERE - VERFAHREN *** P . 5 . 9 . * * * 120 PRINT" " 1 4 0 P R I N T " S T R A F BARRIERE VERFAHREN " 1 6 0 PRINT" " 180 INPUT"DIE DIMENSION DES PROBLEMS 1ST : " , N 2 0 0 INPUT"ANZAHL DER NEBENBEDINGUNGEN = " , M 2 2 0 I N P U T " M A X . I T E R A T I O N S Z A H L I N DEN T E I L P R O B L . = " , I T M A X 2 4 0 INPUT"ZU FESTEM R GEHOERENDE TEILPROBLEME : " , T P Z 2 6 0 INPUT"WERT FUER STRAFPARAMETER : " , R S 2 8 0 INPUT"VERGROESSERUNGSFAICTOR : " , C 3 0 0 INPUT"BARRIERE-PARAMETER ( 0 - 1 ) : " , R B 3 2 0 I N P U T "ABBRUCHSCHRANKE : " , E P S 3 4 0 P R I N T " I M STRAFTERM BERUECKSICHTIGTE NB ( 1 - . . ) : " ; 3 6 0 I N P U T MS 3 8 0 PRINT:DIM X(N):DEFDBL Y,X 4 0 0 FOR 1 = 1 TO N 4 2 0 PRINT"ANFANGSWERT FUER x ( " ; I ; " ) = ";¡INPUT X(I):NEXT I 4 4 0 P R I N T : F O R 1=1 TO M 4 6 0 PRINT"ANFANGSSTOERUNG";I;".WERT : " ; 4 8 0 INPUT V ( I ) : N E X T I 5 0 0 REM 5 2 0 REM * * * SCHRITT 1 * * * 5 4 0 REM 5 6 0 TP=TP+1 5 8 0 REM 6 0 0 REM *** SCHRITT 2 *** 6 2 0 REM 6 4 0 GOSUB 1 2 4 0 6 6 0 REM *** DRUCK DER ZWISCHENERGEBNISSE *** 680 PRINT" » 7 0 0 GOSUB 1 2 8 0 7 2 0 PRINT T P ; " . T E I L P R O B L E M " ; :PRINT 7 4 0 PRINT 7 6 0 PRINT"STRAFPARAMETER=" ;RS 7 8 0 PRINT"BARRIEREPARAMETER=";RB 8 0 0 PRINT 8 2 0 FOR 1=1 TO N : P R I N T " X " ; I ; " = " ; X ( I ) : N E X T I : P H I N T 8 4 0 M H B = - 1 0 0 0 : F O R 1 = 1 TO M:GOSUB 2 2 8 0 : P R I N T I ; " . NB:",* 8 6 0 I F Y>MNB THEN MNB=Y 8 8 0 NEXT I : P R I N T 9 0 0 REM 9 2 0 REM * * * SCHRITT 3 *** 9 4 0 REII 9 6 0 GOSUB 2 5 2 0 : I = M + 1 : G O S U B 2 2 6 0 9 8 0 I F ABS ( S T - Y ) < E P S THEN P R I N T " G B N A U I G K E I T E R R E I C H T " : G O T O 1 2 2 0 1 0 0 0 REM 1 0 2 0 REM * * * SCHRITT 4 ***. 1 0 4 0 REM 1060 I F TPNO THEN NO=D:NEXT I I F NOFW THEN 2 1 8 0 FOR 1=1 TO N : B X ( I ) = W ( I ) : W ( I ) = U ( I ) : NEXT I FV/=FU:IE=1 :GOTO 1 9 4 0 FOR 1=1 TO N : A X ( I ) = U ( I ) : U ( I ) = W ( I ) : N E X T I F U = F U : I E = 2 : GOTO 1 9 4 0 FOR 1=1 TO N : X ( I ) = A X ( I ) : NEXT I RETURN REM *** FUNKTIONEN *** I F I > 1 THEN 2 3 2 0 Y = ( X ( 1 ) - 2 ) " 2 + ( X ( 2 ) - 2 ) " 2 - 1 : RETURN Y=X(1 ) ~ 2 + X ( 2 ) " 2 : R E T U R N *** REII *** ABLEITUNGEN I F I > 1 THEN 2 4 4 0 I F J > 1 THEN 2 4 2 0 Y Y = 2 * ( X ( 1 ) - 2 ) : RETURN Y Y = 2 * ( X ( 2 ) - 2 ) : RETURN I F I > 1 THEN 2 4 8 0 Y Y = 2 * X ( 1 ):RETURN Y Y = 2 * X ( 2 ) : RETURN REM * * * S T RA F-BA R R I E RE-FU NK T I 0 K *** I=M+1:GOSUB 2 2 8 0 : S T = Y FOR 1=1 TO MS:GOSUB 2 2 8 0 Y=Y+V(I) I F Y