En algoritm för linjära optimeringsproblem
|
|
- Lena Larsson
- för 9 år sedan
- Visningar:
Transkript
1 D-UPPSATS 2005:04 En algoritm för linjära optimeringsproblem PER BERGSTRÖM Luleå tekniska universitet Institutionen för Matematik TEKNISK MAGISTEREXAMEN Matematik Vetenskaplig handledare: Hans Johansson 2005:04 ISSN: ISRN: LTU - DUPP--05/4 - - SE
2 Abstract Denna uppsats behandlar en algoritm som löser linjära optimeringsproblem. Algoritmen bygger på en liknande idé som simplealgoritmen men i denna kan startvärdet även vara en punkt inom tillåtet område eller på randen till detta område. Det behöver inte nödvändigtvis vara en hörnpunkt, vilket simplealgoritmen kräver. Under algoritmens gång kommer iterationsvärdena att ligga på randen till det tillåtna området för att slutligen hamna i ett hörn. Därefter går iterationsvärdena från hörn till hörn tills slutligen optimum har nåtts. Den förväntade tiden det tar för datorn att lösa linjära optimeringsproblem med denna algoritm tycks vara polynomisk med avsee på problemets storlek. Inledningsvis beskrivs vad ett linjärt optimeringsproblem är för någonting och olika former av dessa. Längst bak i denna skrift finns datorimplementering av algoritmen skrivet i MATLAB -kod. Där finns även olika versioner som löser samma typ av problem men skrivet på olika former. Abstract This paper treats an algorithm that solves linear optimization problems. The algorithm is based on a similar idea as the simple method but in this algorithm the start value also might be an inner point or a boundary point at the feasible region. The start value does not necessarily have to be a corner point that the simple algorithm demands. During the progress of the algorithm the iteration points will be on the boundary at the feasible region and finally up in a corner. Afterwards the iteration values goes from corner to corner until finally the optimum is reached. The epected time to solve linear optimization problems with this algorithm seems to be polynomial in time with respect to the size of the problem. In the introduction different forms of linear optimization problems are described. At the of this paper the algorithm is implemented in MATLAB. There are also different versions, which solves the same type of problems but in different forms.
3 Förord Denna uppsats har tillkommit från en idé jag fått när jag funderade på lösningen till linjära optimeringsproblem. Det borde finnas bättre sätt att lösa dessa problem med datorhjälp än vad som görs med simplealgoritmen. Simplealgoritmen är en alldeles utmärkt lösningsmetod för små problem, men dock inte för stora. Simplealgoritmen är naturligtvis inte den a algoritm som finns för lösning av denna typ av problem men säkerligen den mest använda. De s.k. inrepunktsmetoderna är ett samlingsnamn för en annan typ av lösningsmetod. Denna typ av lösningsmetod bygger på liknande sätt som för icke-linjära metoder. Den algoritm som jag skall beskriva i denna uppsats är en metod som bygger på både idén om inrepunktsmetoden men liknar även simplemetoden till stor del. Algoritmen som beskrivs i efterföljande kapitel kan ses som en startalgoritm till simplemetoden, som hittar en hörnpunkt till denne nära optimum. Någon liknande algoritm har jag inte funnit i litteratur på området och därför tyckte jag att det skulle vara möjligt att skriva en uppsats som behandlar denna idé på algoritm. Jag vill även rikta ett stort tack till min handledare Hans Johansson som varit till ovärderlig hjälp för korrekturläsning av uppsatsen och gett många bra tips gällande uppsatsskrivandet.
4 Innehållsförteckning Inledning... 4 Beskrivning av linjärprogrammerings problem... 5 En kortfattad beskrivning av algoritmen... 6 En närmare beskrivning av algoritmen... 8 Algoritmbeskrivning i punktform Problem på annan form Omformning av problem Programkörning En eperimentell jämför Analys med jämförr och slutsatser Slutkommentarer Referens Bilagor Bilaga 1 Bilaga 2 Programkod linearmin.m linearmin2.m linearmin3.m linearmin4.m
5 Inledning Att lösa stora optimeringsproblem med flera tusen variabler var något som för 50 år sedan var praktiskt taget omöjligt. De första räknemaskinerna hade kommit men med dagens mått mätt var dessa etremt långsamma. Att försöka utveckla algoritmer som skulle lösa sådana stora problem var bortkastad tid. Om än man skulle försöka och lyckas skulle det ändå inte ha någon tillämpning i praktiken, eftersom ingen dator skulle kunna beräkna dessa inom rimlig tid. George Dantzig, som hör till pionjärerna inom linjärprogrammeringsproblem och skaparen av simplealgoritmen, utvecklade denna metod för ungefär 50 år sedan. Denna metod var den absolut snabbaste metoden för att lösa linjära optimeringsproblem med ända fram till mitten av 1980-talet. Simplemetoden hade gjort det möjligt att utveckla matematiska modeller över storskaliga problem. Dessa modeller har fått en allt mer viktig roll i samhället i takt med att datorernas kapacitet har ökat drastiskt de senaste decennierna. Problem med hundratusentals variabler är inte något ovanligt med dessa typer av problem. Därför krävs det väldigt effektiva algoritmer och dessutom kraftiga datorer för att lösa dessa. I den följande teten har jag beskrivit en algoritm som löser denna typ av problem. Algoritmen är implementerat i matematikprogrammet MATLAB. Koden finns bifogad efter teten. Linjärprogrammerings problem kommer i teten att förkortas med LP-problem. 4
6 Beskrivning av linjärprogrammerings problem Ett linjärprogrammerings problem (LP-problem) är uppbyggt av en linjär målfunktion som skall optimeras med ett antal linjära bivillkor. Målfunktionen ska antingen maimeras eller minimeras. I denna uppsats kommer ast det senare fallet att beskrivas men ett maimerings problem kan lösas på ett likadant sätt. Hur det går till tas inte upp här utan jag hänvisar då till lämplig litteratur i optimeringslära. Matematiskt ser problemet ut som min T c A b (1.1) där c är en gradientvektor till målfunktionen, A är en matris och b en vektor. Matrisen A och vektorn b utgör problemets bivillkor. är optimeringsvariabeln som skall beräknas. Om problemet har n variabler och m bivillkor har vektorerna c och n element samt vektorn b har m element. Med dessa beteckningar blir A en m n matris. En typ av LP-problem på annan form är min T c A b B = d (1.2) d.v.s. ett liknande problem men med olika formuleringar på randvillkoret. Om problemet har p randvillkor med likhet är B en p n matris och d en kolonnvektor med p element. A, b, c och samma som tidigare. Problemformuleringen (1.2) kan med enkelhet överföras till formuleringen (1.1) genom införandet av s.k. slackvariabler (se lämplig litteratur i optimeringslära), men en speciell lösningsmetod för (1.2) kommer att presenteras i uppsatsens senare del. En ytterligare formulering (och kanske en av de vanligaste) är min T c B = d 0, i = 1,2,..., n i (1.3) Den senast nämnda formuleringen är ett specialfall av (1.2) där A är en n n enhetsmatris och b en nollvektor med n element. 5
7 En kortfattad beskrivning av algoritmen Det allra första som skall beräknas är ett startvärde, d.v.s. ett värde på där alla bivillkor är uppfyllda. När detta startvärde är bestämt skall man utifrån detta stega sig fram genom det tillåtna området till dess att man når optimum. I denna typ av problem (1.1) är optimum den punkt (eller de punkter) på randen till det tillåtna området där målfunktionen antar sitt minsta värde. Frågan är bara hur man skall hitta ett startvärde och hur skall man stega sig fram genom området mot optimum. Olika metoder har olika lösningar på detta. I algoritmen som beskrivs i denna uppsats, startar man i origo. Algoritmen börjar med att gå igenom samtliga bivillkor, ett efter ett. Om bivillkoret är uppfyllt händer ingenting, men om det inte är det går man från befintlig position vinkelrät mot bivillkoret så att bivillkoret är uppfyllt med likhet. Den geometriska tolkningen är att man går från tidigare punkt längs en linje parallellt med hyperplanets normal till dess att man kommit fram till hyperplanet. Detta gör man med alla bivillkor. På så sätt har man gått från origo till en punkt närmare det tillåtna området. Skulle origo ligga i det tillåtna området är alla bivillkor uppfyllda från början och inga steg har gjorts. I detta fall är då den första delen av algoritmen avklarad. Antalet steg som gjorts är beroe dels av antalet bivillkor men också på kompleiteten hos det tillåtna området. I nästa skede av sökandet av tillåtet startvärdet startar man med en punkt mitt mellan origo och den tidigare erhållna punkten. Utifrån denna nya punkt går algoritmen igenom samma procedur som tidigare. Vid uppfyllda bivillkor händer ingenting och vid icke uppfyllda bivillkor går man från tidigare värde vinkelrät mot bivillkoret till dess att bivillkoret är uppfyllt med likhet. Samtliga bivillkor undersöks. Om detta värde ligger inom tillåtet område avslutas första delen av algoritmen. Sökandet efter startvärde fortsätter med att en ny punkt väljs. Denna punkt väljs så att den ligger på en rät linje mellan origo och den första erhållna punkten. Avståndet till origo sätts till 1.5 gånger avståndet mellan origo och den första erhållna punkten. Därefter låter man punkten vandra mot tillåtet område på samma sätt som tidigare genom att gå igenom alla bivillkor och gå till icke uppfyllda bivillkor som tidigare (se figur 2.1 för illustration). Att avstånden är valt till 0.5 respektive 1.5 är för att få en spridning av värdena och dessa kommer att gå mot det tillåtna området från två olika håll vilket sedan utnyttjas i nästa steg. o o P1 P P2 P3 Tillåtet område Figur 2.1 Illustration över startalgoritm Därefter väljs en ny punkt som är två ggr. medelvärdet av de två tidigare framhoppade värdena minus det första erhållna värdet (se punkt P3 i fig. 2.1). På samma sätt med det värdet 6
8 går man mot det tillåtna området. Fortsättningsvis väljs punkter som medelvärdet av de två senaste erhållna värden. Skulle ett värde ligga i det tillåtna området avslutas första delen av algoritmen. Denna procedur körs ett antal gånger vilket beror på antalet steg som gjordes efter första vandringen från origo. Skulle ett tillåtet värde fortfarande inte vara hittat fortsätter sökandet genom att gå igenom bivillkoren ett efter ett och gå vinkelrät mot dem som inte är uppfyllda. Skulle punkterna råka komma i kläm mellan två eller flera villkor (etrem långsam konvergens mot tillåtet område) tar algoritmen han om det. Algoritmen gör så att den långsamma konvergensen passeras genom att värdet kommer till en punkt där alla dessa bivillkor är uppfyllda med likhet. Då är man mest troligt framme vid tillåtet område. Detta testas naturligtvis, och skulle det inte vara så att värdet ligger inom tillåtet område fortsätter sökandet som tidigare. Om man är framme avbryts första delen av algoritmen och nästa del tar vid. Skulle ett värde som erhållits under algoritmens gång ligga i det tillåtna området avbryts algoritmen och levererar det värde till huvudalgoritmen. Långsam konvergens Tillåtet område Figur 2.2 Illustration av långsam konvergens. När första delen av algoritmen är avklarad, då har man ett startvärde och sökandet av optimum kan börja. Om startvärdet är en inre punkt i det tillåtna området, d.v.s. om inget bivillkor är uppfyllt med likhet, kommer nästa värde att väljas från det tidigare värdet med ett steg i den negativa gradientens riktning, med längden anpassad så att stegets längd blir så stort som möjligt samtidigt som den nya punkten skall befinna sig i det tillåtna området. Det nya värdet är då ett bättre värde (målfunktionen har ett mindre värde där än i startpunkten) som ligger på kanten till området, d.v.s. alla bivillkor är uppfyllda men ett eller flera är uppfyllda med likhet. Nästa steg blir att komma ännu närmare optimum. Riktningen på steget väljs så att vid nästa punkt antar målfunktionen ett ännu mindre värde. Stegriktningen är anpassad så att den pekar ut en bit ut från kanten. Att den väljs så beror på att då kan vissa småsteg undvikas jämfört med om man hade gått utmed kanten. Längden på steget är anpassat så att nästa värde återigen hamnar på kanten. Två sådana steg tar algoritmen på det sättet. Sedan väljs riktningen på ett något annat sätt. Istället för att riktningen pekar en bit ut från området så kommer riktningen att väljas längs kanten, dvs. i den riktning där målfunktionen avtar mest och samtidigt ligger inom det tillåtna området. Steglängden väljs på samma sätt här, dvs. så långt att det nya värdet precis ligger inom det tillåtna området. Antalet bivillkor med likhet kommer då att öka i varje steg, med vissa undantag då antalet är oförändrat. Tillslut har vi nått en punkt där n stycken bivillkor är uppfyllda med likhet. När det är gjort övergår algoritmen att köra en simpleliknande metod. Med det menas att nästa punkt också blir ett hörn (n bivillkor uppfyllda med likhet). Nästkommande hörn väljs så att det är ett grannhörn med minsta värde. Tillslut kommer man fram till optimum. Värdena kommer i varje steg att konvergera mot optimum. För varje steg kommer målfunktionen att anta mindre och mindre värden. 7
9 En närmare beskrivning av algoritmen Hitta ett startvärde En första gissning som startvärde är då alla värdena i är 0, d.v.s. 0 = 0. Detta värde behöver inte vara ett tillåtet värde. För att finna ett tillåtet värde börjar man med att gå igenom samtliga m bivillkor. Här betecknas den i:te raden i A med A och det i:te elementet i b med b i. Algoritmen börjar med att testa första bivillkoret. Om det är uppfyllt, dvs. A1 (0)0 b1, händer ingenting, och programmet fortsätter direkt till den andra raden med (1)0 = (0)0. Är bivillkoret inte uppfyllt, dvs. A1 (0)0 < b1, kommer ett nytt värde av att sättas. Det etra indeet inom parentes betecknar värdet på 0 efter test av motsvarade bivillkor. Det nya värdet av kommer att sättas så att det aktuella bivillkoret blir uppfyllt med likhet och blir enligt (3.1). i b A A 1 1 (0)0 (1)0 = (0)0 + T 1 A1A1 (3.1) Bivillkoret för det nya värdet kommer att vara uppfyllt med likhet. Den geometriska tolkningen av hoppet från (0)0 till (1)0 motsvaras av att (1)0 kommer att ligga på en linje från (0)0 längs normalen till hyperplanet som bildar bivillkoret och det nya värdet ligger i hyperplanet. En härledning av den generella formeln för (3.1), dvs. (3.2), finns med i bilaga 1A. På motsvarande sätt gås alla bivillkor igenom. När bivillkoret är uppfyllt går man direkt till nästa bivillkor och är de ej uppfyllda för aktuellt värde på så väljs ett nytt värde på som b A A i i ( i 1)0 ( i)0 = ( i 1)0 + T i AiAi (3.2) för det i:te bivillkoret. När samtliga m bivillkor har testats kommer ( m)0 att ligga närmare det tillåtna området än vad (0)0 gjort. ( )0 kommer i fortsättningen att betecknas som 0. För det mer generella fallet betecknas ( m) k med m k på motsvarande sätt. Det kan vara så att 0 är ett tillåtet värde med behöver inte vara det. Om det var så att alla bivillkor var uppfyllda är det ju uppenbart att det ursprungliga värdet låg i det tillåtna området och då är det klart att gå vidare till nästa del av algoritmen. Skulle det nu vara så att det fanns icke uppfyllda bivillkor så fortsätter sökandet efter ett tillåtet värde. Det gamla värdet på 0 sparas undan och en ny variabel, 1 sätts till 0.5 0, dvs. mittpunkten mellan 0 och origo. Därefter beräknas 1 på motsvarande sätt som för 0. 8
10 Skulle nu 1 från början vara ett tillåtet värde avbryts algoritmen. Därefter definieras ytterligare en variabel, 2 som sätts till Även för denna variabel beräknas Varför 1 och 2 är satt till respektive är för att få en spridning av värdena vilket utnyttjas i valet av nästa, nämligen 3. Denna sätts till och det för bättre statistiska egenskaper då man kan utnyttja att 1 respektive 2 konvergerar mot området från två olika håll (se figur 3.1 för illustration av metod). Mer detaljerat om härledningen finns i bilaga 1B. 3 bildas utifrån 3. 4 sätts till medelvärdet av 0 och 3, och 4 beräknas. 2. o o Tillåtet område Fortsättningsvis sätts j+ 1 till medelvärdet av Figur 3.1 Illustration över startalgoritm. j och j 1. Inledningen till algoritmen kan sammanfattas enligt (3.3). = 0 (start i origo) 0 1 = = = = (3.3) 2 j + j 1 j+ 1 = 2 4 j j j j Fortsätt tills ma, värde eller då j ma Ν är ett tillåtet j = jma Skulle ett -värde hamna inom tillåtet område avslutas sökningen av startvärde. Man kan inte köra denna sökmetod i all evighet. Det finns specialfall där lösningen konvergerar så långsamt att en annan sökmetod måste användas. Det maimala antalet iterationer, j ma, med denna 9
11 metod har jag satt till [{antalet icke uppfyllda bivillkor vid stegningen av 0 till 0 }/2]+1. Detta antal är inget väl beräknat tal utan en grund för uppfattningen. Antalet icke uppfyllda bivillkor vid stegningen av 0 till 0 är ett visst mått på kompleiteten och fördelningen av bivillkor utifrån origo. Om maimala antalet iterationer uppnås beräknas startvärdet på ett annat sätt. Givet nu att -värdet inte är ett tillåtet värde. Då sätts en variabel till och jma bildas. Därefter sätts till det nya, och ännu en gång beräknas utifrån. Detta görs om och om igen. Den stora skillnaden nu är att algoritmen tar reda på om det är samma bivillkor som gång på gång återkommer. En kortfattad beskrivning över detta förfaringssätt finns i (3.4). = jma Repetera så länge ej är uppfyllt eller samma icke uppfyllda bivillkor återkommer = Slut repetera (3.4) Ett bevis för att (3.4) konvergerar mot det tillåtna området finns i bilaga 1C. Eventuellt konvergerar väldigt långsamt mot det tillåtna området och då måste en annan taktik användas. Långsam konvergens Tillåtet område Figur 3.2 Illustration av långsam konvergens. Detta kan tolkas som att är inklämt mellan några bivillkor och därför är konvergensen mot det tillåtna området väldigt långsam (se fig. 3.2). Skulle det ske så kan inte (3.4) användas utan (3.5) måste tas till. = + A A A b A (3.5) T T 1 inde ( inde inde ) ( inde inde ) Här betecknas A inde som A med de bivillkor som ej är uppfyllda och återkommer gång på gång och b inde är en vektor med motsvarande högerled. En härledning av (3.5) finns med i bilaga 1D. Vid detta skede ligger mest troligt i det tillåtna området vilket också testas. Skulle det nu vara så att ett tillåtet värde är funnet startar nästa del i algoritmen, nämligen att hitta optimum. Om inte ligger inom tillåtet område fortsätter algoritmen med (3.4) fast nu med som start istället för. jma 10
12 Hitta optimum Nu när ett tillåtet värde på är känt kan jakten på det minsta värdet inom tillåtet område börja. Först undersöks om något bivillkor är uppfyllt med likhet. Om inget bivillkor är uppfyllt med likhet för startvärdet börjar algoritmen med att från startpunkten gå i den negativa gradientens riktning, d.v.s. i riktningen c. Steglängden är anpassad så att längden är så stor som möjligt samtidigt som det nya värdet på också ligger inom tillåtet område. Detta kan skrivas som (3.6). = tc (3.6) Här är t>0 och t skall väljas så stor som möjligt samtidigt som det nya skall ligga inom tillåtet område. För att bestämma t beräknas t i för varje rad i enligt (3.7). t i b i = A Aic i (3.7) Det minsta av dessa t i sätts till t givet att t i är större än 0. En närmare förklaring till uttryck (3.7) finns med i bilaga 2A. I detta skede ligger på kanten till det tillåtna området, dvs. åtminstone ett bivillkor är uppfyllt med likhet. För att komma ännu närmare optimum krävs att vi måste gå ännu fler steg. Givet nu att vi står vid kanten på området och skall hitta en ny stegriktning. Denna stegriktning skall ha egenskapen att det nya värdet på fortfarande skall ligga inom tillåtet område och utifrån det skall målfunktionen minska som mest i den riktningen. Först och främst testas om skalärprodukten mellan normalen till aktuella bivillkor och gradientvektorn c är alla mindre än noll. Skulle det vara så betyder det alla aktuella bivillkor begränsar målfunktionens värde uppåt, men ej nedåt. Då kan riktningen väljas till c, dvs. i den negativa gradientens riktning. Skulle det nu emellertid vara så att någon skalärprodukt är större än noll kan inte riktningen väljas till c utan annan riktning måste väljas. Om antalet dimensioner är ett, dvs. n=1 är problemet enkelt. Antingen väljs riktningen c eller så är vi framme vid optimum. Är antalet bivillkor med likhet lika med ett så projiceras den negativa gradienten, dvs. c till det aktuella bivillkoret (givet att n>1). Om riktningen betecknas med d kan det skrivas som (3.8). A c d A c i T = T i Ai Ai (3.8) Om nu antalet bivillkor i punkten är större än ett (och mindre än n) bestäms riktningen på ett annat sätt. Om A betecknar en matris med normerade bivillkor med likhet i aktuell punkt punkt så beräknas först och främst nollrummet till denna. Sedan beräknas en minstakvadratlösning mellan c och Null( A punkt ). Om minstakvadratlösningen benämns s kommer riktningen d att vara Null( A ) s, eller matematiskt uttryckt punkt min s Null( A ) s c punkt d = Null( A ) s punkt 2 (3.9) 11
13 Istället för att beräkna nollrummet till A punkt kan man projicera den negativa gradienten på kolumnrummet till A och därefter bilda en vektor cˆ c, där ĉ betecknar projektionen. Denna metod är snabbare men ger mindre precision (avrundningsfel kan göra sig gällande), och därför används båda metoderna vid olika tillfällen. När antalet uppfyllda bivillkor med likhet är stort i förhållande till antalet dimensioner används nollrumsmetoden och i övriga fall används projektionsmetoden. Skulle antalet bivillkor med likhet vara lika med n, d.v.s. lika många som det finns variabler i problemet, och Rank( A ) = n, är punkten en hörpunkt. Då beräknas sökriktning på samma punkt sätt som i simplemetoden (se litteratur om simplemetoden). I den riktningen ligger nästa hörn som den ska gå till. Om antalet bivillkor är större än n, d.v.s. punkten är ett degenererat hörn, hittar programmet den brantaste tillåtna riktning genom att lösa ett litet optimeringsproblem (3.10). min T c d d d A 2 punkt k, k > 0 d 0 (3.10) A punkt består av rader i A som är uppfyllda med likhet i den degenererade hörnpunkten. k är en godtycklig konstant större än noll, d är sökriktningen som skall beräknas. Egentligen löses inte (3.10) utan det linjära problemet (3.11). min T c d d T c d 1 A d 0 punkt (3.11) Detta problem är inte samma som (3.10) men det är mer lättlöst. Detta problem har oändligt många lösningar och för alla dessa är skalärprodukten c T d < 0. Problem (3.11) löses med MATLAB s linprog. linearmin kan inte användas här för då får man en oändlig rekursiv slinga. linprog s lösning till (3.11) tycks vara samma som lösningen till (3.10). Det kan bero på att lösningen till (3.10) är det tillåtna hörn som ligger närmas origo (bortsett från origo själv) i problem (3.11). I första steget från en inre punkt och ut till kanten väljs stegriktning som ovan beskrivet och steglängden är anpassad så att den är maimal samtidigt som nästa punkt blir kvar inom området. I steg 2 och 3 väljs riktningen något annorlunda. Den baseras dels på brantaste tillåtna riktningen som beskrevs lite tidigare och även på c. Den är anpassad så att med ett steg i den riktningen kan man undvika många små och ineffektiva steg eftersom denna riktning är en bit ut från kanten. Denna metod är bara effektiv då man är långt från optimum och därför tas ast två sådana hopp. För en mer detaljerad beskrivning av valet till denna riktning hänvisas till bilaga 2B. I fortsättningen tas alla hopp i brantaste tillåtna riktningen. I varje steg kommer antalet bivillkor med likhet att öka (det finns undantag då antalet bivillkor med likhet är oförändrad). Tillslut har ett hörn nåtts, dvs. n st. bivillkor är uppfyllda med likhet i den aktuella punkten. I 12
14 det skedet övergår algoritmen till simplealgoritmen och fortsättningsvis går den från hörn till hörn tills den nått optimum. Optimum behöver inte nödvändigtvis ligga i ett hörn så algoritmen kan avbrytas tidigare om det inte går att hitta ett bättre värde. Det finns fall där optimum inte är i en a punkt utan kan ligga mitt på randen. Ett eempel på detta är då ett bivillkor har normal som är parallell med gradientvektorn. 13
15 Algoritmbeskrivning i punktform Hitta startvärde Starta i origo. Gå igenom samtliga bivillkor, ett efter ett, och gå vinkelrät mot dem som inte är uppfyllda. Gör på samma sätt och upprepa med olika startvärden. Fortsätt med stegandet. Om samma bivillkor gång på gång återkommer så gå direkt till en punkt där alla dessa är uppfyllda. Hitta optimum Om startpunkten befinner sig inom området, gå då i negativa gradientens riktning till kanten. Välj sökriktning snett ut från kanten mot optimum. Upprepa två gånger. Fortsätt med stegandet men i riktning i brantaste tillåtna lutning. När n st. bivillkor är uppfyllda med likhet. Fortsätt då med att välja sökriktning och steglängd på samma sätt som i simplealgortimen. 14
16 Problem på annan form Tidigare har denna uppsats behandlat ett LP-problem på formen (1.1). min T c A b (5.1) Alla problem behöver inte naturligt före komma på den formen. En annan form av ett LPproblem är (1.2). min T c A b B = d (5.2) I denna formulering har vi även ett antal bivillkor med likhetstecken. Att skriva om formulering (5.2) till (5.1) är inga problem genom införandet av s.k. slackvariabler. Mer om slackvariabler kan läsas i lämplig linjäroptimerings litteratur men enkelt beskrivet går det till så att problemet tillförs fler variabler. Det är enkelt att göra men vid stora problem kan det medföra betydligt fler flyttalsberäkningar och därmed längre problemlösningstid. Därför följer här ett sätt att överföra formulering (5.2) till (5.1) som sedan kan lösas med den tidigare beskrivna LP-algoritmen. Även denna omskrivning finns med som MATLAB -kod (linearmin2.m) i bilaga. Ytterligare en formulering av ett LP-optimerings problem är (1.3). min T c B = d 0, i = 1,2,..., n i (5.3) Endast den färdiga algoritmen för problem (5.3) kommer att presenteras här. Detta som MATLAB -kod (linearmin3.m) i näst sista bilagan. Det kan konstateras att (5.3) är ett specialfall av formulering (5.2) med A som en enhetsmatris och b som en nollvektor. Ett specialfall av formulering (5.1) uppstår när alla bivillkor tangerar det tillåtna området. Om det gör det måste man på förhand veta, men då kan man utnyttja att bivillkor med normalvektor som är mest parallell med gradienten är uppfylld med likhet. Det gör att detta bivillkor kan substitueras enligt formulering (5.2). En sådan beräkningsalgoritm finns som MATLAB kod (linearmin4.m) i bilagan längst bak. Då kan beräkningarna bli snabbare än om man direkt använder sig av formulering (5.1) utan antagande. Nackdelen är just det att man måste veta om det gäller att alla bivillkor tangerar tillåtet område. 15
17 Omformning av problem Vad man kan utnyttja i formen (1.2) är att man vet att optimallösningen måste ligga i hyperplanen som spänns upp av bivillkoren med likhet, under antagandet att det eisterar åtminstone ett tillåtet värde. Just det kan utnyttjas genom att då vet man ett samband mellan variablerna. Ett antal variabler kan skrivas som en konstant plus en linjärkombination av resten av variablerna. Att man kan göra denna omformulering bygger på att minimera f( )+{godtycklig konstant} är samma sak som att minimera f( ) med avsee på förstås. En kortfattad beskrivning om vad som händer i linearmin2.m följer i nästa stycke. Ett efter ett av bivillkoren med likhet gås igenom. I varje bivillkor väljs den variabel med till beloppet största koefficient som får uttryckas som en konstant (högerledet i bivillkoret) plus en linjärkombination av de övriga variablerna. Att den till beloppet största koefficient väljs är för att slippa division med tal nära noll. Denna variabel substitueras till resten av problemet. Alla övriga bivillkor skrivs om och så även målfunktionen. På detta sätt minskar antalet variabler i problemet med ett för varje bivillkor med likhet. Är antalet bivillkor med likhet lika med p så minskar antalet variabler i problemet med p. När alla bivillkor gåtts igenom och antalet variabler reducerats har formuleringen i (1.2) omformulerats till (1.1), och kan därmed lösas med den tidigare väl beskrivna algoritmen. 16
18 Programkörning Programmet har gjorts i MATLAB, med filnamnet linearmin.m. Genom att anropa MATLAB s help-funktion fås följande tet fram. >> help linearmin Written for MATLAB version 6.0 The program is a solver to the linear minimize problem of the type min() c' A>=b where A is a m n matri, b is a m 1 vector and c is the gradient vector of size n 1 (column vector). function [,inde,bol]=linearmin(a,b,c,tol) tol is the tolerance that linearmin can accept. A big tolerance will faster up the algorithm. For the most precisely calculation then put tol to 0. inde is a row vector with inde of constraints with equality. bol=1 if there eist a solution. If no solution eist then bol=0. Written by Per Bergström Där kan man läsa hur programmet anropas och vad som returneras. Om problemet saknar lösning är variabeln bol =0 (bol står för Boolean). Jag har satt in en etra invariabel tol, för att om man bara är intresserad av ett ungefärligt minimivärde snabbt kan tol sättas till någonting större än 0. Programmet returnerar då lösningen snabbare än vid beräkning av det eakta minimivärdet. Ett större värde på tol innebär att lösningen returneras snabbare men med en approimation på optima. I litteraturen [1] Linear and Nonlinear Programming, Nash and Sofer, finns ett linjärt minimeringsproblem enligt följande. min z = , (7.1a) Problem (7.1a) kan formuleras till min T z = c A b (7.1b) 17
19 där c = ( ), A = 1 0, 2 b = Problem (7.1b) kan lösas med hjälp av linearmin.m. A, b och c skrivs in i MATLAB och programmet linearmin.m anropas. tol sätts till 0 för beräkning av absoluta optimum. >> [,inde,bol]=linearmin(a,b,c,0) = 3 6 inde = 2 3 bol = 1 Det betyder att minsta funktionsvärde finns i 1 =3 och 2 =6. Bivillkor 2 och 3 är uppfyllda med likhet i etrempunkten och programmet lyckades hitta en lösning. Problemet i (7.1) är ett mycket litet problem i LP-sammanhang. I praktiken är flera tusen variabler inget ovanligt. Jag har gjort ett simuleringsprogram som tar fram LP-problem för ett givet antal variabler. I följande problemeempel är antalet variabler 500 och antalet bivillkor Hur programmet avancerar i varje iteration visas i figur 7.1. Även var algoritmens olika sökmetoder används finns markerat vid grafen. 18
20 Figur 7.1 Kurva för funktionsvärde vid iteration. Till en början minskar funktionsvärdet snabbt för att senare plana ut då iterationspunkten närmar sig optimum. Här behövdes ca.1300 iterationer för att komma till optimum. Detta är ett bra eempel då det kan vara bra att sätta tol >0. Antalet iterationer skulle kunna halveras och ändå skulle det approimativa optimala värdet ligga mycket nära det absoluta optimala värdet. Redan efter 500 iterationer, d.v.s. ungefär då simplealgoritmen tar över, ligger funktionsvärdet nära det optimala funktionsvärdet. Tiden det tar för att hitta ett startvärde är beroe på hur det tillåtna området är uppbyggt och hur långt från origo det ligger. Om området ligger nära origo eller origo till och med är ett tillåtet värde kommer denna del av beräkningarna gå mycket snabbt. Om däremot området ligger långt från origo kommer beräkningarna för sökandet av startvärde att vara en något större del av totala beräkningarna. Plotten i figur 7.2 visar hur steglängd beror på vilket steg, när tillåtet område ligger en bra bit från origo. Med steglängd menas den geometriska länden av skillnaden mellan två på varandra följande -värden. Det kan skrivas som. 1 p+ Kurvan visar tydligt hur steglängden ökar i början för att slutligen nå sitt mavärde och sedan drastiskt minska då värdet närmar sig tillåtet område. Sedan följer en svans då lösningen är mycket nära tillåtet område men man har då långsam konvergens. Kurvans utsee tyder på att konvergensen mot tillåtet område är geometrisk efter ett visst antal steg ( i detta fall ungefär 60). p 2 19
21 Figur 7.2 Kurva för beskrivning till sökandet av startvärde. y-ael steglängd, -ael steg. Hur många gånger alla bivillkor måste testas beror i stor utsträckning på hur många variabler problemet har. Jag gjorde några tester då antalet variabler var 10 (n=10) och då behövdes mellan 7 och 25 tester på alla bivillkor. För n=20 behövdes mellan 5 och 40 tester. Likaså för n=30. När n=40 behövdes bara mellan 5 och 15 tester. För n>40 minskade antalet tester som behövdes göra och då n=100 behövdes bara 5 eller 6 tester. För alla dessa tester ligger det tillåtna området på ungefär samma geografiska avstånd från origo. Resultatet tyder på att för små problem, d.v.s. problem med färre variabler än 40, är algoritmen för sökandet av startvärde ganska ineffektiv. Däremot är den effektiv för stora problem då det bara behövdes ett fåtal tester. När det tillåtna området ligger närmare origo går sökandet efter tillåtet startvärde snabbare. 20
22 En eperimentell jämför Vad som är av stort intresse när man löser stora LP-problem (och även andra problem) är att beräkningarna går snabbt och att resultatet är korrekt. I detta kapitel görs en eperimentell jämför mellan algoritmen beskriven i denna uppsats (linearmin) och en algoritm som finns i MATLAB, med namn linprog. I denna jämför används MATLAB Version Release 12. linprog finns i MATLAB s Optimization Toolbo. Om linprog kan läsas i MATLAB s hjälpavsnitt. Där får man reda på hur programmet används och man hittar följande hjälptet. = linprog(f,a,b) solves min f' such that A <= b. Programmet använder sig av typen A b. Om man har ett problem där bivillkoren är av typen A b kan man multiplicera VL och HL med 1. Då får man A b, och därmed kan man använda linprog för att lösa samma problem (problemform 1.1) som man löser med linearmin. min T c A b I hjälpavsnittet om linprog berättas att programmet använder sig av olika metoder beroe på problemets storlek. För medelstora problem används en simpleliknade metod och för stora problem används en primaldual inrepunkt metod (se hjälpavsnitt i MATLAB ). I denna jämför kommer simulerade problem att användas. I första omgången kommer problem med tillåtet område nära origo att användas. I den andra omgången är problemen mer komplea då det tillåtna området ligger långt från origo. Antalet bivillkor är satt till tio gånger antalet variabler, d.v.s. m=10n. Här jämförs tiden för beräkningen för de två algoritmerna. I jämförn används samma problem till de två programmen och ett antal olika problem av varierande storlek jämförs. Datorn som användes till försöken har en AMD-processor med klockfrekvensen 1000MHz. 21
23 n linearmin t 1 (s) linprog (MATLAB ) t 2 (s) tidsjämför t 2 /t Inf Inf ) Det returnerade -värdet ligger utanför tillåtet område Tabell 8.1Resultat av jämför av problem med tillåtet område nära origo I tabell 8.1 redovisas resultatet av tidsjämförrna mellan olika problem. Samma problem på en rad, n anger storleken. I tabellen visas bland annat två tidsjämförr som är Inf (oändligt stora). Så är naturligtvis inte fallet utan MATLAB s tic/toc funktion (som mäter tider) sparar tiden med bara två decimaler, vilket gör att man får stora avrundningsfel med noll i nämnaren. Utan att göra en alltför noggrann analys tycks kvoten t 2 /t 1 vara proportionell mot n. Därför kan man dra den slutsatsen att om antalet variabler är n tar det ungefär n gånger så lång tid att beräkna problemet med MATLAB s linprog jämfört med linearmin. Denna regel gäller åtminstone för n 50. För större n blir kvoten mindre men resultatet från MATLAB s linprog är inte tillförlitligt och därför saknar tidsjämförn värde. I tabell 8.1 är vissa tider, t 2 (beräkningstiden för MATLAB s linprog) och tidskvoter t 2 /t 1 markerade med för att deras returnerade -värde ligger utanför tillåtet område. Som ett mått på hur långt från området det ligger anges det minsta värdet i vektorn A b. Ligger -värdet inom tillåtet området skall det minsta värdet i vektorn vara större eller lika med noll. Ligger det utanför det tillåtna området kommer det att vara negativt. I fallen då tiderna inte är markerade med ligger det minsta värdet i vektorn A b på storleksordningen medan den för mätningarna markerade med ligger mellan 2 och 90, vilket är klart utanför det tillåtna området. För problem där det tillåtna området ligger långt från origo har jag också gjort mätningar och jämförr på samma sätt. Resultatet av detta visas i tabell
24 n linearmin t 1 (s) linprog (MATLAB ) t 2 (s) tidsjämför t 2 /t Inf ) Det returnerade -värdet ligger utanför tillåtet område Tabell 8.2Resultat av jämför av problem med tillåtet område långt från origo Även i detta fall tycks kvoten t 2 /t 1 vara ungefär proportionell mot n, om än inte lika tydligt som i tidigare fall. Därför kan man även här dra den slutsatsen att om antalet variabler är n tar det ungefär n gånger så lång tid att beräkna problemet med MATLAB s linprog jämfört med linearmin. Regeln gäller inte för n > 60 men då är resultatet från linprog inte tillförlitlig och tidsjämförn saknar relevans. På samma sätt här anger markeringen att returnerat -värde ligger utanför tillåtet område. Det minsta värdet i vektorn A b varierar i detta fall mellan 2 och 600. I denna mätning har vi betydligt större variation på felet. Totalt sett verkar linearmin vara snabbare än linprog för denna typ av problem. linprog är dessutom kompilerad vilket inte linearmin är. En möjlig orsak till den långsammare beräkningstiden är att linprog omvandlar problemet till ett problem med likhet i bivillkoren. Det kan medföra att linprog gör problemet mycket större än vad det ursprungligen var vilket gör att det tar längre tid att lösa. Däremot var skillnaden inte full lika stor för problem med tillåtet område långt från origo. Av testerna att döma verkar linprog vara oberoe av var det tillåtna området är vilket inte linearmin är. Att linearmin är beroe av var tillåtet område ligger kan antas vara självklart. Om området ligger långt från origo måste många steg i algoritmens inledning göras. För problem med fler variabler än 50 börjar linprog att krångla. Felmeddelanden visas och returnerat -värde ligger utanför det tillåtna området. Därför verkar inte linprog vara en tillförlitlig problemlösare för storskaliga problem. 23
25 Problemen i jämförn har varit simulerade från ett simuleringsprogram. Dessa problem är relativt lättlösta för att degenererande lösningar knappast eisterar. Simuleringen har gjorts genom att först simulera en punkt som kommer att utgöra en ungefärlig mittpunkt. Denna punkt kan väljas såväl nära som långt från origo. Sedan väljs slumpmässiga riktningar och avstånd från denna mittpunkt dit de olika bivillkoren hamnar. Gradientvektorn är en vektor med slumpmässigt vald riktning. De tidigare jämförda problemen var av formulering (1.1). För problem av typen (1.2) d.v.s. min T c A b B = d blir resultatet troligtvis något annorlunda. Något sådant simulerings program har jag ej gjort men i MATLAB finns ett testproblem av denna typ. Det får man genom att skriva load sc50b i kommandofönstret. Det problem som finns där kan med enkelhet omformuleras till formulering (1.2). Detta problem beräknas med de två olika algoritmerna linprog och linearmin2. Här blir resultatet annorlunda. Med detta problem tar det ungefär 4 ggr längre tid med linearmin2 jämfört med linprog. För just detta problem är linprog bättre att använda. Ett annat testproblem på liknande form som (1.2) finns också i MATLAB. Det får man om man skriver load densecolumns i kommandofönstret. Det kan med enkelhet överföras till formulering (1.2). I detta problem är linearmin2 mindre framgångsrikt. Omformuleringen till problemform (1.1) som görs inledningsvis i linearmin2 tar mycket lång tid av för mig okänd anledning. Programmet måste göra denna omformulering för att linearmin bara klarar av formulering av typ (1.1). 24
26 Analys med jämförr och slutsatser Den stora skillnaden mellan linearmin-algoritmen (algoritmen som är beskriven i denna uppsats) och simplealgoritmen är att simplealgoritmen bara tillåts gå från hörn till hörn. I linearmin-algoritmen tillåts värdena att vara såväl inuti det tillåta området och även på randen till det tillåtna området. Detta kan göra att det är lättare att hitta ett starvärde med linearminalgoritmen. Den stora likheten med simplealgoritmen är att efter ett visst antal iterationer, drygt vad antalet obekanta är, kommer man till ett hörn. I det läget övergår algoritmen till just simplealgoritmen, den går från hörn till hörn. Även i tidigare skeen liknar metoden simplealgoritmen i sitt sätt att välja nästa punkt. Simplealgoritmen är känd att vid värsta fall betee väer tiden för beräkningen eponentiellt mot problemets storlek. Det betyder att det kan eistera fall där tiden för beräkningen av algoritmen väer eponentiell med avsee på problemets storlek (storlek på matrisen A ). Det beror på att det totala antalet hörn ökar eponentiellt med storleken på problemet. Därför kan hittandet av startvärde vara problematiskt för stora problem. Dock är värsta fall betee ett ganska dåligt mått på hur en algoritm beter sig. Ett mycket bättre mått är medel beteet. Där visar det sig att simplealgoritmen är en bra algoritm. Jag har inte lyckats göra någon värsta fall betee analys av min algoritm. Rent eperimentellt tycks min algoritms medel betee vara av polynomiell kompleitet. Antalet iterationer verkar vara ungefär 1/4 av antalet bivillkor (för stora problem på formulering (1.1)), d.v.s. ungefär lika med m/4. Först drygt n iterationer då algoritmen söker upp ett hörn och resterande iterationer med simplealgoritmen från hörn till hörn. Antalet flyttalsberäkningar i varje iteration är av storleksordningen O(mn) +O(n 3 ) (med reservation för ett visst fel beroe på MATLAB s sätt att räkna och degenererade lösningar ej inräknade), och därför blir det totala förväntade antalet flyttalsberäkningar av storleksordningen O(m 2 n)+o(mn 3 ). Vad det gäller antalet flyttalsberäkningar för att hitta ett tillåtet startvärde beror i stor grad på problemets storlek. En procedur i den beräkningen är att gå igenom alla bivillkor och hoppa till icke uppfyllda. Antalet flyttalsberäkningar för detta är av storleksordningen O(mn). Som angetts tidigare behövs det inte göras så många tester för stora problem. Antalet tester verkar till och med vara oberoe av problemets storlek (för stora problem i alla fall). Därför kommer det totala antalet flyttalsberäkningar för detta att vara av storleksordningen O(mn) vilket är mindre än storleksordningen för huvudalgoritmen. Därför kommer inte tiden för sökandet av startvärde att ha någon betyd för stora problem. För små och medelstora problem kommer denna del av beräkningarna att vara mer betydande i tidsåtgång. De LP-algoritmer jag har stött på löser problem av typen (1.3), dvs. med likhetstecken vid bivillkoren. Om ursprungsproblemet var ett problem av typen (1.1), dvs. med olikhetstecken vid bivillkor, betyder det att man måste fylla ut problemet med slackvariabler för att få det på typen (1.3). Alternativt kan man skriva om problemet på dual form och därefter fylla ut med slackvariabler. Det nya problemet får mycket fler variabler vilket kan vara till nackdel sen när man löser problemet med en algoritm. Visserligen blir den nya bivillkorsmatrisen ganska gles vilket man kan utnyttja vid beräkningar, men generellt kan det försvåra problemlösningen. För att nämna lite grand om Karmarkars metod bygger den på problem av typen (1.3) under förutsättning att alla funktionsvariabler är större än noll (se referens [2]). Det är en 25
27 inrepunktsmetod och den är polynomiell i tid men långsam för små problem. Denna lämpar sig för problem med flera tusen variabler. En nackdel med denna är att den inte nödvändigtvis hittar det absoluta optimum utan bara en bra approimation för denna. För att hitta det absoluta optima måste någon annan metod användas utifrån det approimativa optima som Karmarkars metod funnit. Dock så brukar den hitta mycket nära optima. Någon direkt jämför med Karmarkars metod och min metod har jag inte gjort utan det kräver mer analys, eller så kan jämförn göras eperimentellt. 26
28 Slutkommentarer Rent generellt kan sägas att receptet på en framgångsrik algoritm för lösning av LP-problem är en blandning av olika lösningsmetoder. Det kan sägas för att olika metoder har olika för och nackdelar för olika typer av problem, och en algoritm som aktivt behandlar olika lösningsmetoder kan dra fördel därav. I många fall uppkommer LP-problem med gles struktur. Det betyder att de flesta element i bivillkorsmatrisen består av nollor, vilket kan utnyttjas för snabbare beräkningar (nollorna behöver inte beräknas). Olika algoritmer har olika lätt att använda sig av glesa strukturer vilket också är beroe av valet av algoritm. För att återgå till algoritmen beskriven i denna uppsats kan sökandet av startvärde ske på många olika sätt. I metoden för att hitta ett startvärde utgick algoritmen från origo vid starten och därefter gå mot det tillåtna området. Ett annat alternativ är att slumpa fram några olika startvärden och därefter gå på samma sätt som tidigare mot tillåtet område och välja nästa värde som det bästa av de slumpade värdena. Med bästa menas det värde som har flest antal uppfyllda bivillkor. Eventuellt skulle kanske något av de olika startvärdena ligga inom tillåtet område och därmed skulle man använda detta värde. Alternativt kan man använda sig av medelvärdet av alla startvärden som har gått till alla icke uppfyllda bivillkor ett varv. Nackdelen att göra på något av de senaste förklarade sätten är att det tar längre tid att beräkna för flera olika startvärden, å andra sidan kan den konvergera snabbare mot tillåtet startvärde. Det är svårt att på förhand säga vad som är bäst. Jag valde att bara gå från origo vilket lönar sig när området ligger nära origo. Skulle det nu vara så att man är i behov av resultat etremt snabbt kan olika metoder användas parallellt. Med det menar jag att olika processorer får använda sig av olika metoder och ast den som är snabbast använder man resultatet från. På det sättet använder man ast styrkorna i var och en metod och behöver inte bekymra sig om någon metod är etremt långsam i något enskilt fall (förutsatt att de andra metoderna inte heller är etremt långsamma för samma typ av problem). Det som står först i tur att utvecklas i denna algoritm är dess sätt att ta hand om degenererande hörn. Algoritmen tar hjälp av MATLAB s linprog vilket gör att en ineffektiv omskrivning måste göras för att få en lösning. Även problemomformningen i linearmin2 borde kunna förbättras, då den är långsam för stora problem. Vad som eventuellt skulle kunna kompletteras är en algoritm som löser problem med kända specialfall på formen (1.2). Då matrisen med likhet är känd och har enkel struktur kan motsvarande olikhetsmatris genereras istället för beräknas. Det skulle spara mycket beräkningstid för dessa problem. Detta är till eempel fallet med transportproblemet, vilket kan skrivas på formen (1.2) (se t.e. referens [3]). 27
29 Referenser [1] Nash S G, Sofer A. (1996) Linear and Nonlinear Programming. McGraw-Hill. ISBN [2] Lundgren J, Rönnqvist M, Värbrand P (2001) Linjär och icke linjär optimering. Studentlitteratur. ISBN [3] Hillier F S, Lieberman G J (1995) Introduction to mathematical programming. McGraw- Hill. ISBN [4] Hillier F S, Lieberman G J (2001) Introduction to operations research. McGraw-Hill. ISBN
30 Bilagor
31 Bilaga 1 A) Beräkning av steg till icke uppfyllt bivillkor. ( j) T A j T A j T A j j:te radvektor i A ( j 1) (j-1) = + A T t ( j) ( j 1) j I punkt ( j) måste bivillkoret vara uppfyllt med likhet vilket leder till: b = A = A ( + A t) T j j ( j) j ( j 1) j A + A A t = b T j ( j 1) j j j b A t = j j ( j 1) T A ja j b A A j j ( j 1) T ( j) = ( j 1) + T j A ja j B) 2 0 m 0 m 3 0 m - 0 m 3 1 dvs m = 2 = + 2( ) = 2 = m 0 m =
32 C) Bevis av konvergens mot tillåtet område i (3.4) P 1 2..n ( j+ 1) (j+1 ) ( j) (j) Välj ett lokalt orthogonalt koordinatsystem så att 1 -aeln sammanfaller med normalvektor till bivillkor. Övriga koordinatalar kan sättas godtyckligt så länge de är orthogonala. Det ger att ( j) och ( j+ 1) har koordinaterna ( 1 2 n ) respektive ( 0 2 n ). Punkten P har koordinaterna ( P1 P2 P n ). Alla koordinater är uttryckta i det lokala koordinatsystemet. Distanserna mellan P och ( j) resp. P och ( j+ 1) kan skrivas som dist( P ) = ( P ) + ( P ) + + ( P ) ( j) n n dist( P ) = ( P ) + ( P ) + + ( P ) ( j+ 1) n n Följande slutsats inses lätt P 0 och < 0 dist( P ) > dist ( P + ) 1 1 ( j) ( j 1) Detta kan tolkas som för alla punkter som ligger på den tillåtna sidan om bivillkoret gäller att avståndet mellan dem och ( j+ 1) är mindre än avståndet mellan dem och ( j). Eftersom det tillåtna området ligger på den tillåtna sidan om bivillkoret innebär det att alla tillåtna punkter kommer att ligga närmare ( j+ 1) jämfört med ( j). Ligger ( j+ 1) närmare alla tillåtna punkter innebär det att ( j+ 1) ligger närmare det tillåtna området. Slutsatsen man kan dra av resonemanget ovan är att avståndet mellan det tillåtna området och ( j) minskar då j ökar. För att bevisa att ( j) konvergerar mot det tillåtna området kan man resonera enligt följande. Anta att ( j) konvergerar mot ett avstånd k > 0 från det tillåtna området. Förr eller senare kommer man till ett bivillkor som tangerar det tillåtna området i metoden (3.4). Det medför att ett längre steg måste äga rum vilket motsätter konvergens med avstånd k > 0 från det tillåtna området. Enda möjligheten är att ( j) konvergerar mot det tillåtna området.
TNSL05 Optimering, Modellering och Planering. Föreläsning 6
TNSL05 Optimering, Modellering och Planering Föreläsning 6 Agenda Kursens status Tolkning av utdata Intro lösningsmetoder Linjära optimeringsproblem (LP) på standardform Algebraisk formulering av LP Konveitet
Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin
Linjärprogramming EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin 1 Kursmål Formulera korttidsplaneringsproblem för vatten- och värmekraftsystem. 2 Tillämpad matematisk programming Korttidsplanering
Optimalitetsvillkor. Optimum? Matematisk notation. Optimum? Definition. Definition
Optimum? När man har formulerat sin optimeringsmodell vill man lösa den Dvs finna en optimal lösning, x, till modellen Nästan alltid: Sökmetoder: Stå i en punkt, gå till en annan (bättre Upprepa, tills
1 Duala problem vid linjär optimering
Krister Svanberg, april 2012 1 Duala problem vid linjär optimering Detta kapitel handlar om två centrala teoretiska resultat för LP, nämligen dualitetssatsen och komplementaritetssatsen. Först måste vi
1 LP-problem på standardform och Simplexmetoden
Krister Svanberg, mars 202 LP-problem på standardform och Simplexmetoden I detta avsnitt utgår vi från LP-formuleringen (2.2) från föreläsning. Denna form är den bäst lämpade för en strömlinjeformad implementering
8 Minsta kvadratmetoden
Nr, april -, Amelia Minsta kvadratmetoden. Ekvationssystem med en lösning, -fallet Ett linjärt ekvationssystem, som ½ +7y = y = har en entydig lösning om koefficientdeterminanten, här 7, är skild från
Tentamensinstruktioner. När Du löser uppgifterna
Matematiska institutionen Optimeringslära TENTAMEN TAOP14/TEN 1 OPTIMERINGSLÄRA GRUNDKURS för I, Ii och TB Datum: 24 augusti 2009 Tid: 8.00-13.00 Hjälpmedel: Lundgren m fl: Optimeringslära och/eller Lundgren
TNK049 Optimeringslära
TNK049 Optimeringslära Clas Rydergren, ITN Föreläsning 9 Icke-linjär optimering Konveitet Metoder ör problem utan bivillkor Optimalitetsvillkor ör icke-linjära problem Icke-linjär programmering Non-linear
Föreläsning 2: Simplexmetoden. 1. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform.
Föreläsning 2: Simplexmetoden. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform. 3. Simplexalgoritmen. 4. Hur bestämmer man tillåtna startbaslösningar? Föreläsning
De optimeringsproblem som kommer att behandlas i denna kurs kan alla (i princip) skrivas. 1 2 xt Hx + c T x. minimera
Krister Svanberg, mars 2012 1 Introduktion De optimeringsproblem som kommer att behandlas i denna kurs kan alla (i princip) skrivas på följande allmänna form: f(x) (1.1) x F, där x = (x 1,..., x n ) T
Hemuppgift 2, SF1861 Optimeringslära för T, VT-10
Hemuppgift 2, SF1861 Optimeringslära för T, VT-1 Kursansvarig: Per Enqvist, tel: 79 6298, penqvist@math.kth.se. Assistenter: Mikael Fallgren, werty@kth.se, Amol Sasane, sasane@math.kth.se. I denna uppgift
Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter
Inledande matematik för I1 MVE011 läsperiod 1 010 Matlab vecka övningsuppgifter Linjära ekvationssystem Matlab har många kraftfulla redskap för att hantera matriser och därmed också linjära ekvationssystem.
Linjärprogrammering (Kap 3,4 och 5)
Linjärprogrammering (Kap 3,4 och 5) Fredrik Olsson, fredrik.olsson@iml.lth.se Avdelningen för produktionsekonomi Lunds tekniska högskola, Lunds universitet 16 september 2015 Dessa sidor innehåller kortfattade
MMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
. (2p) 2x + 2y + z = 4 y + 2z = 2 4x + 3y = 6
Kursen bedöms med betyg, 4, 5 eller underkänd, där 5 är högsta betyg För godkänt betyg krävs minst 4 poäng från uppgifterna -7 Var och en av dessa sju uppgifter kan ge maximalt poäng För var och en av
Lösningar till tentan i SF1861 Optimeringslära, 1 juni 2017
Lösningar till tentan i SF86 Optimeringslära, juni 7 Lösningarna är på svenska, utom lösningen av (a som är på engelska (a The considered network is illustrated in FIGURE below, where the supply at the
Optimeringslära för T (SF1861)
Optimeringslära för T (SF1861) 1. Kursinformation 2. Exempel på optimeringsproblem 3. Introduktion till linjärprogrammering Introduktion - Ulf Jönsson & Per Enqvist 1 Linjärprogrammering Kursinformation
Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad 20.5.2010. a) i) Nollställen för polynomet 2x 2 3x 1:
Ellips Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad.. Prov a) i) ii) iii) =,, = st 9,876 =,9876,99 = 9,9,66,66 =,7 =,7 Anmärkning. Nollor i början av decimaltal har ingen betydelse
Tentamensinstruktioner. Vid skrivningens slut
Matematiska institutionen Optimeringslära TENTAMEN TAOP14/TEN1 OPTIMERINGSLÄRA GRUNDKURS för I och Ii Datum: 13:e januari 2011 Tid: 8.00 13.00 Hjälpmedel: Kurslitteratur av Lundgren m fl: Optimeringslära
Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper
CTH/GU STUDIO TMV3c - 1/15 Matematiska vetenskaper Optimeringsproblem 1 Inledning Vi skall söka minsta eller största värdet hos en funktion på en mängd, dvs. vi skall lösa s.k. optimeringsproblem min f(x)
Konvergens för iterativa metoder
Konvergens för iterativa metoder 1 Terminologi Iterativa metoder används för att lösa olinjära (och ibland linjära) ekvationssystem numeriskt. De utgår från en startgissning x 0 och ger sedan en följd
Vektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Räta linjens och planets ekvationer II Innehåll
Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl
Lösningsförslag till tentamen i SF86 Optimeringslära för T. Torsdag 28 maj 2 kl. 4. 9. Examinator: Per Enqvist, tel. 79 62 98. (a) Inför variablerna x = (x sr, x sm, x sp, x sa, x sd, x gr, x gm, x gp,
FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum
Johan Helsing, 11 oktober 2018 FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum Inlämningsuppgift 3 Sista dag för inlämning: onsdag den 5 december. Syfte: att träna på att hitta lösningar
Matriser och linjära ekvationssystem
Linjär algebra, I1 2011/2012 Matematiska vetenskaper Matriser och linjära ekvationssystem Matriser En matris är som ni vet ett rektangulärt talschema: a 11 a 1n A = a m1 a mn Matrisen ovan har m rader
Optimeringslära 2013-11-01 Kaj Holmberg
Tekniska Högskolan i Linköping Optimering för ingenjörer Matematiska Institutionen Lösning till tentamen Optimeringslära 23-- Kaj Holmberg Uppgift a: Problemet skrivet i standardform är: Lösningar min
MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt
MATEMATIK GU H4 LLMA6 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 24 I block 5 ingår följande avsnitt i Stewart: Kapitel 2, utom avsnitt 2.4 och 2.6; kapitel 4. Block 5, översikt Första delen av block 5
Lösningsanvisningar till de icke obligatoriska workoutuppgifterna
Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar
1 De fyra fundamentala underrummen till en matris
Krister Svanberg, mars 2012 1 De fyra fundamentala underrummen till en matris 1.1 Definition av underrum En given delmängd M av IR n säges vara ett underrum i IR n om följande gäller: För varje v 1 M,
Block 5: Ickelineära. ekvationer? Läroboken. Löpsedel: Icke-lineära. ekvationer. Vad visade laborationen? Vad visade laborationen?
Block 5: Ickelineära ekvationer Löpsedel: Icke-lineära ekvationer Varför är det svårt att lösa ickelineära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod Noggrannhet/stoppvillkor
Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,
Uppsala universitet Institutionen för informationsteknologi Avdelningen för beräkningsvetenskap Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, 2015-12-17 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!)
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall
1 Grundläggande kalkyler med vektorer och matriser
Krister Svanberg, mars 2015 1 Grundläggande kalkyler med vektorer och matriser Trots att läsaren säkert redan behärskar grundläggande vektor- och matriskalkyler, ges här i Kapitel 1 en repetition om just
14. Minsta kvadratmetoden
58 MINSTA KVADRATMETODEN. Minsta kvadratmetoden Eempel.. Det är inte så svårt att komma åt en trasig lampa på golvet för att byta den. Det är bara att gå fram till den. Hur är det om lampan hänger i taket?
GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april
GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare Karlstads universitet 19-0 april Exempel på elevaktiviteter framtagna i skolutvecklingsprojektet IKT och lärande i matematik 1
5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3
1 Revision 4 2006-12-16 2. SIDFÖRTECKNING 5B1146 med Matlab Laborationsr Laborationsgrupp: Sebastian Johnson, Ann-Sofi Åhn ( endst tal1-3 Titel Sida 1. Uppgift 1.8.1....3 2. Uppgift 1.8.2....6 3. Uppgift
Lösningar till tentan i SF1861/51 Optimeringslära, 3 juni, 2015
Lösningar till tentan i SF86/5 Optimeringslära, 3 juni, 25 Uppgift.(a) Första delen: The network is illustrated in the following figure, where all the links are directed from left to right. 3 5 O------O
Veckoblad 1, Linjär algebra IT, VT2010
Veckoblad, Linjär algebra IT, VT Under den första veckan ska vi gå igenom (i alla fall stora delar av) kapitel som handlar om geometriska vektorer. De viktigaste teoretiska begreppen och resultaten i kapitlet
Vektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://w3.msi.vxu.se/users/pa/vektorgeometri/gymnasiet.html Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Vektorer i planet
Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018
Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018 1. Inledning Inom matematiken är det ofta intressant att finna nollställen till en ekvation f(x),
Exponentialfunktioner och logaritmer
Eponentialfunktioner och logaritmer Tidigare i kurserna har du gått igenom potenslagarna, hur man räknar med potenser och potensfunktioner av typen y. En potens- funktion är en funktion som innefattar
Uppsala Universitet Matematiska Institutionen Thomas Erlandsson
Uppsala Universitet Matematiska Institutionen Thomas Erlandsson MATRISER MED MERA VEKTORRUM DEFINITION Ett vektorrum V är en mängd av symboler u som vi kan addera samt multiplicera med reella tal c så
Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund
Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism En civilingenjör ska kunna idealisera ett givet verkligt problem, göra en adekvat fysikalisk modell och behandla modellen med matematiska
Laboration: Vektorer och matriser
Laboration: Vektorer och matriser Grundläggande om matriser Begreppet matris är en utvidgning av vektorbegreppet, och det används bl a när man löser linjära ekvationssystem. Namnet Matlab står för MATrix
Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,
Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I/KF, 5. hp, 215-3-17 Skrivtid: 14 17 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat
Gamla tentemensuppgifter
Inte heller idag någon ny teori! Gamla tentemensuppgifter 1 Bestäm det andragradspolynom vars kurva skär x-axeln i x = 3 och x = 1 och y-axeln i y = 3 f(x) = (x 3)(x + 1) = x x 3 är en bra start, men vi
Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1
Numeriska metoder, grundkurs II Övning 5 för I Dagens program Övningsgrupp 1 Johannes Hjorth hjorth@nada.kth.se Rum :006, Roslagstullsbacken 5 08-790 69 00 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/d0/numi07
Vektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Räta linjens och planets ekvationer I Innehåll
Vektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Linjära avbildningar I Innehåll En liten tillbakablick:
Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1
Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens
Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.
Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem. Begrepp som diskuteras i det kapitlet. Vektorer, addition och multiplikation med skalärer. Geometrisk tolkning. Linjär kombination av
Optimering av olika slag används inom så vitt skilda områden som produktionsplanering,
Anders Johansson Linjär optimering Exempel på användning av analoga och digitala verktyg i undervisningen Kursavsnittet linjär optimering i Matematik 3b kan introduceras med såväl analoga som digitala
1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u =
Kursen bedöms med betyg,, 5 eller underkänd, där 5 är högsta betyg. För godkänt betyg krävs minst poäng från uppgifterna -7. Var och en av dessa sju uppgifter kan ge maximalt poäng. För var och en av uppgifterna
SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A
SF64 Algebra och geometri Lösningsförslag till tentamen 04-05-0 DEL A. Planet P innehåller punkterna (,, 0), (0, 3, ) och (,, ). (a) Bestäm en ekvation, på formen ax + by + cz + d = 0, för planet P. (
Lösningar till 5B1762 Optimeringslära för T, 24/5-07
Lösningar till 5B76 Optimeringslära för T, 4/5-7 Uppgift (a) Först använder vi Gauss Jordans metod på den givna matrisen A = Addition av gånger första raden till andra raden ger till resultat matrisen
Optimeringslära Kaj Holmberg
Tekniska Högskolan i Linköping Optimering för ingenjörer Matematiska Institutionen Lösning till tentamen Optimeringslära 26-6- Kaj Holmberg Lösningar Uppgift Hinkpackning (hink = tur med cykeln. Jag använder
P Q = ( 2, 1, 1), P R = (0, 1, 0) och QR = (2, 2, 1). arean = 1 2 P Q P R
1 Matematiska Institutionen KTH Lösningar till några övningar på geometri och vektorer inför lappskrivning nummer 2 på kursen Linjär algebra II, SF1604, vt11. 1. En triangel har hörn i punkterna (1, 2,
Gränsvärdesberäkningar i praktiken
Gränsvärdesberäkningar i praktiken - ett komplement till kapitel i analsboken Jonas Månsson När man beräknar gränsvärden använder man sig av en rad olika strategier beroende på det givna problemet. Avsikten
Matriser och linjära ekvationssystem
Linjär algebra, AT3 211/212 Matematiska vetenskaper Matriser och linjära ekvationssystem Matriser En matris är som ni redan vet ett rektangulärt talschema: a 11 a 1n A = a m1 a mn Matrisen ovan har m rader
1 Ickelinjär optimering under bivillkor
Krister Svanberg, maj 2012 1 Ickelinjär optimering under bivillkor Hittills har vi behandlat optimeringsproblem där alla variabler x j kunnat röra sig fritt, oberoende av varann, och anta hur stora eller
LP-problem. Vårt första exempel. Baslösningar representerar extrempunkter. Baslösningar representerar extrempunkter
LP-problem Vårt första exempel Ett LP-problem: max z = c T x då Ax b, x 0. Den tillåtna mängden är en polyeder och konvex. Målfunktionen är linjär och konvex. Så problemet är konvext. Var ligger optimum?
Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.
Eulercykel Definition En Eulercykel är en cykel som använder varje båge exakt en gång. Definition En nods valens är antalet bågar som ansluter till noden. Kinesiska brevbärarproblemet En brevbärartur är
Linjär Algebra, Föreläsning 2
Linjär Algebra, Föreläsning 2 Tomas Sjödin Linköpings Universitet Riktade sträckor och Geometriska vektorer En (geometrisk) vektor är ett objekt som har storlek och riktning, men inte någon naturlig startpunkt.
15 september, Föreläsning 5. Tillämpad linjär algebra
5 september, 5 Föreläsning 5 Tillämpad linjär algebra Innehåll Matriser Algebraiska operationer med matriser Definition och beräkning av inversen av en matris Förra gången: Linjära ekvationer och dess
1. Vad är optimering?
. Vad är optimering? Man vill hitta ett optimum, när något är bäst, men att definiera vad som är bäst är inte alltid så självklart. För att kunna jämföra olika fall samt avgöra vad som är bäst måste man
Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper
CTH/GU STUDIO 1 TMV06b - 2012/201 Matematiska vetenskaper Linjär algebra Analys och Linjär Algebra, del B, K1/Kf1/Bt1 1 Inledning Vi fortsätter även denna läsperiod att arbete med Matlab i matematikkurserna
Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska
Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från
Explorativ övning Vektorer
Eplorativ övning Vektorer Syftet med denna övning är att ge grundläggande kunskaper om vektorräkning och dess användning i geometrin Liksom många matematiska begrepp kommer vektorbegreppet från fysiken
TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER
Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 28 augusti 2015 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar
MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =
Matematiska institutionen Stockholms universitet CG Matematik med didaktisk inriktning 2 Problem i Algebra, geometri och kombinatorik Snedsteg 5 MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET
e 3 e 2 e 1 Kapitel 3 Vektorer i planet och i rummet precis ett sätt skrivas v = x 1 e 1 + x 2 e 2
Kapitel 3 Vektorer i planet och i rummet B e 3 e 2 A e 1 C Figur 3.16 Vi har ritat de riktade sträckor som representerar e 1, e 2, e 3 och v och som har utgångspunkten A. Vidare har vi skuggat planet Π
När det gäller en motor kanske man vill maximera verkningsgraden för att hålla nere bränslekostnaden men inte till vilket pris som helst.
Vad är optimering? Man vill hitta ett optimum, när något är bäst. Men att definiera vad som är bäst är inte alltid så självklart. När det gäller en motor kanske man vill maximera verkningsgraden för att
Linjära ekvationer med tillämpningar
UMEÅ UNIVERSITET Institutionen för matematik och matematisk statistik Olof Johansson, Nina Rudälv 2006-10-17 SÄL 1-10p Linjära ekvationer med tillämpningar Avsnitt 2.1 Linjära ekvationer i en variabel
Optimeringslara = matematik som syftar till att analysera och. Optimeringslara ar en gren av den tillampade matematiken.
Optimal = basta mojliga. Optimeringslara = matematik som syftar till att analysera och nna det basta mojliga. Anvands oftast till att nna ett basta handlingsalternativ i tekniska och ekonomiska beslutsproblem.
Isometrier och ortogonala matriser
Isometrier och ortogonala matriser (Delvis resultat som kunde kommit tidigare i kursen) För att slippa parenteser, betecknas linära avbildningar med A och bilden av x under en lin avbildn med Ax i stället
Ordinära differentialekvationer,
(ODE) Ordinära differentialekvationer, del 1 Beräkningsvetenskap II It is a truism that nothing is permanent except change. - George F. Simmons ODE:er är modeller som beskriver förändring, ofta i tiden
Funktionsstudier med derivata
Funktionsstudier med derivata Derivatan ett kraftfullt verktyg för att studera och tolka funktioner Det här avsnittet handlar om att man kan använda derivatan till att bestämma en funktions egenskaper
Vektorerna är parallella med planet omm de är vinkelräta mot planets normal, dvs mot
Kursen bedöms med betyg,, eller underkänd, där är högsta betyg. För godkänt betyg krävs minst poäng från uppgifterna -7. Var och en av dessa sju uppgifter kan ge maximalt poäng. För var och en av uppgifterna
Funktioner. Räta linjen
Sidor i boken 14-143, 145-147 Funktioner. Räta linjen Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter
1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)
UMEÅ UNIVERSITY Department of Mathematics and Mathematical Statistics Pre-exam in mathematics Linear algebra 2012-02-07 1. Compute the following matrix: (2 p 3 1 2 3 2 2 7 ( 4 3 5 2 2. Compute the determinant
Lösningar till tentan i SF1861 Optimeringslära, 3 Juni, 2016
Lösningar till tentan i SF86 Optimeringslära, 3 Juni, 6 Uppgift (a) We note that each column in the matrix A contains one + and one, while all the other elements in the column are zeros We also note that
LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning
TANA18/20 mars 2015 LAB 3. INTERPOLATION 1 Inledning Vi ska studera problemet att interpolera givna data med ett polynom och att interpolera med kubiska splinefunktioner, s(x), som är styckvisa polynom.
Tentamensinstruktioner. När Du löser uppgifterna
Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN OPTIMERING FÖR INGENJÖRER för M/EMM Datum: 29 maj 20 Tid:.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar
Den räta linjens ekvation
Den räta linjens ekvation Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter dem för första gången är
Mer om geometriska transformationer
CTH/GU LABORATION 4 TMV141-1/13 Matematiska vetenskaper 1 Inledning Mer om geometriska transformationer Vi fortsätter med geometriska transformationer och ser på ortogonal (vinkelrät) projektion samt spegling.
Lite Kommentarer om Gränsvärden
Lite Kommentarer om Gränsvärden På föreläsningen (Föreläsning 2 för att vara eakt) så introducerade vi denitionen Denition. Vi säger att f() går mot a då går mot oändligheten, uttryckt i symboler som f()
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade
Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper
CTH/GU LABORATION 3 MVE270-2013/2014 Matematiska vetenskaper Newtons metod 1 Inledning Vi skall lösa system av icke-linjära ekvationer. Som exempel kan vi ta, { x1 (1 + x 2 2) 1 = 0 x 2 (1 + x 2 1 ) 2
Linjär algebra på några minuter
Linjär algebra på några minuter Linjära ekvationssystem Ekvationssystem: { Löses på matrisform: ( ) ( ) I det här fallet finns en entydig lösning, vilket betyder att determinanten av koefficientmatrisen
Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).
Kapitel 5 Fixpunktsiteration 5.1 Fixpunktsekvation En algebraisk ekvation kan skrivas på följande två ekvivalenta sätt (vilket innebär att lösningarna är desamma). 1. f(x) = 0. En lösning x kallas en rot
Tentamensinstruktioner. När Du löser uppgifterna
Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN 1 OPTIMERING FÖR INGENJÖRER för M/EMM Datum: januari 2013 Tid: 14.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar
RÄKNEOPERATIONER MED VEKTORER LINJÄRA KOMBINATIONER AV VEKTORER ----------------------------------------------------------------- Låt u vara en vektor med tre koordinater, u = x, Vi säger att u är tredimensionell
Laboration 1 - Simplexmetoden och Modellformulering
Linköpings universitet Optimeringslära grundkurs för Y Matematiska institutionen Laboration 1 Optimeringslära 30 januari 2013 Laboration 1 - Simplexmetoden och Modellformulering Den första delen av laborationen
Den räta linjens ekvation
Den räta linjens ekvation Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter dem för första gången är
Mer om reella tal och kontinuitet
Kapitel R Mer om reella tal och kontinuitet I detta kapitel formulerar vi ett av de reella talens grundläggande axiom, axiomet om övre gräns, och studerar några konsekvenser av detta. Med dess hjälp kommer
Att beräkna:: Avstånd
Att beräkna:: Avstånd Mikael Forsberg :: 27 november 205 Innehåll Punkter, linjer och plan, en sammanställning 2. Punkter i två och tre dimensioner....................... 2.2 Räta linjer i två och tre
Mer om analytisk geometri
1 Onsdag v 5 Mer om analytisk geometri Determinanter: Då man har en -matris kan man till den associera ett tal determinanten av som också skrivs Determinanter kommer att repeteras och studeras närmare
Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.
Grunderna i MATLAB eva@it.uu.se Innehåll Vad är MATLAB? Användningsområden MATLAB-miljön Variabler i MATLAB Funktioner i MATLAB Eempel och smakprov: Grafik Beräkningar Bilder GUI Vad är MATLAB? Utvecklat
Moment 4.2.1, 4.2.2, 4.2.3, Viktiga exempel 4.1, 4.3, 4.4, 4.5, 4.6, 4.13, 4.14 Övningsuppgifter 4.1 a-h, 4.2, 4.3, 4.4, 4.5, 4.
Moment 4.2.1, 4.2.2, 4.2., 4.2.4 Viktiga exempel 4.1, 4., 4.4, 4.5, 4.6, 4.1, 4.14 Övningsuppgifter 4.1 a-h, 4.2, 4., 4.4, 4.5, 4.7 Många av de objekt man arbetar med i matematiken och naturvetenskapen
KOKBOKEN 1. Håkan Strömberg KTH STH
KOKBOKEN 1 Håkan Strömberg KTH STH Hösten 2006 Håkan Strömberg 2 KTH Syd Innehåll Olikheter.................................... 6................................. 6 Uppgift 2.................................