Lineair Programmeren op het polytoop

Vergelijkbare documenten
TW2020 Optimalisering

TW2020 Optimalisering

Lineaire programmering

TW2020 Optimalisering

1. Het aantal optimale oplossingen van een LP probleem is 0, 1, of oneindig. 2. De vereniging van twee konvexe verzamelingen is niet convex. 3.

TW2020 Optimalisering

TU/e 2DD50: Wiskunde 2

Lineaire Algebra voor ST

Stelsels Vergelijkingen

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University

Stelsels lineaire vergelijkingen

EXAMEN LINEAIRE ALGEBRA EN MEETKUNDE I

Basiskennis lineaire algebra

Optimalisering en Complexiteit, College 10. Begrensde variabelen. Han Hoogeveen, Utrecht University

Lineaire Algebra voor ST

Lineaire Algebra (2DD12)

Kies voor i een willekeurige index tussen 1 en r. Neem het inproduct van v i met de relatie. We krijgen

Tweede huiswerkopdracht Lineaire algebra 1 Uitwerking en opmerkingen

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

Lineaire Algebra TW1205TI. I.A.M. Goddijn, Faculteit EWI 12 februari 2014

TU/e 2DD50: Wiskunde 2 (1)

Uitwerkingen tentamen lineaire algebra 2 13 januari 2017, 10:00 13:00

EXAMEN LINEAIRE ALGEBRA EN ANALYTISCHE MEETKUNDE I. 1. Theorie

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur.

TW2020 Optimalisering

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015

Tie breaking in de simplex methode

1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord).

Lineaire algebra I (wiskundigen)

Lineaire Algebra voor W 2Y650

Lineaire Algebra voor ST

4 Positieve en niet-negatieve lineaire algebra

ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Voorbeeldtoetsen Lineaire Algebra Deliverable 3.10 Henk van der Kooij ONBETWIST Deliverable 3.

Vectoranalyse voor TG

TW2020 Optimalisering

Optimalisering/Besliskunde 1. College 1 6 september, 2012

Discrete Wiskunde 2WC15, Lente Jan Draisma

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Enkele uitbreidingen op het simplexalgoritme

3.2 Vectoren and matrices

Bekijk nog een keer het stelsel van twee vergelijkingen met twee onbekenden x en y: { De tweede vergelijking van de eerste aftrekken geeft:

TW2020 Optimalisering

Universiteit Utrecht Departement Informatica. Examen Optimalisering op dinsdag 29 januari 2019, uur.

EERSTE DEELTENTAMEN ANALYSE C

Opgaven Functies en Reeksen. E.P. van den Ban

UITWERKINGEN 1 2 C : 2 =

Definities, stellingen en methoden uit David Poole s Linear Algebra A Modern Introduction - Second Edtion benodigd voor het tentamen Matrix Algebra 2

3 De duale vectorruimte

Aanvullingen bij Hoofdstuk 6

Samenvatting college 1-12

Vrije Universiteit Faculteit der Economische Wetenschappen en Bedrijfskunde Afdeling Econometrie

Modellen en Simulatie Lineare Programmering

l e x e voor alle e E

Lineaire Algebra voor ST

Geef niet alleen antwoorden, maar bewijs al je beweringen.

III.2 De ordening op R en ongelijkheden

Matrices en Grafen (wi1110ee)

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b

Lineaire Algebra voor ST

Afdeling Kwantitatieve Economie

Stabiele koppelingen (Engelse titel: Stable Matchings)

Lineaire functies? x 3x. (x 1, x 2 ) 5x 1 7x 2. x 6x 17. x ax. (a, x) ax??? 3x log x 2. substitueer x 1 = y 1, x 2 = exp(y 2 ) levert

Vrije Universiteit Faculteit der Economische Wetenschappen en Bedrijfskunde Afdeling Econometrie

Jordan normaalvorm. Hoofdstuk 7

Universiteit Utrecht Departement Informatica

TW2020 Optimalisering

Unitaire en Hermitese transformaties

Eigenschappen en Axioma s van de E 6 -meetkunde

Lineaire Algebra voor ST

Antwoorden op de theoretische vragen in de examen voorbereiding

Tie breaking in de simplex methode

TW2020 Optimalisering

Lineaire Algebra voor ST

Lineaire Algebra voor ST

TW2020 Optimalisering

Tentamen lineaire algebra voor BWI maandag 15 december 2008, uur.

PROEFEXAMEN LINEAIRE ALGEBRA dinsdag 22 november 2016

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Tentamen Lineaire Algebra voor ST (2DS06) op , uur.

De dimensie van een deelruimte

V.4 Eigenschappen van continue functies

Platonische lichamen en andere reguliere polytopen

PROEFEXAMEN LINEAIRE ALGEBRA donderdag 17 november 2011

Lineaire Algebra C 2WF09

Lineaire Algebra C 2WF09

Bilineaire Vormen. Hoofdstuk 9

Geadjungeerde en normaliteit

Inleiding Analyse 2009

Ter Leering ende Vermaeck

TW2020 Optimalisering

Bijlage A Simplex-methode

TW2020 Optimalisering

Lineaire Algebra voor ST

TU/e 2DD50: Wiskunde 2

Complexe eigenwaarden

Matrixalgebra (het rekenen met matrices)

Hebzucht loont niet altijd

Lineaire Algebra voor ST

Lineaire Algebra C 2WF09

Vector-en matrixvergelijkingen. Figuur: Vectoren, optellen

Tentamen lineaire algebra 2 18 januari 2019, 10:00 13:00 Uitwerkingen (schets)

Transcriptie:

Lineair Programmeren op het polytoop Paulien Neppelenbroek 12 juli 2017 Bachelorproject wiskunde Supervisor: dr. Jan Brandts Korteweg-de Vries Instituut voor Wiskunde Faculteit der Natuurwetenschappen, Wiskunde en Informatica Universiteit van Amsterdam

Samenvatting Lineair programmeren is een deelgebied van de wiskundige optimalisatie dat toegepast kan worden op een grote variatie aan lineaire optimalisatieproblemen binnen onder ander de vakgebieden economie, biologie en wiskunde. Zelfs wiskundige vraagstukken die niet lineair zijn, zoals het vinden van een p-norm beste benadering in een lineaire deelruimte van R n, laat zich in het geval p = 1 en p = schrijven als lineair programma. Het lineaire programma als beschrijving van een lineaire functionaal op een polytoop geeft een heldere introductie tot het lineair programmeren. Dankzij het bewijs dat de lineaire functionaal een optimum aanneemt in één of meer hoekpunten van het polytoop, blijkt het mogelijk te zijn om een optimum in eindig veel stappen te bepalen met behulp van het naïeve algoritme. Echter, een polytoop kan een zeer groot aantal hoekpunten bevatten, waardoor het naïeve algoritme een zeer duur proces kan zijn. Het simplexalgoritme is een alternatief algoritme dat vanuit een willekeurig hoekpunt een wandeling maakt via de ribben van het polytoop naar een optimum. Hierbij is het niet altijd nodig de waarde van de lineaire functionaal te bepalen in ieder hoekpunt. Er zijn verschillende verwisselingsstrategieën bekend die ieder de meest gunstige wandeling bepaalt gebaseerd op verschillende eigenschappen. De verwisselingsstrategie van Bland verzekert het simplexalgoritme ervan om een optimum te kunnen bepalen binnen eindige tijd. De stelling die bij deze bewering hoort toont aan dat deze verwisselingsstrategie cycli binnen het algoritme voorkomt. 2

Inhoudsopgave 1 Lineair Programmeren 7 2 p-norm beste benadering als lineair programma 14 2.1 -norm beste benadering als lineair programma.............. 17 2.2 1-norm beste benadering als lineair programma............... 19 2.3 Het naïeve algoritme.............................. 21 3 Het Simplexalgoritme 24 3.1 Het algoritme.................................. 24 3.2 De eerste toegelaten basisoplossing...................... 28 3.3 Cyclus...................................... 30 Bibliography 36 Bijlagen 38 3

Inleiding Lineair programmeren is het deelgebied van de wiskundige optimalisatie dat zich bezighoudt met het algoritmisch concreet berekenen van de extrema van een lineaire functionaal φ op een polyeder P R n. De beschrijving van het polyeder P als doorsnede van affiene halfruimtes, samen met een lineaire functionaal φ en de vraag naar zijn extreme waarden binnen P, heet een lineair programma. Deze is niet eenduidig en daarom zullen bepaalde beschrijvingen van lineaire programma s als standaard worden gedefinieerd. De nulpunten van een gradiënt geven binnen de analyse in veel gevallen de extrema van een functie, maar de gradiënt van een lineaire functie heeft geen nulpunt. Daarom is bij het lineair programmeren een andere methode nodig om de extrema te kunnen bepalen. Er zijn verschillende methodes bekend om lineaire programma s op te lossen, de twee meest bekende methodes hiervan zullen worden beschreven. Allereerst zal het naïeve algoritme worden beschreven. Deze methode bepaalt in elk hoekpunt van polyeder P de waarde van φ. Het naïeve algoritme is toepasbaar omdat in een lineair programma de functie φ zijn extreme waarden aanneemt in een of meer van de hoekpunten van P. Van deze hoekpunten is een punt waarin φ een extreme waarde aanneemt de oplossing van het lineaire programma. Deze is niet altijd uniek. Dit algoritme heet naïef vanwege de exponentiële complexiteit die het algoritme heeft. Laat P bijvoorbeeld gelijk zijn aan de driedimensionale kubus, dan heeft P acht hoekpunten waarin φ zijn extreme waarden kan aannemen. De hyperkubus in R 4 van één dimensie hoger heeft al twee keer zoveel hoekpunten. Elke kubus van dimensie n N 2 n hoekpunten, dus gegeven de honderddimensionale kubus, dan zijn er ruim 1.2 10 30 hoekpunten te bepalen waarin φ zijn extreme waarde kan aannemen. Een algoritme dat de waarde van φ slechts in een deelverzameling van de hoekpunten van P bepaalt is het zogenoemde simplexalgoritme. Alhoewel er nog geen bewijs is dat het simplexalgoritme het extremum in polynomiale tijd bepaalt, blijkt deze methode in de praktijk veel efficiënter te zijn dan de naïeve methode. De term lineair programmeren werd in 1939 geboren in het werk van Leonid Kantorovich (1912-1986): Mathematical Methods in the Organization and Planning of Production [3]. Kantorovich was een Sovjet-Russische econoom en wiskundige die op basis van schriftelijke bewijzen in zijn manuscripten gezien wordt als de bedenker van het lineair programmeren. De waardering voor zijn werk en voor de mogelijke toepassingen van de methode binnen de economie en wiskunde kwamen echter pas ruim twintig jaar later. De grondlegger en ontwikkelaar van het lineair programmeren is volgens velen de Amerikaanse wiskundige George B. Dantzig (1914-2005). Zijn ontwikkeling van het lineair 4

programmeren is sterk gerelateerd aan de tijd waarin hij leefde. Tijdens de Koude Oorlog ontwikkelde hij voor de Amerikaanse luchtmacht een systeem om te kunnen plannen en modelleren in een periode waarin computers nog weinig rekenkracht hadden. Dantzig was de eerste die binnen het lineair programmeren een scheiding maakte tussen de doelfunctie en de randvoorwaarden [4]. Figuur 1: L. Kantorovich Figuur 2: G.B. Dantzig In 1947 vergrootte Dantzig zijn bijdrage aan het vakgebied door de ontwikkeling van het simplexalgoritme [2]. Mede dankzij zijn werk werden plannings- en managementproblemen binnen een breed spectrum aan vakgebieden makkelijk oplosbaar. Dat lineair programmeren een belangrijke rol speelt binnen het oplossen van veel verschillende optimalisatieproblemen, blijkt uit het aantal vakgebieden waarin het reeds is toegepast. Een bekend voorbeeld van een wiskundig probleem dat kan worden opgelost met behulp van lineair programmeren is het zogeheten packing problem: het passen van een zo groot mogelijk figuur binnen een ruimte. Als voorbeeld hiervan beschrijft Matoušek in Understanding and Using Linear Programming [[1], p.23] een methode waarmee een zo groot mogelijke schijf in een polygoon kan passen. De actualiteit van dit probleem blijkt onder andere uit het bewijs dat na vierhonderd jaar recentelijk gevonden is voor het stapelprobleem van bollen [9]. Een tweede voorbeeld dat Matoušek beschrijft is de scheiding van punten binnen een ruimte met behulp van een hypervlak. Binnen de statistiek biedt deze scheiding de optie tot categorisering van data [[1], p.21]. Niet alleen in de wiskunde is lineair programmeren een dikwijls toegepaste methode. Binnen de economie biedt lineair programmeren de oplossing voor problemen die kunnen ontstaan op het gebied van productie en planning, zoals wordt beschreven in Using Linear Programming Methods for optimizing Production Programs, [5]. Ook in de biologie zijn veel onderzoeken te vinden waarin gebruik wordt gemaakt van de methode. Een voorbeeld is het onderzoek waarin de metabolische aanleg van een bacteriesoort wordt onderzocht in Quantifying the metabolic capabilities of engineered 5

Zymomonas mobilis using linear programming analysis [6]. Als laatste voorbeeld, is lineair programmaren toe te passen bij het vinden van een p-norm beste benadering, met betrekking tot verschillende normen. Hoofdstuk 2 beschrijft de methode om een p-norm beste benadering te vinden van een punt binnen een gegeven deelverzameling. Dit is interessant omdat met betrekking tot de 1-norm of de -norm, het mogelijk blijkt te zijn om dit probleem als lineair programma te herschrijven. Hoofdstuk 1 zal lineair programmeren introduceren op basis van alle definities en relevante stellingen waar de methode op gebouwd is. Een simpel optimalisatieprobleem op het tweedimensionale vlak schetst hierbij een voorbeeld van het opstellen van een lineair programma. Een tweetal voorbeelden van een p-norm beste benadering toont vervolgens in Hoofdstuk 2 hoe een probleem dat niet lineair is, toch te schrijven is als lineairprogrammeerprobleem. Vervolgens introduceert en beschrijft Hoofdstuk 3 het simplexalgoritme. Ook de eventuele complicaties van het algoritme zullen hierbij aan bod komen, samen met methodes en stellingen die deze complicaties helpen voorkomen. 6

1 Lineair Programmeren De beschrijving van een polyeder P als doorsnede van affiene halfruimtes samen met een lineaire functionaal φ en de vraag naar zijn extreme waarden binnen P heet een lineair programma. De volgende definities introduceren de concepten die benodigd zijn voor de constructie van P. Definitie 1. Voor gegeven a R n en b R heet de verzameling een (affien) hypervlak en de ruimte V a,b := {x R n a x = b} H a,b = {x R n a x b} een (affiene) halfruimte. Een tweedimensionale halfruimte heet een halfvlak. Definitie 2. Een verzameling P R n heet een polyeder wanneer het de doorsnede van een eindig aantal gesloten halfruimtes H ai,b i is. Laat dus a 1, a 2,..., a m R n en b 1, b 2,..., b m R, dan geldt P := H ai,b i = {x R n a i x b i } 1 i m 1 i m Een begrensde polyeder heet een polytoop en een tweedimensionaal polytoop heet een polygoon. Laat vanaf nu A R m n de matrix zijn met e i A = a i voor alle i {1, 2,..., n} en laat b R m de vector zijn met e j b = b j voor alle j {1, 2,..., m}, dan is een andere notatie voor polytoop P P = {x R n Ax b}. Definitie 3. Een lineair programma onder lineaire ongelijkheidsvoorwaarden is de beschrijving van een polyeder P R n als doorsnede van affiene halfruimtes samen met een lineaire functionaal φ : R n R, met φ(x) = c x, en de vraag naar zijn extreme waarden op P. Deze is van de vorm Maximaliseer φ(x) onder voorwaarde Ax b. (1.1) De lineaire functionaal van een lineair programma heet een doelfunctie (Eng. objective function). De ongelijkheidsvoorwaarden beschrijven het polytoop en heten de randvoorwaarden (Eng. constraints). 7

Enkele voorbeelden zullen mogelijk gebruik maken van de vorm Minimaliseer φ(x) onder voorwaarde Ax b, deze verschilt echter alleen van het origineel in notatie. Voorbeeld 1. Gegeven zijn de halfvlakken, gedefinieerd door de ongelijkheden x 1 +x 2 4, 3x 1 x 2 12, x 2 0 en x 2 0, samen met de lineaire functionaal φ : R 2 R : x x 1 + x 2. De doorsnede van de halfvlakken is het polygoon P die gegeven is in onderstaande afbeelding. P = ( x1 x 2 ) R 2 3x 1 x 2 12 x 1 0 x 1 +x 2 4 x 2 0. Een niveauverzameling behorende bij een lineaire functionaal is een verzameling N c := {x R n φ(x) = c} met c R. De vector in onderstaande afbeelding is de gradiënt van φ en elke rode lijn is een niveauverzameling die bij deze lineaire functionaal hoort. φ(x) is een extreme waarde binnen polygoon P, wanneer c de minimale dan wel maximale waarde is zodanig dat x N c P. 3x 1 x 2 12 x 1 + x 2 4 x 2 0 x 1 0 Het lineaire programma dat φ(x) maximaliseert onder voorwaarde dat x P is ( ) x1 Maximaliseer φ : x 1 +x 2, onder voorwaarden x 1 +x 2 4 3x 1 x 2 12 x 1 0 x 2 0. x 2 8

Het lineaire programma in Definitie 3 heeft ongelijkheden als randvoorwaarden, maar het vinden van een oplossing met behulp van het naïeve algoritme of het simplexalgoritme met behulp van methodes beschreven in Hoofdstuk 2, respectievelijk Hoofdstuk 3, vraagt om een alternatieve vorm. Het naïeve algoritme maakt gebruik van lineaire programma s onder gelijkheidsvoorwaarden. Definitie 4. Een lineair programma onder lineaire gelijkheidsvoorwaarden is een lineair programma waarbij de randvoorwaarden gelijkheden zijn en alle variabelen niet-negatief zijn. Deze is van de vorm Maximaliseer φ(x) onder voorwaarden Ax = b, met x 0. N.B. De notatie x 0 betekent x i 0 voor alle i {1, 2,..., n}. Stelling 1. Ieder lineair programma onder lineaire ongelijkheidvoorwaarden is te schrijven als een lineair programma onder lineaire gelijkheidvoorwaarden. Bewijs. Gegeven een lineair programma onder lineaire ongelijkheidsvoorwaarden zoals gedefinieerd in Definitie 3. Stel dat er een i {1, 2,..., n} bestaat, zodanig dat x i 0. Dan bestaan er elementen u i > v i 0 zodanig dat x i = u i v i. Met behulp van substitutie x i = u i v i in het lineaire programma en uitbreiding met voorwaarden u i 0 en v i 0 laat ieder lineair programma onder ongelijkheidsvoorwaarden zich schrijven met uitsluitend niet-negatieve variabelen. Herinner vervolgens de standaardnotitie van polytoop P, gedefinieerd in Definitie 2. Definitie 5. Laat a j x b j met j {1, 2,..., m} een randvoorwaarde zijn van een lineair programma onder ongelijkheidsvoorwaarden. Voor alle x R n met a i x b i, bestaat een spelingsvariabele (Eng. slack variable) s i R 0 zodanig dat a i x + s i = b i. Met behulp van spelingsvariabelen laat polytoop P zich schrijven als P = {x R n Ax b} = 1 i m {x Rn a i x b i} = 1 i m {x Rn s i R 0, a i x + s i = b i } = 1 i m {x Rn s R n 0, Ax + s = b} = {x R n s R n 0, Ax + s = b}. Definieer nu A := (A I m ) en x = (x 1, x 2,..., x n, x n+1,..., x n+m ) met x n+j spelingsvariabele s j voor alle j {1, 2,..., m}, dan volgt {x R n Ax b} = {x R n+m 0 Ax = b}. Het lineaire programma laat zich nu schrijven als Maximaliseer φ(x) onder voorwaarden Ax = b, met x 0 (1.2) 9

Dit is een lineair programma onder gelijkheidsvoorwaarden, zoals gedefinieerd in Definitie 4. Elk lineair programma onder ongelijkheidsvoorwaarden laat zich dus schrijven als een lineair programma onder gelijkheidsvoorwaarden. Voorbeeld 2. Gegeven het lineaire programma onder ongelijkheidsvoorwaarden uit Voorbeeld 1. ( ) x1 Maximaliseer φ : x 1 +x 2, x 2 onder voorwaarden x 1 +x 2 4 3x 1 x 2 12 x 1 0 x 2 0. Met behulp van de spelingsvariabelen x 3 en x 4 is het lineaire programma onder gelijkheidsvoorwaarden ( ) x1 Maximaliseer φ : x 1 +x 2, x 2 onder voorwaarden x 1 +x 2 +x 3 = 4 3x 1 x 2 +x 4 = 12 zodanig dat x 0. De volgende notaties zullen veelvuldig voorkomen. Laat B een verzameling elementen zijn uit {1, 2,..., n} en laat N het complement van B zijn. Noteer A B en A N voor matrix A, bestaande uit de kolommen waarvan de indices een element zijn uit verzameling B, respectievelijk N. Noteer x B, x N voor de vector x met alleen de componenten waarvan de indices een element zijn uit verzameling B, respectievelijk N. Noteer verder B voor de kardinaliteit van verzameling B en rang(a) voor het maximale aantal lineair onafhankelijke kolommen van A. Definitie 6. Laat de maximalisatie van φ(x) onder voorwaarden Ax = b x 0 een lineair programma zijn. Elke x 0 die voldoet aan de vergelijking Ax = b heet toegelaten. Een toegelaten basisoplossing (Eng. basic feasible solution) is een toegelaten oplossing waarvoor een verzameling B {1, 2,, n} bestaat, zodanig dat B = m = rang(a B ), x j = 0 voor alle j N. Verzameling B heet in dit geval een toegelaten basis. De componenten x B heten de basisvariabelen en de componenten x N de niet-basisvariabelen. N.B. De verzameling B heet een toegelaten basis, maar is uiteraard geen basis zoals deze term in de lineaire algebra bekend is, gezien het feit dat het een verzameling indices is en geen vectoren bevat. 10

Voor iedere B waarvoor geldt B = m = rang(a B ) is x B = ba 1 B uniek. Iedere toegelaten basis B levert dus een unieke toegelaten basisoplossing. Voorbeeld 3. Gegeven( het lineaire programma ) van ( Voorbeeld ) 2. Deze laat zich schrijven 1 1 1 0 4 als Ax = b met A = en b =. Kies B = {1, 3}, dan is A 3 1 0 1 12 B = ( ) ( ) 1 1 4 en heeft A 3 0 B x B = b oplossing x B =. De vector x = (4, 0, 8, 0) is dus een 8 toegelaten basisoplossing voor het lineaire programma Ax = b. Stelling 2. ([1]) Een toegelaten oplossing x van een lineair programma is een toegelaten basisoplossing dan en slechts dan als de kolommen van A K lineair onafhankelijk zijn, met K = {j {1, 2,..., n} : x j > 0}. Bewijs.. Als x een toegelaten basisoplossing is, volgt dat K B. Dan zijn de kolommen van A K onafhankelijk. Bewijs.. Laat x een toegelaten oplossing zijn en de kolommen van A K lineair onafhankelijk. Nu geldt dat K m voor alle onafhankelijke kolommen van A K. Wanneer K = m, geldt K = B en is de stelling bewezen. Wanneer K < m, kunnen m K kolommen worden toegevoegd op zo n manier dat A B lineair onafhankelijke kolommen heeft. Dit wordt bereikt door uitsluitend kolommen toe te voegen aan A K die nog niet in de opspanning van A K bevat zijn, en zo volgt precies K = m. Stelling 3. ([1]) Een toegelaten basisoplossing x wordt uniek bepaald door B: voor alle basissen B {1, 2,..., n} met A B regulier bestaat hoogstens één toegelaten oplossing x R n zodanig dat x i = 0 voor alle i / B. Bewijs. Als x een toegelaten oplossing is, moet gelden dat Ax = b met Ax = A B x B +A N x N. Omdat x een toegelaten basisoplossing is, geldt x N = 0, dus volgt Ax = A B x B = b. Nu, omdat A B regulier is, geldt dat er precies een oplossing is die de toegelaten basisoplossing is wanneer alle componenten niet-negatief zijn. Bevat deze oplossing wel negatieve componenten, dan is er geen toegelaten basisoplossing behorende bij B. Definitie 7. Een punt v R n is een hoekpunt van een polyeder P R n als er een lineaire functionaal φ bestaat zodanig dat φ(v) > φ(x) voor alle x P \ {v}. Om te kunnen bewijzen dat de toegelaten basisoplossingen van een lineair programma corresponderen met de hoekpunten van het polytoop, is allereerst een hulpstelling benodigd. Stelling 4. ([1]) Wanneer de doelfunctie van een lineair programma begrensd is van boven, dan geldt voor elke toegelaten oplossing x 0 dat er een toegelaten basisoplossing x bestaat waarvoor de doelfuntie een waarde geeft die gelijk is aan of groter is dan de waarde van de toegelaten basisoplossing. Ofwel, c x c x 0. Bewijs. Laat x 0 een willekeurige toegelaten oplossing zijn. Uit alle toegelaten oplossingen x die voldoen aan de ongelijkheid c x c x 0 wordt de oplossing gekozen met het 11

grootste aantal componenten gelijk aan 0, deze heet x. Hiervoor wordt de verzameling K gedefinieerd: K := {j {1, 2,..., n} : x j > 0}. Nu geldt dat de kolommen van matrix A K afhankelijk of onafhankelijk zijn. Wanneer zij onafhankelijk zijn, volgt met behulp van Stelling 2 direct dat x een toegelaten basisoplossing is. Aangenomen wordt dus dat de kolommen van matrix A K onafhankeljk zijn, dus er is een K -component vector v die niet gelijk is aan 0 maar waarvoor geldt dat A K v = 0. Deze wordt uitgebreid met componenten gelijk aan 0 op de posities buiten K tot n-component vector w. Nu geldt w K = v en Aw = A K v = 0. Neem nu aan 1. c w 0 2. Er bestaat een j K zodanig dat w j < 0. Laat nu t 0 en definieer vector x(t) = x + tw. Dan volgt Ax(t) = A x + taw = A x = b voor alle t, omdat x toegelaten is. Wanneer t = 0, heeft vector x(0) = x alle componenten in K strict positief en alle andere componenten gelijk aan 0. Uit 2. volgt dat x(t) j = x j + tw j < 0 voor t > 0 groot genoeg. Stel nu dat w niet aan de gestelde punten 1. en 2. voldoet. Als c = 0 dan wordt voldaan aan 1. en kan aan 2. worden voldaan door te vermenigvuldigen met -1, vanwege het gegeven w 0, dus aangenomen kan worden dat c w 0. Wederom met een eventuele vermenigvuldiging met -1 volgt c w > 0 waardoor aan 1. wordt voldaan. Wanneer nu nog steeds niet aan 2. wordt voldaan moet gelden dat w 0, maar dan volgt voor alle t 0 x(t) = x + tw 0 dus zijn al deze oplossingen x(t) toegelaten. De waarde van de doelfunctie voor x(t), c x(t) = c x + tc w groeit oneindig groot voor t dus het lineaire programma is onbegrensd, maar er werd aangenomen dat de doelfunctie begrensd is. Dit bewijst de stelling. Stelling 5. ([1]) Laat P het convexe polyeder zijn. Dan bevat P alle toegelaten oplossingen van het lineaire programma. Voor een punt v P zijn nu equivalent: 1. v is een hoekpunt van polyeder P. 2. v is een toegelaten basisoplossing van het lineaire programma. Bewijs. Uit Stelling 4 volgt direct de implicatie 1. 2., vanwege Definitie 7. Om te kunnen bewijzen dat 1. ook wordt geïmpliceerd door 2. zal gebruik worden gemaakt van Stelling 3. Laat v een toegelaten basisoplossing zijn bij basis B. Definieer vector c R n als volgt { 0 i B c i = 1 i / B (1.3) Nu geldt dat c v = 0 en c x 0 voor alle x 0. In het bijzonder geldt c x < 0 wanneer x een component x j bevat waarvoor geldt dat j / B en x j 0. Wegens Stelling 3 geldt 12

dat v de enige toegelaten oplossing is met componenten in B ongelijk aan 0, dus v is het enige punt in P waarvoor c x maximaal is. Een lineair programma is een beschrijving van een polytoop P als eindigdimensionale doorsnede van een eindig aantal halfruimtes, zoals gedefinieerd in Definitie 2. Stelling 5 toont aan dat ieder hoekpunt correspondeert met een toegelaten basisoplossing. Met behulp van Stelling 3 volgt dat iedere toegelaten basisoplossing uniek bepaald is door B, de deelverzameling waar er maar eindig veel van bestaan binnen het lineaire programma. Er is dus een eindig aantal hoekpunten waarin de doelfunctie van het lineaire programma een optimum kan aannemen. Het volgende hoofdstuk zal een voorbeeld geven van hoe een probleem dat niet lineair is, toch te schrijven is als lineair programma. Vervolgens zal het een algoritme introduceren dat in elk hoekpunt de waarde van de doelfunctie bepaalt en op deze wijze in een eindig aantal stappen een optimum van een lineair programma bepaalt. 13

2 p-norm beste benadering als lineair programma Dit hoofdstuk beschrijft een methode om een p-norm beste benadering te vinden voor p = 1 en p =. Voor deze waarden van p blijkt het mogelijk te zijn om een p-norm beste benadering te vinden met behulp van lineair programmeren. Definitie 8. Laat x een element zijn in R n. Voor p R met 1 p < is de p-norm de functie p : R n R zodanig dat ( n ) 1/p x p := x i p. (2.1) i=1 Laat x = max{ x 1, x 2,..., x n }. (2.2) Definitie 9. Een p-norm beste benadering van een punt w R n in een lineaire deelruimte V R n van R n, is een element v V waarvoor geldt dat w v p w u p voor alle u V. (2.3) Allereerst is het belangrijk om te weten of deze p-norm beste benadering voor alle p R met 1 p bestaat. Definitie 10. De verzameling B p (x, r) = {y R n x y p r} is de p-normbol om punt x R n met straal r R 0. Voor r = 1 heet de bol B p (x, 1) de p-normeenheidsbol. Met behulp van de definities en stellingen die dit hoofdstuk introduceert, laat een p-norm beste benadering van een punt binnen een lineaire deelruimte van R n zich schrijven als lineairprogrammeerprobleem, in het geval van een tweetal p-normen. Voorbeeld 4. De gekozen norm bepaalt de vorm van de bol, deze kan flink variëren. Dit voorbeeld toont drie eenheidsbollen in R 2 om de oorsprong, B p (0, 1) = {y R 2 x y p 1}, met p = 1, p = 2 en p = : 14

p = 1 x 2 p = 2 x 2 p = x 2 x 1 x 1 x 1 Stelling 6. Laat V een lineaire deelruimte van R n zijn en gegeven een element w R n, dan bestaat er voor elke norm een beste benadering van w in V. Bewijs Laat w R n en laat een willekeurige norm zijn. Laat φ φ : R n R : v w v. Vanwege de continuïteit van de norm is φ continu. Laat verder B de bol zijn waarvoor geldt B := {y R n w y w }. B bevat de oorsprong omdat w 0 w. V bevat per definitie de oorsprong omdat het een lineaire deelruimte van R n is. De doorsnede B V bevat daarom ook de oorsprong en is niet-leeg. Voor iedere v V met v / B V geldt v / B en w v w. Omdat B V niet leeg is is de beste benadering van w in v daarom in het bijzonder een element van B V. Verder geldt dat B V gesloten en begrensd omdat B dat is. De functie φ is continu en neemt daarom op B V een minimum en maximum aan. Er bestaan dus elementen v 1, v 2 B V zodanig dat Voor v 1 geldt nu φ(v 1 ) φ(u) φ(v 2 ) voor alle u B V. w v 1 = φ(v 1 ) φ(u) = w u voor alle u B V en met (2.3) volgt dat voor het element v 1 een beste benadering is van w in V. Deze norm is willekeurig gekozen en dus geldt deze stelling voor iedere norm. Omdat de 2-norm is afgeleid van het standaardinproduct, is het mogelijk de 2-norm beste benadering te vinden met behulp van de projectie van w op V. ( ) ( ) 2 2 Voorbeeld 5. Gegeven zijn punt w = en lineaire deelruimte V = Sp{ } in R 6 1 2 in onderstaande afbeelding. De 2-norm ( beste ) benadering van w in V is de projectie P V (w) 2 van w op V, hiervoor geldt P V (w) = 2. 1 15

De 1-norm en -norm zijn echter niet afgeleid van een inproduct en in het geval p = 1 en p = is daarom een alternatieve methode nodig. Een van de methodes van een p-norm beste benadering van w in V maakt gebruik van de doorsnede van V met de p-normbol om punt w. Voorbeeld 6. Laat punt w en deelruimte V van R n gegeven zijn. Laat verder B = B 2 (w, w 2 ) de bol zijn om punt w met straal w 2. x 2 B w V x 1 Neem aan w / V (als w V, dan is w de beste benadering van w). Volgens Stelling 6 bestaat er een beste benadering van w in V, waarbij de afstand tussen w en V minimaal is. Een methode om een 2-norm beste benadering te vinden, is het bepalen van de minimale waarde van r zodanig dat de doorsnede B V niet leeg is. De beste benadering van w in V is nu het element v zodanig dat w v 2 = r, met r := min{r > 0 (B 2 (w, r) V) }. In het geval van de 2-norm is het element v V die voldoet aan w v 2 = r uniek, omdat de n-dimensionale 2-normbol strikt convex is. Omdat het geval van de 2-norm slechts een voorbeeld is, volgt hiervan geen bewijs. De volgende propositie toont aan dat er voor de 1-norm en -norm niet altijd een unieke beste benadering bestaat. Propositie 1. Laat w, v R n gegeven zijn, dan is niet iedere p-norm beste benadering van w in U = Sp{v} uniek. ( ) ( ) 2 1 Bewijs Laat punt w = en U = Sp{v} met v = gegeven zijn in onderstaande 6 1 afbeelding. Het is duidelijk dat B 1 (w, r) geen strikt convexe verzameling is voor r > 0 en dat er geen unieke beste benadering van w bestaat in U. De beste ( benadering ) lijkt het 2 deel te zijn van U tussen het element recht onder w, punt u 1 = U en het punt 2 ( ) 6 rechts naast U, punt u 2 = U. 6 16

x 2 U w x 1 Voor alle elementen u U met u 1 u u 2 geldt u = α ( ) 1 met 2 α 6 en 1 w u 1 = α 2 + 6 α = α 2 + 6 α = 4. { ( ) } 1 Er geldt min{r > 0 (B 1 (w, r) U) } = 4 en B 1 (w, 4) U = α 2 α 6 1 en de 1-norm beste benadering van w binnen U is dus niet uniek. Ook de bol met betrekking tot de oneindignorm is niet strikt convex (m.u.v. het triviale geval), zoals te zien is in Voorbeeld 4. Analoog aan dit tegenvoorbeeld is aan te tonen dat er niet altijd een unieke -norm beste benadering bestaat. 2.1 -norm beste benadering als lineair programma Deze sectie zal tonen dat het vinden van een -norm beste benadering van een punt w in een k-dimensionale lineaire deelruimte V van R n zich laat schrijven als lineair programma. Gegeven is een k-dimensionale lineaire deelruimte V van R n met V := {V α : α R k } voor een zekere V R n en rang(v ) = k. Laat nu w een element zijn in R n en v V. Dan v = V α voor een zekere α R k en er geldt w v r max{ w i k j=1 α jv ij : i {1, 2,..., n}} r w i k j=1 α jv ij r voor alle i {1, 2,..., n} r w i k j=1 α jv ij r voor alle i {1, 2,..., n}. (2.4) De oplossingsverzameling die voldoet aan de ongelijkheden in (2.4) is het onbegrensde polyeder P. α 1 α 2 P =. R k+1 α k r r w i k j=1 α jv ij r voor alle i {1, 2,..., n} 17

Hierop neemt de lineaire functionaal φ een minimum aan. α 1 α 2 φ : R k+1 R :. r (2.5) α k r Stelling 6 toont aan dat er een -norm beste benadering in V bestaat van w. Laat v V deze beste benadering zijn, dan geldt dat r de minimale waarde is en w v = r. Een -norm beste benadering van w in V laat zich nu bepalen met Minimaliseer r onder voorwaarden w i k j=1 α jv ij r w i + k j=1 α jv ij r voor alle i {1, 2,..., n}. Dit is een lineair programma onder ongelijkheidsvoorwaarden zoals gedefinieerd in Definitie 3, met φ als in (2.5), met v 11 v 12... v 1k 1 v 11 v 12... v 1k 1 v 21 v 22... v 2k 1 A = v 21 v 22... v 2k 1, x =..... α k v n1 v n2... v nk 1 r v n1 v n2... v nk 1 α 1 α 2 w 1 w 1 w 2 en b = w 2.. w n w n Voorbeeld 7. Gegeven zijn element w R 3 en de tweedimensionale lineaire deelruimte V = {V α : α R 2 } van R 3 met v 11 v 12 V = v 21 v 22. v 31 v 32 Voor iedere v V bestaat een α R 2 met α 1 v 11 + α 2 v 12 v = V α = α 1 v 21 + α 2 v 22. α 1 v 31 + α 2 v 32 Een -norm beste benadering van w in V laat zich bepalen met behulp van de minimalisatie van r R onder voorwaarde dat w v r. Nu, met behulp van Definitie 8 en (2.4) is een -norm beste benadering als lineair programma onder ongelijkheidsvoorwaarden 18

Minimaliseer r onder voorwaarden w 1 α 1 v 11 α 2 v 12 r w 1 +α 1 v 11 + α 2 v 12 r w 2 α 1 v 21 α 2 v 22 r w 2 +α 1 v 21 + α 2 v 22 r w 3 α 1 v 31 α 2 v 32 r w 3 +α 1 v 31 + α 2 v 32 r. 2.2 1-norm beste benadering als lineair programma Het is interessant om te onderzoeken of ook het vinden van een 1-norm beste benadering zich laat schrijven als lineair programma. Laat w en V zoals gegeven in sectie 2.1. Dan geldt wederom v = V α voor een zekere α in R en w v 1 r n i=1 w i k j=1 α jv ij r w i k j=1 α jv ij r i voor alle i {1, 2,..., n} r i w i k j=1 α jv ij r i voor alle i {1, 2,..., n} (2.6) met r = n i=1 r i. De oplossingsverzameling die voldoet aan de ongelijkheden in (2.6) is het onbegrensde polyeder Q. α 1 α 2. Q = α k r 1 R k+n r 2. r n r i w i k j=1 α jv ij r i voor alle i {1, 2,..., n} Hierop neemt de lineaire functionaal ψ een minimum aan. α 1 α 2. ψ : R k+n R : α k r 1 r 2. r n n r i (2.7) i=1 19

Volgens Stelling 6 bestaat er een 1-norm beste benadering van w in V. Voor deze v geldt dat r minimaal is onder voorwaarde w v 1 = r. Met behulp van (2.6) laat een 1-norm beste benadering zich nu bepalen met Minimaliseer n j=1 r j onder voorwaarden w j k i=1 α iv ij r j w j + k i=1 α iv ij r j voor alle j {1, 2,..., n}. Dit is een lineair programma onder ongelijkheidsvoorwaarden zoals gedefinieerd in Definitie 3, met ψ als in (2.7), met α 1 v 11 v 12... v 1k 1 0... 0 v 11 v 12... v 1k 1 0... 0 α 2 w 1 v 21 v 22... v 2k 0 1... 0. w 1 A = v 21 v 22... v 2k 0 1... 0, x = α k w 2...... r 1 en b = w 2. v n1 v n2... v nk 0 0... 1 r 2. w n v n1 v n2... v nk 0 0... 1. w n r n Voorbeeld 8. Gegeven zijn w = weergegeven. ( ) 2 6 ( ) 2 en V = Sp{ } zoals in de afbeelding is 1 x 2 w V x 1 Een 1-norm beste benadering in V van w is een element α R zodanig dat w αv 1 w u 1 voor alle u V. ( ) ( ) 2 2 w αv 1 = α 6 1 1 = 2 2α + 6 α. 20

Laat r = r 1 + r 2 met r 1, r 2 0, dan is het lineaire programma onder ongelijkheidsvoorwaarden Minimaliseer r 1 +r 2 onder voorwaarden 2 2α r 1 2 +2α r 1. 6 α r 2 6 +α r 2 2.3 Het naïeve algoritme Sectie 2.1 en 2.2 tonen hoe een p-norm beste benadering zich in het geval n = 1 en n = laat herschrijven tot een lineair programma onder gelijkheidsvoorwaarden. Deze vorm is van toepassing bij het vinden van een optimum van een lineair programma met behulp van het naïeve algoritme. Herinner de algemene vorm van een lineair programma gegeven zoals in Definitie 4. Definieer vervolgens verzameling X, bestaande uit iedere toegelaten basisoplossing van het lineaire programma. X = {x : x B = A 1 B b, B {1, 2,..., n}, det A B 0, B = m} Een element x X waarvoor geldt dat φ( x) φ(x) voor alle x X, is een optimum van het lineaire programma. Voorbeeld 9. Herinner het lineaire programma uit Voorbeeld 8. De scalair α kan negatieve en positieve waarden aannemen, dus voor het lineaire programma laat deze waarde zich herschrijven als α = x 1 x 2 waarbij x 1 x 2 en x 1, x 2 R 0. Samen met x 3 = r 1, x 4 = r 2 en de toegevoegde spelingsvariabelen x 5, x 6, x 7, x 8 0, is het lineaire programma onder gelijkheidsvoorwaarden Minimaliseer x 3 +x 4 onder voorwaarden 2x 1 +2x 2 x 3 +x 5 = 2 2x 1 2x 2 x 3 +x 6 = 2 x 1 +x 2 x 4 +x 7 = 6 x 1 x 2 x 4 +x 8 = 6. Elke verzameling B bevat vier verschillende indices uit {1, 2,..., 8}. Neem bijvoorbeeld B = {3, 4, 6, 8}, dan is A B x B = b de matrixvergelijking 1 0 0 0 x 3 2 1 0 1 0 x 4 0 1 0 0 x 6 = 2 6. 0 1 0 1 x 8 6 21

De oplossing voor deze vergelijking is x B = (2, 6, 4, 12), dus x = (0, 0, 2, 6, 0, 4, 0, 12) is een van de toegelaten basisoplossingen in X. Bijlage 1 bevat de volledige Matlabcode voor het bepalen van alle toegelaten basisoplossingen van het lineaire programma dat een 1-norm beste benadering bepaalt van ( ) een 2 element w R 2 in een eendimendionale lineaire deelruimte V van R n. Laat w = en 6 ( ) 2 V = Sp{ }, dan 1 6 0 1 0 0 0 10 2 0 X = { 0 20, 6 0, 5 0 }. 0 4 0 0 0 0 0 12 10 De doelfunctie φ(x) = x 3 +x 4 neemt zijn minimale waarde aan in toegelaten basisoplossing x = (1, 0, 0, 5, 0, 0, 0, 10) en deze geeft een 1-norm beste benadering van w in V α ( ) 2 = (x 1 1 x 2 ) ( ) 2 = (1 0) 1 ( ) 2 = 1 ( ) 2 En inderdaad, het element V ligt recht onder w = 1 hieronder blijkt deze de 1-norm beste benadering te zijn. ( ) 2. 1 ( ) 2 en ook in de afbeelding 6 x 2 w V x 1 Dit hoofdstuk demonstreert hoe een betrekkelijk simpel probleem een groot lineair programma oplevert. Een efficiëntere methode is gewenst wanneer een groter lineair programma dient opgelost te worden. Het volgende voorbeeld licht de details over de honderddimensionale kubus die in de inleiding is geïntroduceerd nader toe. 22

Voorbeeld 10. Gegeven is het lineaire programma met doelfuntie φ : [0, 1] n R : x φ(x), op de n-dimensionale kubus. Deze heeft randvoorwaarden x i 0 en x i 1 voor alle i {1, 2,..., n}, dus dit lineaire programma heeft 2n ongelijkheden. Het naïeve algoritme bepaalt de waarde van φ in alle toegelaten basisoplossingen van het lineaire programma. 2 n toegelaten basisoplossingen van dit lineaire programma corresponderen met de hoekpunten van de n-kubus. Het naïeve algoritme bepaalt dus de waarde van φ(x) in minstens 2 n punten. Een lineaire toename in het aantal ongelijkheden van het lineaire programma geeft een exponentiële stijging in het aantal punten dat het naïeve algoritme bepaalt. Dit voorbeeld toont de inefficiëntie van het naïeve algoritme en hiermee de behoefte aan een alternatieve methode. Hoofdstuk 3 introduceert het simplexalgoritme, dat efficiënter lijkt omdat dit algoritme de waarde van φ niet altijd in elke toegelaten basisoplossing hoeft te bepalen. 23

3 Het Simplexalgoritme Dit hoofdstuk beschrijft het simplexalgoritme, een vermoedelijk efficiënter algoritme dan het naïeve algoritme. Het simplexalgoritme bepaalt een optimum van een lineair programma zonder dat daarvoor altijd noodzakelijk de waarde van φ in ieder hoekpunt bekend moet zijn. Hoofdstuk 3.1 geeft een gedetailleerde beschrijving van het simplexalgoritme, vervolgens zullen Hoofdstuk 3.2 en Hoofdstuk 3.3 aantonen dat het simplexalgoritme altijd een begin en een einde heeft. 3.1 Het algoritme Laat in dit hoofdstuk een lineair programma de maximalisatie van φ(x) zijn, onder voorwaarden Ax = b en x 0 zoals deze is gegeven in Definitie 4. Herinner de toegelaten basis zoals deze is gegeven in Definitie 6. Het simplexalgoritme maakt gebruik van simplex-tableaus. Elke toegelaten basis B van een lineair programma correspondeert met zo een simplex-tableau. Definitie 11. Gegeven een lineair programma en gegeven een toegelaten basis B van dit lineaire programma. Laat verder Q = A 1 B A N, p = A 1 B b, z 0 = c B A 1 B en r = c N (c B A 1 B A N). Dan is T (B) = x B = p +Qx N z = z 0 +r x N. (3.1) het simplex-tableau dat correspondeert met toegelaten basis B. Voor toegelaten basis B geldt dat de matrix A B regulier is en dus inverteerbaar, het simplex-tableau is dus welgedefinieerd. Het element z in T (B) geeft de te maximaliseren waarde van φ in de toegelaten basisoplossing die correspondeert met toegelaten basis B. Ook is met behulp van deze z direct te zien of de toegelaten basis B correspondeert met een optimum van het lineaire programma. Stelling 7. De toegelaten basisoplossing x behorende bij simplex-tableau T (B) is een optimum wanneer geldt r 0. Bewijs. Laat T (B) het simplex-tableau zijn in (3.1) met toegelaten basisoplossing x en r 0. Dan geldt x N = 0, dus z = z 0. Voor iedere toegelaten oplossing x geldt x N 0 omdat deze wel toegelaten is, maar geen toegelaten basisoplossing. Nu, wegens r 0 volgt z = z 0 + r x N z 0. De waarde van z is maximaal voor toegelaten basisoplossing x, dus x is het optimum van het lineaire programma. 24

Gegeven is een lineair programma met verzameling B, bestaande uit alle toegelaten basissen behorende bij dit lineaire programma. Laat vanaf nu voor B, B in B, T (B) het simplex-tableau zijn met parameters p, q, r, z 0 en T (B ) het simplex-tableau met parameters p, Q, r, z 0. Definitie 12. Definieer de gerichte graaf G = (B, E) zodanig dat B B dan en slechts dan als B een toegelaten basis is van het lineaire programma. De pijl (B, B ) is een element van E B B wanneer er elementen v B en u N bestaan zodanig dat B = (B \ {v}) {u} en z 0 z 0. Voorbeeld 11. Laat G = ({B 1, B 2,..., B 6 }, E) de gerichte graaf zijn van een lineair programma met zes toegelaten basissen. Figuur 3 toont de bijbehorende graaf zodanig dat z > z voor iedere B die rechts staat van B. B 2 B 4 B 6 B 1 B 3 B 5 Figuur 3: Graaf van toegelaten bassisen Herinner dat voor B met B = m = rang(a B ), iedere toegelaten basisoplossing uniek is, met x B = ba 1 B en dat wegens Lemma 5 iedere toegelaten basisoplossing een hoekpunt is. Sectie 3.3 zal behandelen dat meerdere toegelaten basissen kunnen corresponderen met dezelfde toegelaten basisoplossing. Verwar de graaf daarom niet met het polytoop dat het lineaire programma beschrijft. De volgende stellingen en definities tonen aan dat de graaf welgedefinieerd is. Definitie 13. Laat B een toegelaten basis zijn van een lineair programma, die correspondeert met simplex-tableau T (B). Definieer de verzameling indices van niet-basisvariabelen met een positieve coëfficiënt in z als K B = {u N : r u > 0}. Deze niet-basisvariabelen waarvan de index een element is van K B heten de kandidaat basisvariabelen van B. Wanneer K B gelijk is aan de lege verzameling, dan geldt r u 0 voor alle u N. Dan correspondeert B wegens Stelling 7 met een optimum. 25

Definitie 14. Definieer voor elke u K B de afbeelding l B : K B R 0 u min i B { p i q iu : q iu < 0}. (3.2) Laat x een toegelaten basisoplossing zijn bij toegelaten basis B en kies een index u van x uit K B, dan geeft l B,u de maximale waarde die x u kan aannemen, zodanig dat een x toegelaten oplossing blijft. Definieer de deelverzameling indices van basisvariabelen als L B,u = {v : p v q vu = l B (u)}. De basisvariabelen waarvan de index een element is van L B,u heten de kandidaat niet-basisvariabelen van B. Wanneer L B,u gelijk is aan de lege verzameling, dan bestaat er geen limiet voor x u. Het lineaire programma is in dit geval onbegrensd. Definitie 15. Gegeven een lineair programma en gegeven een toegelaten basis B van dit lineaire programma. Een verwisselingsstap (Eng. pivot step) is het proces van het herschrijven van een simplex-tableau T (B) naar een nieuw simplex-tableau T (B ), zodanig dat B = (B \ {v}) {u} met u K B en v L B,u. Iedere verwisselingsstap volgt een pijl in de gerichte graaf G = (B, E). Lemma 1. Laat B een toegelaten basis zijn, dan is elke B = (B \ {v}) {u} met indices u K B en v L B,u ook een toegelaten basis. Bewijs. Laat T (B) het simplex-tableau met bekende parameters zijn, dat correspondeert met toegelaten basis B. Dan geldt dat x v = p v + q uv x u + q vj x j. Na de verwisselingsstap geldt voor deze rij dat x u = p v q uv x v q uv + j N\{u} j N\{u} q vj x j Omdat v L B,u geldt q uv < 0, dus x u = pv q uv 0. Wegens q uv = l B (u) volgt dat substitutie van x u in het gehele simplex-tableau x b 0 behoudt voor alle b B \ {v}. Verder geldt x N = 0 voor N = (N \ {u}) {v}. De variabele x is dus na de verwisselingsstap een toegelaten oplossing. Daarbij bestaat er voor x een verzameling B {1, 2,..., n} zodanig dat B = B = rang(a B ) en x j = 0 voor alle j N. De toegelaten variabele is dus wegens Definitie 6 in het bijzonder een toegelaten basisoplossing, dus B is een toegelaten basis. p v 26

Lemma 2. Laat B een toegelaten basis zijn behorende bij T (B) en laat B = (B\{v}) {u} met u K B en v L B,u de toegelaten basis zijn behorende bij T (B ). Dan geldt z 0 z 0. Bewijs. Er geldt u K B, dus r u > 0. Na de verwisselingsstap geldt x u = l B (u) 0 dus z 0 z 0. Uit Lemma 1 en 2 volgt dat elke pijl in graaf G een toegelaten basis B verbindt met een toegelaten basis B en dat z 0 z 0. De graaf is dus welgedefinieerd. Definitie 16. Een verwisselingsstrategie is een aantal voorwaarden, dat de indices u K B en v L B,u bepaalt van de variabelen die zullen verwisselen. Zo beschrijft de strategie een wandeling W in G, van een toegelaten basis B naar een toegelaten basis die correspondeert met een optimum. Definitie 17. Het doorlopen van een wandeling W door graaf G, met behulp van een gekozen verwisselingsstrategie, is het simplexalgoritme. Voorbeeld 12. Gegeven is de graaf uit Voorbeeld 11 met een schematische weergave van een verwisselingsstrategie. B 2 B 4 B 1 B 6 B 3 Figuur 4. Een wandeling in rood door een deelverzameling toegelaten basissen, richting een optimum. De verwisselingsstrategie bepaalt tijdens elke verwisselingsstap de nieuwe basisvariabele en niet-basisvariabele en legt op deze wijze het pad vast dat het simplexalgoritme via de toegelaten basissen doorloopt, tot een optimum is bereikt. Er is een groot aantal verwisselingsstrategieën bekend met elk een specifiek doel. Zo kan een verwisselingsstrategie het doel hebben om per verwisselingsstap de waarde van z zo sterk mogelijk te laten stijgen, of kan het doel zijn om te verzekeren dat het algoritme met behulp van de geselecteerde strategie altijd eindigt. Voorbeeld 13. Laat T (B) een simplex-tableau zijn. De verwisselingsstrategie van Dantzig bepaalt voor iedere toegelaten basis B de indices zodanig dat B = (B \{v}) {u} met u K B zodanig dat r u r k voor alle k K B. Omdat in deze strategie de nietbasisvariabele met de grootste coëfficiënt in z basisvariabele wordt, stijgt z relatief aan de ophoging van deze variabele het hardst. Laat opnieuw T (B) een simplex-tableau zijn, dan bepaalt de verwisselingsstrategie van Bland de indices zodanig dat B = (B \ {v}) {u} met u K B en v L B,u zodanig B 5 27

dat u < k voor alle k K B \ {u} en v < l voor alle l L B,u \ {v}. Deze strategie selecteert de kleinste indices van de kandidaten en is daardoor niet de snelste strategie. Deze methode blijkt echter wel de oplossing voor een zeldzaam probleem dat Hoofdstuk 3.3 zal behandelen. Naast deze twee voorbeelden is een verzameling alternatieve methodes bekend. Matoušek licht enkele van deze toe in ([1]). Voorbeeld 14. Gegeven is het simplex-tableau T (B) met toegelaten basis B = {9, 10, 11, 12}. T (B) = x 9 = 2 2x 1 +2x 2 x 3 +x 5 x 10 = 2 2x 1 +2x 2 +x 3 x 6 x 11 = 6 x 1 +x 2 x 4 +x 7 x 12 = 6 x 1 +x 2 +x 4 x 8 z = 16 +6x 1 6x 2 x 5 +x 6 x 7 +x 8 Bij dit simplex-tableau hoort K B = {1, 6, 8}. Gebruik makende van de verwisselingsstrategie van Dantzig is de nieuwe basisvariabele x 1, omdat deze de grootste coëfficiënt heeft in z. Er volgt l B (1) = 2 2 = 1 en L B,1 = {9, 10}. Kies zonder verlies van algemeenheid x 9 als nieuwe niet-basisvariabele. De nieuwe toegelaten basis is dan B = (B \ {9}) {1}, deze correpsondeert met simplex-tableau T (B ) = x 1 = 1 +x 2 1 2 x 3 + 1 2 x 5 1 2 x 9 x 10 = 2x 3 x 5 x 6 +x 9 x 11 = 5 + 1 2 x 3 x 4 1 2 x 5 +x 7 + 1 2 x 9 x 12 = 5 + 1 2 x 3 +x 4 1 2 x 5 x 8 + 1 2 x 9 z = 10 3x 3 +2x 5 +x 6 x 7 +x 8 3x 9. Gebruik makende van de verwisselingsstrategie van Bland is de nieuwe basis ook B = (B\ {9}) {1}. Bovenstaand simplex-tableau is dus het resultaat bij beide strategieën gegeven in Voorbeeld 13. Voor simplex-tableaus T (B) en T (B ) geldt z 0 = 10 > 16 = z 0. Het simplexalgoritme biedt afhankelijk van de gekozen verwisselingsstrategie een efficiënte methode voor het doorlopen van de toegelaten basissen van een lineair programma naar een optimum. Nu bekend is hoe het algoritme in zijn werk gaat, is het belangrijk een simplex-tableau te hebben, waarmee het algoritme kan beginnen. In een zeldzaam geval kan het simplexalgoritme vertragen door ontaarding of zelfs hierop vastlopen. De volgende hoofdstukken tonen aan dat beide situaties oplosbaar zijn. 3.2 De eerste toegelaten basisoplossing Definitie 11 beschrijft een simplex-tableau dat correspondeert met een gegeven toegelaten basis, behorende bij een gegeven lineair programma. Voor elk lineair programma waarvoor geldt dat er een toegelaten basis bestaat, is het mogelijk een eerste toegelaten basis te vinden. Vanuit deze basis bepaalt het simplexalgoritme een optimum van het lineaire programma. 28

Definitie 18. Laat de maximalisatie van z = c x, zodanig dat Ax = b en x, b 0, een lineair programma zijn zoals gedefinieerd in Definitie 4. Definieer A = (A I m ) en x = (x 1, x 2,..., x n, x n+1,..., x n+m ). Dan is het lineaire hulpprogramma (Eng. auxiliary linear program) van Ax = b met x 0 en z = c x Maximaliseer ( m i=1 x n+i) onder voorwaarden Ax = b en x 0. Elk optimum x van het lineaire hulpprogramma, waarbij geldt x n+i = 0 voor alle i {1, 2,..., m} levert nu een toegelaten basisoplossing x van het originele lineaire programma. Lemma 3. x is een optimum van een lineair hulpprogramma met x n+i = 0 voor alle i {1, 2,..., m} dan en slechts dan als x een toegelaten basisoplossing is van het originele lineaire programma. Bewijs. Laat het lineaire programma en het lineaire hulpprogramma gegeven zijn zoals in Definitie 18. Gegeven is een optimum x van het lineaire hulpprogramma met x n+i = 0 voor alle i {1, 2,..., m}. Dan bestaat er een B {1, 2,..., n} zodanig dat A B x B = b met A B regulier en x j = 0 voor alle j N. x 0 is dus een toegelaten basisoplossing van het originele lineaire programma. Gegeven is een toegelaten basisoplossing van het originele lineaire programma. Dan geldt x n+i = 0 voor alle i {1, 2,..., m} dus x is een optimum van het lineaire hulpprogramma. Wanneer een optimum van het lineaire hulpprogramma een negatieve waarde geeft voor z, geldt dat het originele lineaire programma geen toegelaten basisoplossing bevat. In het bijzonder is er dan geen optimum voor het originele lineaire programma en is deze onoplosbaar. Voorbeeld 15. Gegeven is het lineaire programma uit Voorbeeld 9. Met behulp van vermenigvuldiging met -1 voor rij 1 en 2, samen met de introductie van spelingsvariabelen x 9, x 10, x 11, x 12, laat het lineaire programma zich schrijven als 2x 1 2x 2 +x 3 x 5 +x 9 = 2 2x 1 2x 2 x 3 +x 6 +x 10 = 2 x 1 x 2 +x 4 x 7 +x 11 = 6 x 1 x 2 x 4 +x 8 +x 12 = 6 Merk op dat x = (0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 6, 6) een toegelaten basisoplossing is van het lineaire hulpprogramma. Laat nu z = x 9 x 10 x 11 x 12 en druk deze uit in nietbasisvariabelen, dan is het simplexalgoritme van de volgende vorm. x 9 = 2 2x 1 +2x 2 x 3 +x 5 x 10 = 2 2x 1 +2x 2 +x 3 x 6 x 11 = 6 x 1 x 2 x 4 +x 7 x 12 = 6 x 1 x 2 +x 4 x 8 z = 16 +6x 1 6x 2 x 5 +x 6 x 7 +x 8. 29

Aannemende dat er een toegelaten basisoplossing bestaat voor het originele lineaire programma, is met behulp van het simplexalgoritme een optimum te vinden voor het lineaire hulpprogramma. Deze levert vervolgens een toegelaten basisoplossing voor het originele lineaire programma. 3.3 Cyclus Tijdens de uitvoering van het simplexalgoritme kan het voorkomen dat een verwisselingsstap mogelijk is tussen twee verschillende toegelaten basissen, die met dezelfde toegelaten basisoplossing corresponderen. Deze situatie is onwenselijk, omdat hierdoor het aantal stappen dat het simplexalgoritme neemt om een optimum te bepalen flink kan toenemen. Definitie 19. Een lineair programma Ax = b met x 0 en z = c x heet ontaard (Eng. degenerate), wanneer een B bestaat zodanig dat x 0 en A B x B = b met B = m > rang(a B ). Omdat B > rang(a B ), heeft een ontaard lineair programma een toegelaten basisoplossing x die correspondeert met minstens twee verschillende toegelaten basissen B, B zodanig dat A B x B = b en A B x B = b. Dit is mogelijk omdat niet alleen de niet-basisvariabelen maar ook minstens een basisvariabele van x gelijk is aan 0. Voor een simplex-tableau T (B) bepaalt de verwisselingsstrategie welke index u van K B en bijbehorende L B,u verwisselen. Het is hierbij mogelijk dat er een u K B bestaat zodanig dat l B (u) = 0. Definitie 20. Laat Ax = b met x 0 en z = c x een ontaard lineair programma waarbij B, B corresponderen met dezelfde toegelaten basis. Een ontaarde verwisselingsstap is een verwisselingsstap van T (B) naar T (B ), waarbij B = (B \ {v}){u} met u K B en v L B,u met l B (u) = 0. Figuur toont wederom de graaf waarbij de waarde van z naar rechts toeneemt. Vanuit B 4 is geen verwisselingsstap mogelijk naar B 2 of B 3 : de verzameling kandidaat basisvariabelen K B bevat alleen de indices u N waarvoor geldt r u > 0. Het is dus niet mogelijk een verwisselingsstap te zetten waarbij de waarde van z daalt. Wel is het mogelijk om van B 4 te verplaatsen naar B 5 en vice versa. Dit zijn ontaarde verwisselingsstappen. Lemma 4 zal aantonen dat de waarde van alle variabelen die wisselen tijdens een ontaarde verwisselingsstap gelijk is aan 0. B 2 B 4 B 1 B 6 B 3 Figuur 5. De rode pijl representeert een ontaarde verwisselingsstap. B 5 30

Gebruik makende van sommige strategieën, is het mogelijk om het simplexalgoritme te doorlopen zodanig dat elke verwisselingsstap ontaard is. Voorbeeld 16 toont dit aan. Het is hierdoor mogelijk zodanig verwisselingsstappen te zetten, dat het algoritme een oneindig aantal simplex-tableaus doorloopt zonder dat de waarde van z stijgt. Het simplexalgoritme bevindt zich dan in een cyclus. Tijdens een cyclus blijft het simplexalgoritme steken op een van de hoekpunten van het polytoop. In ([2]) geeft Chvátal een simplexalgoritme met een cyclus. Voorbeeld 16. Gegeven is het simplex-tableau T (B) met B = {5, 6, 7} en toegelaten basisoplossing x = (0, 0, 0, 0, 0, 0, 1, 0). T (B) = x 5 = 0.5x 1 +5.5x 2 +2.5x 3 9x 4 x 6 = 0.5x 1 +1.5x 2 +0.5x 3 x 4 x 7 = 1 x 1 z = 10x 1 57x 2 9x 3 24x 4 Pas op T (B) het simplexalgoritme toe gebruik makende van de verwisselingsstrategie van Dantzig, waarbij bij meerdere kandidaat niet-basisvariabelen voor x v de variabele met de kleinste index een niet-basisvariabele wordt. Na één verwisselingsstap ontstaat nu het simplex-tableau T (B ) met B = (B \ {5}) {1} met dezelfde toegelaten basisoplossing. T (B ) = x 1 = 11x 2 +5x 3 18x 4 2x 5 x 6 = 4x 2 2x 3 +8x 4 +x 5 x 7 = 1 11x 2 5x 3 +18x 4 +2x 5 z = 53x 2 +41x 3 204x 4 20x 5 Door nog zes maal een verwisselingsstap uit te voeren met dezelfde verwisselingsstrategie, ontstaat het simplex-tableau T (B) waarmee begonnen was: Het simplexalgoritme zit vast in een cyclus. Door in een bepaalde volgorde de verwisselingsstappen van het simplexalgoritme uit te voeren, is het in theorie mogelijk oneindig lang dezelfde toegelaten basisoplossing te behouden. Er is een methode nodig die verzekert dat er geen sprake is van oneindig veel ontaarde verwisselingsstappen. Om de methode die voorkomt dat een simplexalgoritme in een cyclus raakt te kunnen behandelen, is allereerst aanvullende voorkennis benodigd. Definitie 21. De variabelen die tijdens een cyclus in het simplexalgoritme zowel basisvariabele als niet-basisvariabele zijn, heten cyclusvariabelen (Eng. fickle variables). Lemma 4. [1] Laat T (B) en T (B ) twee simplex-tableaus zijn binnen een cyclus van het simplexalgoritme. Dan geldt dat B en B corresponderen met dezelfde toegelaten basisoplossing en dat alle cyclusvariabelen gedurende de gehele cyclus gelijk zijn aan 0. Bewijs. De waarde van z neemt nooit af tijdens het simplexalgoritme, daarom moet hij constant blijven gedurende de hele cyclus. 31