Modellering och optimering av schemaläggning vid en ridskola

Save this PDF as:
 WORD  PNG  TXT  JPG

Storlek: px
Starta visningen från sidan:

Download "Modellering och optimering av schemaläggning vid en ridskola"

Transkript

1 Modellering och optimering av schemaläggning vid en ridskola En fallstudie i heltalsprogrammering Kandidatarbete inom civilingenjörsutbildningen vid Chalmers Rasmus Einarsson Patrik Johansson Oskar Redlund Joakim Widstrand Institutionen för matematiska vetenskaper Chalmers tekniska högskola Göteborgs universitet Göteborg 2010

2

3 Modellering och optimering av schemaläggning vid en ridskola En fallstudie i heltalsprogrammering Kandidatarbete i matematik inom civilingenjörsprogrammet Automation och mekatronik vid Chalmers Oskar Redlund Kandidatarbete i matematik inom civilingenjörsprogrammet Maskinteknik vid Chalmers Joakim Widstrand Kandidatarbete i matematik inom civilingenjörsprogrammet Teknisk matematik vid Chalmers Patrik Johansson Kandidatarbete i matematik inom civilingenjörsprogrammet Kemiteknik med fysik vid Chalmers Rasmus Einarsson Handledare: Examinator: Michael Patriksson Ann-Brith Strömberg Carl-Henrik Rune Fant Institutionen för matematiska vetenskaper Chalmers tekniska högskola Göteborgs universitet Göteborg 2010

4

5 Sammanfattning Syftet med detta arbete är att analysera möjligheterna att använda sig av matematisk modellering och optimering för att förbättra schemaläggningen vid en ridskola. Projektet har genomförts i samarbete med Billdals ridklubb, där schemat idag läggs manuellt, vilket är tidskrävande. I rapporten presenteras en linjär heltalsmodell vilken använts för att optimera ridskolans schema med hjälp av optimeringslösaren CPLEX. En heuristisk algoritm har utvecklats för att möjliggöra jämförelse av lösningar och lösningstider mellan lösningar från den linjära heltalsmetoden och den heuristiska metoden. De två metoderna har visat sig ha olika fördelar. Resultaten i rapporten visar att ridskolans schema undantagsvis bryter mot de kriterier som formulerats i modellen, men liknar lösningarna från den linjära heltalsoptimeringen. Vi bedömer att matematisk optimering med datorverktyg kan vara till stor hjälp vid schemaläggning på ridskolor. Abstract The purpose of this work is to analyze the possibilities of using mathematical modeling and optimization to improve the schedule for a horseback riding school. The work has been done in collaboration with a riding school in Billdal, Sweden, where scheduling is presently done manually, which requires time and effort. A linear integer optimization model has been developed and solved with the optimization software CPLEX. In addition, a heuristic algorithm has been developed for comparison of solutions and computation times between the linear integer method and the heuristic method. The two methods have shown different strengths. Results show that the existing schedule at the riding school ignores some of the restrictions present in the model. We conclude that mathematical optimization can be a very valuable tool in scheduling at horseback riding schools.

6 Innehåll 1 Inledning Bakgrund: schemaläggning på ridskolan i Billdal Syfte och avgränsningar Metod Sammanfattning av rapportens innehåll Teori Modellering och matematisk programmering Konvexa problem Linjärprogrammering och simplexmetoden Heltalsprogrammering och branch-and-bound-algoritmen Heuristiska lösningsmetoder Modelleringsverktyg för lösning av linjära problem AMPL CPLEX Problembeskrivning Schemaläggning på ridskolan Elever Hästar Lokaler Lärare Ytterligare önskemål Metod Varför linjär heltalsoptimering? Lösningsgång och modellens utformning En matematisk formulering av kriterierna Andra varianter av modellen Målfunktioner Heuristisk algoritm Resultat Befintligt schema Skadade hästar Ökad belastning på hästar Utvidgning av befintligt schema Lösning av generellt problem Varians av hästbelastning Diskussion och analys Ridskolans schema Metod och modell Slutsats 28 ii

7 Förord: Bidragsrapport Under projektets gång har en grupploggbok samt en individuell tidslogg förts, dessa ligger till grund för beskrivningen av vad varje projektmedlem bidragit med. I denna sektion presenteras hur arbetsfördelning inom gruppen har fungerat. Nedan presenteras också författarreferenser för rapportinnehållet. Grupparbete Medlemmarna i projektgruppen har inte tilldelats några specifika ansvarsområden eftersom en totalöverblick av projektet har bedömts vara viktig för att effektivt bidra till arbetet. Gruppen haft veckovisa möten med få undantag. På dessa möten har den aktuella statusen av projektet diskuterats samt att planer och tilldelning av arbetsuppgifter gjorts inför kommande vecka. Gruppen har syftat till att försöka hålla så kreativa möten som möjligt där detaljer angående projektet och rapporten diskuterats. Även om det mesta faktiska arbetet utförts utanför gruppmötena har de flesta idéer och förslag uppkommit på just dessa. Gruppen har även använt sig av kontakt via e-post mellan mötena där idéer och frågor behandlats kontinuerligt. Huvudsakligen har den linjära heltalsmodellen konstruerats av Rasmus. Den heuristiska algoritmen har huvudsakligen utvecklats av Patrik. Generering av indata till modellen samt testkörningar och analyser har huvudsakligen utförts av Oskar och Joakim. Det bör dock poängteras att samtliga inblandade har tagit ansvar och bidragit med arbete och diskussion inom samtliga arbetsområden. Rapport Här presenteras de huvudsakliga författarna av de olika rapportavsnitten. Författare inom parentes indikerar ett i förhållande betydligt mindre bidrag. Samtliga författare har dock bidragit med förslag till alla avsnitt. Inledning: Joakim / Oskar Teori: Patrik Problembeskrivning: Rasmus / (Oskar) Metod: Rasmus / (Patrik) Resultat: Patrik / Oskar / Joakim Diskussion: Samtliga författare Slutsats: Samtliga författare iii

8 Förkortingslista AMPL - A Mathematical Programming Language BB - Branch and Bound IP - Heltalsprogrammering (integer programming) LP - Linjärprogrammering MIP - Blandad heltalsprogrammering (mixed integer programming) MPS - Mathematical programming system iv

9 1 Inledning Schemaläggningsproblem återfinns inom många områden i samhället, allt från stora och komplicerade problem till mindre, enklare planering. Under flera decennier har schemaläggning betraktats som ett matematiskt optimeringsproblem, och en stor mängd material har publicerats inom området. De första datorbaserade optimeringsberäkningarna kom till i slutet av andra världskriget när Storbritannien samlade forskare för att effektivisera strategi och taktik [1]. Efter kriget tog utvecklingen mera fart och sedan dess har matematisk optimering blivit en central del av så kallad operationsanalys, det vill säga formell analys för strategiskt beslutsfattande. George Dantzig, som arbetade för amerikanska flygvapnet under andra världskriget och senare formulerade simplexmetoden (se teoriavsnittet 2.3), har vid två tillfällen [2, 3] beskrivit denna bakgrund i större detalj. Optimering kan beskrivas som att på ett så effektivt sätt som möjligt använda begränsade resurser för att möta vissa behov. Det handlar om att maximera eller minimera någon målfunktion. Exempelvis kan målet vara att maximera en vinst, maximera antalet produkter som kan fraktas och så vidare. Exempel på minimeringsproblem är minimering av kostnader, minimering av antalet anställda eller minimering av körda kilometer. Williams [4] tar upp klassiska och tydliga exempel på när optimering används. Han behandlar problem som uppstår vid fabriksplanering, personalplanering, ruttplanering, tillverkningsplanering och dylikt. Större scheman där många villkor skall uppfyllas blir ofta beräkningsmässigt komplicerade. Lösningstiden för omfattande schemaläggning växer snabbt med problemets storlek, vilket gör avvägningen mellan generalitet och funktionalitet svår [4]. En generellt formulerad modell är i regel mer svårlöst, men har större flexibilitet. Ett sätt att minska lösningstiden är att först dela upp ett större problem i mindre delproblem, som sedan löses separat i sekvens. Enligt Borndörfer, Löbel och Weider [5] kräver omfattande problem stor datorkapacitet. Ilitteraturenåterfinnsmångaexempelpåolikasättattformuleraochlösaschemaläggningsproblem. Burke och Petrovic [6] noterar att sådana problem ofta har lösts framgångsrikt, men att inga generella slutsatser finns gällande vilken metod som lämpar sig bäst i olika situationer. För en överblick över olika typer av schemaproblem och lösningsmetoder hänvisas till Schaerf [7] som går igenom både deterministiska och stokastiska algoritmer, inklusive heuristiska sådana (baserade på mänsklig analys av problemet). 1.1 Bakgrund: schemaläggning på ridskolan i Billdal Billdals Ridklubb driver en ridskola med drygt 600 elever, alltifrån totala nybörjare till erfarna ryttare som tar hopp- eller dressyrlektioner. Omkring 40 hästar och 10 lärare ska tillsammans täcka de skilda behov som dessa elevgrupper har. Under sommarhalvåret kan mycket av undervisningen ske utomhus, men i praktiken måste ridskolans schema konstrueras så att alla lektioner får plats inne i ridhuset när vädret inte inbjuder till utomhusaktivitet. Schemaläggningsproblemet vid ridklubben kan sägas bestå av flera delar: att bestämma vilka lektioner som ska hållas vid olika tider, vilka lektionstider eleverna ska tilldelas, vilka hästar som ska användas vid dessa lektioner och vilka lärare som ska leda lektionerna. Dessa val ska göras under vissa begränsningar, till exempel när elever och lärare är tillgängliga, hur många lektioner hästarna orkar per dag och så vidare. Schemats olika delar är kopplade till varandra eftersom vissa val omöjliggör andra. Uppenbara exempel på detta är att människor och djur bara kan vara på en plats samtidigt och att två lektioner inte kan hållas i samma lokal på samma tid. Mera komplicerade samband uppstår exempelvis för att olika hästar lämpar sig för olika typer av lektioner. Om många lektioner av samma typ planeras i följd kan detta resultera i hårda arbetspass för vissa hästar. Idagslägetgörsallschemaläggningpåridskolanmanuellt.Eleverdelasinefterkunskapsnivå i grupper, typiskt med elever i varje grupp. Schemat pusslas sedan ihop så att tiderna passar för både elever och lärare. För hästarnas del går det att göra ett basschema, men detta måste modifieras från vecka till vecka eftersom hästar kan vara ur drift eller ha nedsatt kapacitet på grund av skada eller sjukdom. 1

10 1.2 Syfte och avgränsningar Syftet med detta projekt är att kartlägga, modellera och optimera schemaläggningen på Billdals ridklubb. Modellen ska vara så generell att den kan tillämpas på liknande schemaläggningsproblem vid andra ridklubbar. Resultat av optimeringen ska ligga till grund för en bedömning av de praktiska möjligheterna att ta hjälp av datorbaserade optimeringsmetoder vid ridklubbar. Vissa slutsatser gällande schemaläggningen i dagsläget bör också kunna dras utifrån de optimeringsexperiment som kan göras med modellen. Avsikten är inte att tillverka en färdig schemalösning för detta specifika problem, inte heller att den fullständiga modellen skall vara så generell att den är direkt applicerbar på andra schemaläggningsproblem. Kriterierna för schemat skall formuleras linjärt och målfunktionerna skall vara linjära eller kvadratiska. 1.3 Metod För att förstå problemet på ridskolan och samla in nödvändiga data utfördes studiebesök med intervjuer, och kontakt hölls sedan med personal vid ridskolan via e-post. En detaljerad lista över de kriterier som finns för schemat bekräftades av personalen och låg sedan till grund för modellen som använts. Litteraturstudier om matematisk modellering av schemaläggningsproblem gjordes parallellt för att få en bredare uppfattning om ämnet. Vidare utfördes litteraturstudier för att inhämta nödvändig teoretisk kunskap inom matematisk modellerings- och optimeringslära (avsnitt 2). En linjär modell har byggts för att motsvara de kriterier som specificeras i problembeskrivningen (se avsnitt 3). Programvarorna AMPL och CPLEX har använts för att lösa optimeringsproblemet. En närmare beskrivning av dessa programvaror och bakomliggande optimeringsteori återfinns i teoriavsnittet (se avsnitt 2). Dessutom har en heuristisk lösningsmetod tagits fram för jämförelse med lösningar från AMPL och CPLEX. 1.4 Sammanfattning av rapportens innehåll Efter denna inledning följer ett teoriavsnitt som introducerar viktiga begrepp inom optimering, särskilt linjär programmering och heltalsprogrammering. Stora delar av rapporten går att förstå utan att vara bekant med den teori som presenteras nedan och i de fall där den teoretiska bakgrunden är viktig hänvisas till lämpliga teoriavsnitt. Iavsnitt3redogörvimerutförligtförschemaläggningsproblemetsomintroducerasovan, och hur ett optimeringsproblem kan definieras med hjälp av ett kvalitetsmått för schemat. Avsnitt 4 ägnas åt en beskrivning av hur schemaläggningsproblemet formulerats som en uppsättning linjära ekvationer och olikheter och heltalskrav på variabler, samt hur det linjära problemet sedan lösts med datorverktyg. En heuristisk lösningsmetod för problemet presenteras också i avsnitt 4. Resultaten av ett antal testkörningar presenteras i avsnitt 5. Utgående bland annat från dessa resultat följer en allmän diskussion om möjliga lösningsmetoder för detta och andra schemaläggningsproblem i avsnitt 6. 2

11 2 Teori Idettateoriavsnittbeskrivsvanligenförekommandetermerinomoptimeringslära.Avsnittet börjar med en kort introduktion till matematisk modellering och nyttan av denna. Sedan följer en beskrivning av varför konvexa och linjära problem är särskilt intressanta. En framstående metod för att lösa problem av denna typ presenteras efter detta. Ett avsnitt ägnas därefter åt heltalsprogrammering och lösningsmetoder för sådana modeller. Till sist beskrivs heuristiska metoder och använda datorverktyg för matematisk programmering. 2.1 Modellering och matematisk programmering Inom vetenskap förekommer modeller av alla möjliga slag. En modell i matematisk bemärkelse är en förenklad beskrivning av ett system eller en företeelse. Ett forskningsområde där matematisk modellering är en av grundstenarna är så kallad operationsanalys. Inom detta område används matematiska modeller till stöd vid strategiskt beslutsfattande. Dessa modeller antar en relativt abstrakt form för att beskriva verkligheten på ett ändamålsenligt vis. Tanken med operationsanalys är att en modell bestående av matematiska relationer som till exempel ekvationer, olikheter och logiska samband skall ha motsvarigheter i verkligheten, som till exempel fysiska begränsningar och konsekvenser av beslut [4]. Enligt Williams [4] fyller en matematisk modell oftast något eller några av följande syften: (i) det faktiska byggandet av modellen avslöjar samband vilka annars inte hade varit uppenbara; (ii) möjligheten att analysera ett problem matematiskt kan ge förslag till beslut och handling som annars inte upptäckts; (iii) att frikoppla något från verkligheten ger möjligheten att kunna experimentera med det utan allvarliga konsekvenser, eller allt för höga kostnader. Inom operationsanalys används modeller för att optimera exempelvis utnyttjandet av en resurs. Kvalitetsmåttet på nyttjandet, det vill säga det som skall maximeras eller minimeras, kallas modellens målfunktion. De förutsättningar under vilka målfunktionen är giltig kallas bivillkor. Bivillkoren är en uppsättning begränsningar som tillsammans beskriver ett område inom vilket lösningen till problemet tillåts ligga. Detta område kallas problemets tillåtna område. Förattformuleraochlösaenmodellanvändsmatematiskprogrammering.Williams betonar att när det talas om matematisk programmering menas något annat än programmering i en datormiljö. Matematisk programmering har snarare betydelsen programmering ibemärkelsen planering,ochharalltsåintenödvändigtvisnågotmeddatorerattgöra[4]. Metoder för lösning av matematiska programmeringsproblem är dock anpassade för att lösas med datorer. I nästa avsnitt ges en matematisk förklaring till varför programmeringsproblem med konvexa tillåtna områden är särskilt intressanta. 2.2 Konvexa problem En konvex mängd är en mängd i vilken ett rät linje mellan två godtyckligt valda punkter i mängden helt och hållet ligger inuti mängden. En funktion är konvex om området ovanför funktionens graf är en konvex mängd. Med andra ord är en funktion konvex om det gäller, för vilka två punkter x 1 och x 2 som helst i funktionens definitionsmängd samt för alla t (0, 1), att f(tx 1 +(1 t)x 2 ) tf(x 1 )+(1 t)f(x 2 ). Funktionen är istället konkav om den omvända olikheten gäller. Ett matematiskt programmeringsproblem kallas konvext om det avser att minimera en konvex funktion över en konvex mängd [4]. Problemet är också konvext om det avser att maximera av en konkav funktion över en konvex mängd. En fundamental egenskap hos konvexa problem är att om en optimal lösning existerar så är denna en globalt optimal lösning. För ett konvext problem innebär denna egenskap att om det visas att en lösning är ett lokalt optimum, så är lösningen också ett globalt optimum. 3

12 Ett intressant område inom optimering består av de modeller vars målfunktion och bivillkor kan beskrivas av linjära ekvationer och olikheter [4]. Utifrån definitioner inses att problem som beskrivs av linjära begränsningar och en linjär målfunktion är konvexa. Problem av denna typ modelleras med så kallad linjärprogrammering (LP, linear programming). Linjära problem har tillägnats särskilt mycket intresse historiskt jämfört med icke-linjära problem eftersom linjära problem i regel är lättare att lösa [4]. Det finns många modelleringsproblem för vilka bivillkoren kan uttryckas linjärt men den resurs som skall optimeras bättre beskrivs med ett icke-linjärt uttryck. Det finns till exempel många fall då en kvadratisk målfunktion är bättre lämpad än en linjär approximation [4]. Problem med kvadratisk målfunktion och linjära bivillkor kallas kvadratiska programmeringsproblem (QP, quadratic programming). Många av de metoder som används för att lösa linjära problem kan anpassas till att lösa konvexa problem med en konvex kvadratisk målfunktion [4]. 2.3 Linjärprogrammering och simplexmetoden Av alla tänkbara optimeringsproblem är många svåra eller omöjliga att beskriva med linjära modeller. Om det är möjligt att beskriva ett verkligt problem linjärt utan att göra allt för grova approximationer finns dock potentiellt mycket att vinna enligt Williams [4]. Fördelen är att problemets struktur då kan utnyttjas för att lösa det på ett effektivt sätt. Den vanligaste metoden för att lösa linjära programmeringsproblem är den så kallade simplexmetoden [8]. Följande beskrivning av simplexmetoden är baserad på Nash [8] och likheter i såväl tankegång som beteckningar förekommer. Simplexmetoden Simplexmetoden utvecklades under 1940-talet då linjärprogrammering blev populärt för att utföra ekonomiska och militära beräkningar. Andra metoder utvecklades också men över tid har de flesta av dessa fått ge vika för simplexmetodens överlägsna effektivitet [8]. Även om problem idag är mycket större och beräkningskraften likaså har simplexmetoden utvecklats och anpassats till dagens behov. Det är inte förrän på senare tid som egentliga alternativ till simplexmetoden har trädit fram [8]. Ett system av linjära begränsningar beskriver en konvex polyeder och därför gäller att det tillåtna området till samtliga linjära programmeringsproblem är konvexa mängder. En viktig egenskap hos konvexa polyedrar är att dess extrempunkter består av polyederns hörnpunkter. Detta innebär att den optimala lösningen till ett linjärt programmeringsproblem, om den existerar, finns bland den tillåtna polyederns hörnpunkter. Att endast betrakta dessa punkter är simplexmetodens grundtanke. Dessutom gäller för konvexa problem att en lokalt optimal lösning också är en globalt optimal lösning. Det räcker alltså att visa att en lösning till ett linjärt problem är lokalt optimal för att den också visats vara globalt optimal. Ett LP-problem skrivs på standardform minimera z = c T x, då Ax = b, (1) x 0, där b 0, c n, b m +, A m n och x n.härkallasmatrisena för bivillkorsmatris. Det finns regler för att konvertera ett godtyckligt linjärt problem till ett linjärt problem på standardform. Ett rimligt antagande är att matrisen A har full radrang. I annat fall är problemet antingen feldefinierat eller så beskriver flera villkor samma begränsning. I det senare fallet kan problemet reduceras så att antagandet gäller utan att problemets lösning eller mängden av tillåtna lösningar förändras [8]. Simplexmetoden är en iterativ metod som löser linjära programmeringsproblem på standardform. Då metoden används för att lösa icke-degenererade problem görs förflyttningar mellan hörnpunkter till den tillåtna polyedern. Degenererade problem uppstår då flera villkor i ett problem beskriver samma begränsning. Om en vektor x uppfyller likheterna i ett LP-problem på standardform kallas denna baslösning om det dessutom gäller att de kolonner i bivillkorsmatrisen som multipliceras med 4

13 icke-noll-elementen i vektorn x är linjärt oberoende. Punkten x är en tillåten baslösning om det dessutom gäller att x 0, detvillsägaattpunktenuppfyllersamtligavillkorförproblemet. Baslösningar erhålls genom att fixera n m element i x-vektorn för det ursprungliga problemet vid värdet noll och sedan lösa den resterande delen av ekvationssystemet Ax = b. De variabler som löses ut kallas basvariabler och de som satts till noll kallas icke-basvariabler. De tillåtna baslösningarna till ett linjärt problem är extrempunkterna till den tillåtna polyedern. Vektorn x kallas en optimal tillåten baslösning om dess målfunktionsvärde är lägre än eller lika med målfunktionsvärdet för alla tillåtna baslösningar till det linjära programmet. Simplexmetoden arbetar genom att utifrån en given första tillåten baslösning undersöka huruvida denna lösning är optimal. Om den inte är optimal väljer metoden en tillåten riktning längs vilken målfunktionen minskar och en förflyttning görs mot en tillåten baslösning längs denna riktning. Denna procedur upprepas sedan. Simplexmetoden gör förflyttningar från en tillåten baslösning till en närliggande tillåten baslösning genom att ta bort och lägga till en basvariabel i taget. Geometriskt innebär detta att flytta sig längs kanterna till den tillåtna polyedern (se figur 1). Figur 1: Konceptskiss över simplexmetoden i två dimensioner. Med metoden genomsöks den tillåtna polyederns extrempunkter, det vill säga dess hörnpunkter. De streckade linjerna definierar problemets tillåtna område. Punkterna är de tillåtna baslösningarna. Idetgenerellafalletkansimplexmetodenbeskrivaspåföljandevisförlösningavettlinjärt problem på standardform (1). Egenskaperna hos en baslösning, tillsammans antagandet att matrisen A har full radrang, gör det möjligt att dela upp komponenterna x ikomponenternax N och x B.Vektornx B består av basvariablerna vars koefficienter i bivillkorsmatrisen A motsvarar den inverterbara basmatrisen B. Vektornx N består av alla icke-basvariabler, vilka har värdet noll. Om x är tillåten baslösning med variabler ordnade så att xb x =, där x B är en vektor med ingående basvariabler och x N är den nuvarande (just nu nollvektorn) vektorn av icke basvariabler, kan målfunktionen skrivas som: x N z = c T Bx B + c T N x N, där koefficienterna för basvariablerna finns i c B och koefficienterna för icke-basvariablerna finns i c N.Bivillkorenkandåskrivassom vilka kan uttryckas som Substitution av x B iformelnförz ger att Bx B + Nx N = b, x B = B 1 b B 1 Nx N. (2) z = c T BB 1 b +(c T N c T BB 1 N)x N. 5

14 Om y definieras som y =(c T B B 1 ) T = B T c B kan z uttryckas som z = y T b +(c T N y T N)x N. De aktuella värdena på basvariablerna och målfunktionen fås genom att sätta x N =0,det vill säga x B = ˆb = B 1 b och ẑ = c T BB 1 b. För att underlätta undersökningen av hur målfunktionen påverkas av icke-basvariablerna betecknas ĉ j som elementet i vektorn ĉ T N (ct N ct B B 1 N) motsvarande vektorn x j.koefficienten ĉ j kallas den reducerade kostnaden för x j.målfunktionenkanskrivassom z =ẑ +ĉ T N x N. Om icke-basvariabeln x j tillskrivs ett noll-skiljt-värde kommer målfunktions värde alltså att förändras med ĉ j. För att undersöka huruvida en lösning är optimal studeras vad som händer med målfunktionen om värdet på var och en av icke basvariablerna tillåts öka från noll. Om ĉ j > 0 kommer målfunktionens värde att öka. Om ĉ j =0kommer ingen förändring ske och om ĉ j < 0 kommer målfunktionens värde att minska. Det vill säga att om ĉ j < 0 för något j kan målfunktionens värde förbättras om x j ökas från noll. Om den nuvarande basen inte är optimal kan en variabel x t,sådanattĉ t < 0, väljasattingåibasen.dennavariabelkallas en inkommande variabel. När en ny inkommande variabel valts måste det undersökas hur mycket denna tillåts öka utan att begränsningarna på problemet bryts. Detta bestämmer huruvida en variabel skall utgå ur basen. Basvariablerna bestäms enligt (2) och förutom x t har alla element i vektorn x N värdet noll. Därför är x B = ˆb Âtx t där Ât = B 1 A t, A t är den t:te kolonnen av A och ˆb = B 1 b.ettelementivektornx B kan skrivas som (x B ) i = ˆb i â i,t x t där â i,t är elementen i  t.omâ i,t > 0 kommer (x B ) i att minska då den inkommande variabeln x t ökar och (x B ) i blir lika med noll då x t = ˆb i /â i,t.omâ i,t < 0 kommer (x B ) i öka och om â i,t =0är (x B ) i oförändrad. Variabeln x t kan ökas så länge alla övriga variabler förblir icke-negativa, det vill säga tills den når värdet x t = min 1 i m ˆbi â i,t :â i,t > 0 Det minsta värdet av ovanstående uttryck bestämmer de nya icke-basvariabeln (x B ) i och därmed också den nya tillåtna baslösningen, med x t som den nya inkommande basvariabeln. Tilldelningarna x B x B Ât x t och ẑ ẑ +ĉ t x t bestämmer värdet av basvariablerna samt det nya värdet av målfunktionen i den aktuella basen. Variabeln x t tilldelas värdet x t och de kvarvarande icke-basvariablerna förblir noll. En av basvariablerna får värdet noll och utgår ur basen. Om â i,t 0 för alla värden på i kommer ingen av basvariablerna minska då x t ökar från noll. Alltså kan x t göras godtyckligt stort. Detta betyder att målfunktionens värde kommer minska utan undre gräns då x t vilket innebär att problemet har en obegränsad optimallösning. Enligt principerna ovan kan en tydlig bild av simplexalgoritmen ges. Genom att starta från en basmatris B motsvarande en tillåten baslösning x B = ˆb = B 1 b 0 itererar simplexmetoden genom följande steg. 1. Optimalitetstest; Beräknavektorny T = c T B B 1.Beräknakoefficienternaĉ T N = ct N y T N.Omĉ T N 0 är den nuvarande basen optimal. Annars, välj en variabel x t sådan att ĉ t < 0 som en ny inkommande basvariabel.. 6

15 2. Stegtagande; BeräknaÂt = B 1 A t,bivillkorskoefficienternamotsvarandedennyabasvariabeln. Hitta ett index s som uppfyller ˆbs ˆbi = min :â i,t > 0. â s,t 1 i m â i,t Variabel x S skall lämna basen och pivot-elementet är â s,t.omâ i,t 0 för alla i är problemet obegränsat. 3. Uppdatering; UppdaterabasmatrisenB och vektorn med basvariabler x B. Genom att upprepa ovanstående iterationssteg erhålls den lokalt optimala lösningen, alltså den globalt optimala lösningen. Simplexmetoden är en effektiv metod för att lösa linjära program och används av de flesta moderna optimeringsalgoritmer för lösning av linjära problem [8]. Metoden ställer dock krav på att det undersökta problemet är linjärt vilket inte alltid är fallet. Vid modellering av vissa typer av problem krävs icke-kontinuerliga variabler. Det finns en rad sätt att hantera dessa variabler. Nedan följer en beskrivning av några metoder som ofta kompletterar simplexmetoden vid lösning av denna typ av problem. 2.4 Heltalsprogrammering och branch-and-bound-algoritmen Heltalsprogrammering (IP, integer programming) behandlarproblembeståendeavheltalsvariabler. En modell som innehåller en blandning av kontinuerliga variabler och heltalsvariabler behandlas av blandad heltalsprogrammering (MIP, mixed integer programming). Vanligtvis är problem med heltalsvariabler svårare att lösa än linjära problem av samma storleksordning [4]. Inom operationsanalys är heltalsvariabler ofta [4] begränsade till att anta värdena 0 eller 1. Detta kan till exempel motsvara ett ja-eller-nej-beslut. Metoder för att lösa generella heltalsproblem anpassas utan större svårigheter till att lösa rena eller blandade 0 1-problem [9]. Det finns en uppsjö av sätt att lösa MIP-problem men den metod som används mest är den så kallade branch-and-bound-metoden [9], som initieras med att att heltalskraven på problemet släpps och problemet löses som ett LP-problem. Detta förfarande kallas LP-relaxering och utnyttjar det faktum att LP-problem vanligen är lättare att lösa än MIP-problem. Om den optimala lösningen av LP-relaxeringen av ett MIP-problem är en heltalslösning är detta också den optimala lösningen till heltalsproblemet. I Williams [9] beskrivs hur branch-and-boundalgoritmen används för att lösa ett typiskt IP-problem. Under nästa rubrik finns en generalisering av denna beskrivning som illustrerar teorin bakom branch-and-bound-algoritmen. Branch-and-bound-algoritmen Branch-and-bound-metoden (BB, förgrena och avgränsa ) löser först LP-relaxeringen av ett IP-problem för att sedan återinföra heltalskraven på variablerna steg för steg. För ett IP med två variabler minimera z = c T x, då Ax = b, x 0, där b 0, c 2, b 2 +, A 2 2, x och x =(x 1,x 2 ),kanbb-metodenseutpå följande sätt. En nod är en instans av problemet, nämligen LP-relaxeringen av IP-problemet, kompletterat med extra begränsningar som successivt införts i överordnade noder. Dessa begränsningar beskrivs nedan. I startnoden löses LP-relaxeringen av IP-problemet. Detta ger lösningen x 1 = k 1,x 2 = k 2,z = d. Sedan väljs godtyckligt en variabel vars värde inte är ett heltal och utan att tappa generalitet införs nya villkor på denna variabel. Om x 1 valts införs villkoren x 1 N och x 1 N +1, (3) 7

16 ivarderaavtvånyanoder.observeraattdessavillkorinteutesluternågratillåtnavärden eftersom värdena mellan N och N +1 alla är icke heltal. Däremot utesluts den nuvarande lösningen genom att välja N = k 1. Införandet av villkoren (3) kan ses som en förgrening i ett träd av delmodeller där olika villkor gäller i de olika grenarna. Efter denna förgrening väljs en av de underordnade noderna och processen upprepas från denna nod. Det vill säga att LP-relaxeringen av orginalproblemet plus de extra villkor som gäller i denna nod löses och en förgreningsvariabel väljs bland de variabler som har icke-heltaliga värden. Två grenar skapas där denna lösning utesluts med hjälp av villkor på formen (3). Detta ger upphov till ett träd likt det som illustreras i figur 2. 1 x 1 k 1, x 2 k 2, zd x 1 k 1 x 1 k 1 2 x 1 k 2 1, x 2 k 2 2, zd 2 3 x 1 k 1 3, x 2 k 2 3, zd 3 x 2 k 2 2 x 2 k x 1 k 4 1, x 2 k 4 2, zd 4 5 x 1 k 1 5, x 2 k 2 5, zd 5 Figur 2: Schematisk bild över ett branch-and-bound-träd. Noderna är numrerade 1 5. De extra villkor som successivt införs vid förgrening står skrivna vid pilarna och är villkor på formen (3). Observera att N = k 1 ideinfördavillkoren. Märk väl att det finns en rad val att göra i denna process. Valet av förgreningsvariabel, ordningen i vilken LP-relaxeringarna i noderna löses samt vilken nod som undersöks efter att en förgrening gjorts kan väljas slumpmässigt. Alternativet är att använda någon regel för att göra dessa val, i hopp om att nå en bra lösning snabbare. Allt eftersom noderna utvecklas kan en rad saker inträffa. Till exempel kan införandet av ett nytt villkor göra att instansen saknar lösning. Grenen behöver då inte utvecklas vidare. Noden sägs då vara uttömd. Då en heltalslösning erhålls i en nod finns det ingen anledning att undersöka den grenen vidare. Detta eftersom införandet av ytterligare villkor aldrig kan förbättra målfunktionens värde. Värdet på den bästa funna heltalslösningen vid en viss tidpunkt fungerar som en gräns för alla andra noder. Om värdet av målfunktionen av LP- 8

17 relaxeringen i någon nod är sämre än detta värde, är det inte nödvändigt att utveckla denna vidare. Den sägs då vara uttömd. Skillnaden mellan en heltalslösning och motsvarande LPrelaxerings lösning kallas heltalsgap och kan användas som ett mått på hur nära optimal en heltalslösning är. Då alla grenar följts till sitt slut, det vill säga då de nått en heltalslösning eller konstaterats vara ointressanta, har den optimala lösningen hittats. Det finns dock inga garantier för att ett träd skall vara uttömligt. Det vill säga att det finns fall då ett oändligt antal noder kan genomsökas utan att en giltig lösning hittas. Detta inträffar dock endast om det tillåtna området för problemet är obegränsat. Notera att ett infört villkor gäller i alla noder under noden där det införts i trädet. Om branch-and-bound-algoritmen används på ett IP-problem där värdena på variablerna begränsas till att anta 0 eller 1 blir trädet enklare. Varje gren fixerar då värdet av en variabel iallanoderidengrensomdefinierasavdennoddärvillkoretinförts. Lösningsrummet till ett linjärt problem i två dimensioner kan illustreras som i figur 3. Detta kan till exempel vara LP-relaxeringen av ett IP-problem. De tillåtna heltalslösningarna är de heltalspunkter som ligger inne i polyedern. Det minsta konvexa område som innesluter dessa punkter kallas problemets konvexa hölje av tillåtna heltalslösningar. Detta syns som de prickade linjerna i figur 3. I två dimensioner är gränserna till området räta linjer och i högre dimensioner är de hyperplan. Gränserna till det konvexa höljet kallas fasetter och de villkor som ger upphov till dem kallas fasettdefinierande begränsningar. Dessa kan ibland vara svåra att beräkna men ibland kan de approximeras av begränsningar som skär bort en optimal lösning till LP-relaxeringen, men som inte är fasetter [9]. Dessa begränsningar kallas skärande plan (cutting planes). x 2 Figur 3: Det konvexa höljet (prickat) av lösningsrummet till LP-relaxeringen av ett IP-problem (heldraget) i två dimensioner, samt ett skärande plan till LPrelaxeringen (streckat). Punkterna markerar heltalslösningar. x 1 Att använda denna typ av bivillkor i kombination med BB-metoden kan förväntas reducera antalet noder att genomsöka. Ett vanligt förekommande problem är dock att det ofta finns väldigt många fasetter till ett IP-problem. I praktiken kan dessa begränsningar (eller andra skärande plan) endast användas iterativt för att utesluta nuvarande icke-heltalslösningar [9]. Detta tillvägagångssätt kan kombineras med BB-metoden genom att applicera bivillkoren på instanserna av IP-problemet i de olika noderna i trädet. Metoden kallas då branch-and-cut. 2.5 Heuristiska lösningsmetoder Iverklighetenämnaroptimeringoftaundersökahurenradbeslutkankombinerasföratt det totala resultatet skall bli så bra som möjligt. Detta leder i många fall, som diskuteras iavsnitt2.4,tillproblemmedvariablerbegränsadetillvärdena1eller0,vilkasvararpå en ja-nej fråga gällande ett visst beslut. Ett problem med n stycken oberoende variabler av denna typ har totalt 2 n möjliga utfall. Då ett verkligt problem skall undersökas kan antalet beslut vara precis så många. Detta gör att det ibland är omöjligt att undersöka alla tänkbara lösningar eftersom antalet kandidater helt enkelt är för stort. Branch-and-bound-metoden, som diskuteras i avsnitt 2.4, är ett sätt att undvika att söka igenom alla tänkbara lösningar. 9

18 En viktig egenskap hos BB-metoden är att den kan garantera optimalitet av en funnen lösning. Om det anses ta orimligt lång tid att finna en optimal lösning till ett problem, kan det ibland vara aktuellt att leta efter en suboptimal, men ändå godtagbar lösning. Optimeringsproblem där en suboptimal lösning är tillräcklig kallas semioptimering [10]. Pearl [10] poängterar att det i många verkliga fall är nödvändigt att använda sig av semioptimering. Vidare menar han att en noggrann avvägning måste göras mellan krav på hur nära optimal lösningen skall vara och hur lång lösningstid som är godtagbar. Fördelen med semioptimering är att fokus skiftas från att verifiera optimalitet av en funnen lösning till att plocka fram godtagbara lösningar så effektivt som möjligt. Heuristik är kriterier och metoder som väljer det alternativ, som bedöms vara det effektivaste sättet att nå ett visst mål [10]. Heuristiska metoder är metoder som förlitar sig på heuristiska avväganden för att finna en godtagbar lösning. Heuristiska metoder kan se ut på många sätt; den gemensamma nämnaren är att de bygger på kunskap om problemets struktur. Branch-and-bound-metoden kan till exempel utnyttja heuristiska regler för att finna en bra lösning snabbare. En heuristisk metod för att hitta den kortaste vägen mellan en rad destinationer kan till exempel vara att hela tiden förflytta sig till den obesökta destination som ligger närmast den nuvarande platsen [10]. I detta fall fattas det heuristiska beslutet baserat på kunskap om vilken destination som ligger närmast, samt antagandet om att en kort sträcka i ett närsynt perspektiv förhoppningsvis leder till kortare sträcka totalt. Detta ger sannolikt inte en optimal lösning till problemet, men är oftast bättre än att irra runt planlöst [10]. Det finns inga generella heuristiska metoder för att lösa optimeringsproblem. Metoder måste istället ofta specialkonstrueras för specifika problem. 2.6 Modelleringsverktyg för lösning av linjära problem Linjära modeller av verkliga problem kan innehålla stora mängder variabler och villkor. Dessa behöver struktureras för att tillåta översättning mellan den människa som formulerat dem och den dator som skall lösa dem. I denna sektion beskrivs hur de programvaror som använts iprojektetinteragerar.dessutomgesenkortbeskrivningavdeolikaprogramvarorna. Det mest använda formatet för att beskriva LP-problem så att optimeringsverktyg kan tolka dem är det så kallade MPS-formatet (mathematical programming system) [4]. Att formulera ett stort problem i detta format är ofta inte överskådligt och därför används modelleringsprogram för att sköta översättningen mellan matematisk modell och MPS-format. I detta projekt används AMPL för att formulera stora linjära heltalsproblem och optimeringslösaren CPLEX används för att lösa dem. I figur 4 beskrivs kopplingen mellan matematisk modellering och lösning av ett IP-problem. Data Matematisk modell AMPL MPS CPLEX Lösning Figur 4: Strukturen mellan de olika programvarorna som används i detta projekt AMPL Modelleringsspråket AMPL (A Mathematical Programming Language) designadesochimplementerades första gången 1985 [11]. AMPL används för att formulera matematiska modeller iendatorpåettsättsomärintuitivtföranvändaren.enligtutvecklarna[11]ärenavde största fördelarna med AMPL att uttrycken som språket hanterar i hög grad liknar de vanliga algebraiska motsvarigheterna. AMPL innehåller inte några matematiska optimeringsmetoder. Verktyget består av ett gränssnitt som förmedlar kontakten mellan den matematiska modell 10

19 som användaren formulerar, de data som definieras av en probleminstans och den lösningsmetod som används. Den intuitiva arbetsgången med AMPL beskrivs enligt följande procedur: [11] (i) formulering av den matematiska modellen i generell form; (ii) inhämtning av data som representerar en viss instans av problemet; (iii) generering av målfunktion och bivillkor i MPS-format från modellen och data; (iv) lösning av problemet genom anrop av en extern lösningsprogramvara; (v) presentation av resultatet och analys av användaren; (vi) eventuell förfining av problemet och upprepning av proceduren CPLEX CPLEX är ett verktyg för att lösa problem inom matematisk programmering. Version 1.0 släpptes av ILOG 1988 och sedan dess har programmet genomgått betydande utveckling [12]. I detta arbete används CPLEX för att lösa problem inom linjär heltalsoptimering men kan också bland annat också lösa vissa problem inom kvadratisk programmering. CPLEX har sitt ursprung i programmeringsspråket C men är idag också delvis uppbyggt av C++, Java,.NET och Python [13]. För att lösa de mest grundläggande problemen inom linjär programmering, där variablerna i målfunktionen är kontinuerliga, använder sig CPLEX främst av metoder baserade på simplexalgoritmer [13]. CPLEX är ett omfattande verktyg och erbjuder användaren möjligheten att anpassa lösningsmetoden för att passa det problem som skall lösas. För lösning av MIP används BB-metoden, heuristiker och generering av skärande plan och fasetter [13] (se avsnitt 2.5 och 2.5). 11

20 3 Problembeskrivning Iavsnitt1.1introduceradevischemaläggningsproblemetpåridskolan.Kortsagtskaschemat passa både elever och lärare utan att hästarna blir överbelastade. I detta avsnitt presenteras problemet mer i detalj, men först följer några ord om hur schemat läggs idag. 3.1 Schemaläggning på ridskolan All schemaläggning på ridskolan sker manuellt. De elever som ansöker om plats på ridskolan har möjlighet att ange tider då de är tillgängliga. Eleverna delas in i grupper och veckoschemat läggs så att tiderna ska passa så många som möjligt. Slutligen erbjuds eleverna en lektionstid som de kan tacka ja eller nej till. För hästarnas del går det att göra ett basschema, men detta måste modifieras från vecka till vecka eftersom hästar kan vara ur drift eller nedsatta på grund av skada eller sjukdom. Idagslägetfinnsettbasschemaförridskolanselevgrupperochderaslektionstider.Närvi hänvisar till ridskolans befintliga schema är det detta lektionsschema för elever som avses, dock inte nuvarande tilldelning av hästar och lärare. I det befintliga schemat finns lektionsplats för 605 elever. Ipraktikenfinnsingastriktareglerförhurschematskaläggas,utanpersonalenavgör själva vad som är tillåten belastning för hästarna, vilka arbetstider som ska gälla för lärarna, och så vidare. För att behandla problemet med matematiska verktyg är det dock nödvändigt att definiera entydigt vad som är tillåtet och inte. För detta ändamål har en lista med kriterier som ställs på schemat formulerats med hjälp från ridskolans personal. Denna lista speglar dock inte perfekt de överväganden som görs i verkligheten, eftersom en människa med rätt erfarenhet kan göra avvägningar och undantag som är svåra eller omständliga att formulera matematiskt. 3.2 Elever Eleverna ska bokas in på tider där de angivit att de är tillgängliga. De bildar grupper så att alla elever i varje grupp har likvärdiga kunskaper. Detta löses genom att lektionstillfällen tilldelas en viss lektionstyp, exempelvis nybörjare,nivå 1 4 eller dressyr,och för varje elev bestäms alltså vilken lektionstyp som ska bokas. Olika lektionstyper pågår olika länge exempelvis är det så kallade ridlekis 30-minuterslektioner, hopplektionerna 60 minuter och övriga lektioner är 45 minuter. Lektionstyperna har också olika antal elever. Typerna presenteras i tabell 1. Tabell 1: Lektionstyperna på Billdals ridskola. Lektionstyp Längd [minuter] Antal elever (min max) Ridlekis Nybörjare Nivå Nivå Nivå Nivå Hoppning Dressyr Vuxna nybörjare Vuxna nivå Vuxna nivå Vuxna nivå Vuxna nivå Hoppning vuxna

21 3.3 Hästar Ridskolans 40 hästar har olika storlek, träningsnivå, personlighet, fysisk kondition och eventuellt ytterligare faktorer som avgör vilka elever de lämpar sig för. För schemaläggningens skull kan dock förhållandet mellan hästar och elever representeras på ett enkelt sätt genom att en lista tas fram för varje häst, som anger vilka lektionstyper som hästen kan delta på. Att en häst tillåts delta vid lektioner av en viss typ innebär alltså även att hästen är lämplig för en typisk elev på denna lektionstyp. Vidare finns det begränsningar i arbetsbelastning för hästarna. Dels finns ett maximalt antal lektioner per dag och häst, dels finns ett tak för antal lektioner i direkt följd. Dessa begränsningar anges individuellt för varje häst. Beroende på lektionstyp varierar också antalet lektioner som kan tillåtas exempelvis kan hästar typiskt gå tre lektioner i rad, men om någon av lektionerna är mer ansträngande (exempelvis hoppning eller nivå 4) tillåts bara två lektioner i rad. 3.4 Lokaler På ridskolan finns i dagsläget plats för två parallella lektioner i ridhuset. Alltså kan aldrig fler än två lektioner pågå samtidigt. 3.5 Lärare På ridskolan finns 10 lärare som delar på veckans lektioner. Varje lektion har en lärare. Dessa är tillgängliga på olika tider och får förstås endast bokas in då de är tillgängliga. I likhet med hästarna finns en gräns för hur många lektioner i följd en lärare kan leda. Den totala arbetstiden bestäms genom att ange ett maximalt antal lektioner per vecka och lärare. 3.6 Ytterligare önskemål Utöver det ovanstående finns flera önskemål gällande schemat, som inte är helt nödvändiga att tillgodose. Vi noterar att den enklaste schemalösningen enligt ovanstående kriterier vore att inte erbjuda några elever plats alls då skulle ju varken lärare eller hästar krävas! Men sådana triviallösningar är förstås ointressanta. Slutsatsen blir att vi vill maximera antalet elever utan att slita ut personal eller hästar. Andra sekundära mål (optimeringsmål) kan vara att fördela arbetet jämnt mellan hästarna, att göra schemat så kompakt som möjligt för lärarna, eller att skapa ett rättvist schema för lärare eller hästar. 13

22 4 Metod Den metod som primärt använts för att lösa schemaläggningsproblemet är linjär heltalsprogrammering (se avsnitt 2). För detta ändamål har en linjär modell konstruerats för att motsvara de kriterier som specificeras i problembeskrivningen ovan (avsnitt 3). Optimeringsproblemet har implementerats i AMPL och lösts med CPLEX (se avsnitt 2.6.1). Dessutom har en heuristisk lösningsmetod tagits fram för jämförelse av lösningar och beräkningstider med den linjära heltalsmodellen. 4.1 Varför linjär heltalsoptimering? Att optimera ridskolans schema kan vara svårt av olika anledningar. Ett grundläggande problem är att uppgiften blir svåröverskådlig eftersom drygt 600 elever och 40 hästar ska behandlas individuellt, och hänsyn måste tas till många samverkande faktorer. Det kan vara svårt att bedöma hur stora förbättringar som är möjliga jämfört med ett givet schema, det vill säga hur väl en viss lösning mäter sig med den som är optimal i något avseende. Med detta som bakgrund kan konstateras att linjär optimering har en klar fördel jämfört med många andra metoder. Lösningsalgoritmen för linjära heltalsproblem bygger på att tillfälligt släppa heltalskriterierna och istället lösa ett kontinuerligt problem (se avsnitt 2.4). Därmed kan en undre gräns för målfunktionens värde bestämmas, med vilken existerande heltalslösningar kan jämföras. Skillnaden heltalsgapet mellandenbästaheltalslösningen och denna undre gräns kan användas som ett mått på hur långt ifrån optimalitet denna heltalslösning är. På så vis ger lösningsmetoden oss i teorin en bättre översikt över problemet. En annan fördel med linjär heltalsprogrammering är att branch-and-bound-metoden garanterar att globalt optimum hittas (se teoriavsnittet 2.4 för en mer utförlig beskrivning). Tanken med den lösningsmetod som använts är alltså att specificera alla indata och sedan optimera ridskolans schema i sin helhet för att nå global optimalitet. 4.2 Lösningsgång och modellens utformning IallmänhetharmodellenutformatsförattkunnaåterskapaschemakriteriernapåBilldals ridskola, men i flera fall är den mer generellt formulerad, vilket möjliggör lösning av andra, liknande problem. Dock måste avgränsningar göras för vilka beslut som ska fattas av människor och vad som ska ingå i optimeringen. De avgränsningar som har gjorts presenteras kortfattat nedan. Varje lektion ska tilldelas en tid och plats, under begränsningen att alla ska få plats i ridhuset. I dagsläget finns plats för två parallella lektioner, men detta kan förstås variera och behöver därför formuleras mer allmänt. Vi har antagit att indatan till problemet innehåller en lista över tidsblock som är konstruerad så att lokalerna räcker till, det vill säga så att högst två tidsblock pågår samtidigt i detta fall. Ett tidsblock definieras av start- och sluttid samt veckodag. Ipraktikenärdetganskaenkeltattdelainveckoschematitidsblock,eftersomdagens första lektion bör starta i sådan tid så att eleverna, typiskt skolungdomar, har slutat skolan för dagen. Därefter fylls schemat på med tidsblock separerade av korta pauser för häst- och gruppbyte. De flesta lektioner är 45 minuter långa, och därför behöver det inte bestämmas på förhand vilka lektionstyper de olika tidsblocken ska ha. Undantag är exempelvis hoppningslektionerna som tar 60 minuter och behöver längre tidsblock. Förslagsvis placeras ett fåtal 60-minutersblock ut i schemat för att möjliggöra hoppningslektioner. Lektioner får placeras ut på tidsblock som är minst så långa som lektionen, vilket medför att andra lektioner kan placeras ut på tomma 60-minutersblock. Skillnaden i ett sådant fall blir att en ovanligt lång paus uppstår mellan två lektioner i schemat. En annan möjlighet som utvärderats är att låta tidsblockens placering vara fria variabler för optimering, vilket eventuellt kan leda till att kompaktare, effektivare scheman produceras. Att släppa lektionstiderna fria visade sig dock öka lösningstiden alltför mycket i jämförelse med de förbättringar som eventuellt kan åstadkommas. Slutligen krävs även data för när elever och lärare är tillgängliga, vilka hästar som finns och vilken maxbelastning hästarna har. Vid lösning av schemaläggningsproblemet antas att 14

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler Heltalsprogrammering Speciell användning av heltalsvariabler max z = då c j x j j= a ij x j b i j= x j 0 x j heltal i =,..., m j =,..., n j =,..., n ofta x j u j j =,..., n Oftast c, A, b heltal. Ibland

Läs mer

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin

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

Läs mer

1 Duala problem vid linjär optimering

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

Läs mer

LP-problem. Vårt första exempel. Baslösningar representerar extrempunkter. Baslösningar representerar extrempunkter

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?

Läs mer

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ: Heltalsprogrammering Speciell användning av heltalsvariabler max z = då n c j x j j= n a ij x j b i j= x j 0 x j heltal i =,..., m j =,..., n j =,..., n ofta x j u j j =,..., n Oftast c, A, b heltal. Ibland

Läs mer

Föreläsning 2: Simplexmetoden. 1. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform.

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

Läs mer

1 LP-problem på standardform och Simplexmetoden

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

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

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

Läs mer

Tentamensinstruktioner. Vid skrivningens slut

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

Läs mer

TAOP07/TEN1 OPTIMERINGSLÄRA GRUNDKURS för Y. Antal uppgifter: 7 Uppgifterna är inte ordnade efter svårighetsgrad.

TAOP07/TEN1 OPTIMERINGSLÄRA GRUNDKURS för Y. Antal uppgifter: 7 Uppgifterna är inte ordnade efter svårighetsgrad. Matematiska institutionen Optimeringslära TENTAMEN TAOP07/TEN1 OPTIMERINGSLÄRA GRUNDKURS för Y Datum: 27 augusti 2013 Tid: 14-19 Hjälpmedel: Inga Antal uppgifter: 7 Uppgifterna är inte ordnade efter svårighetsgrad.

Läs mer

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet Flöde i nätverk Graf: G = (N, B) Variabeldefinition: x ij = flöde i båge (i, j). Bågdata för båge (i, j): c ij : flödeskostnad per enhet. u ij : övre gräns för flödet. l ij : undre gräns för flödet. Bivillkor:

Läs mer

Linjärprogrammering (Kap 3,4 och 5)

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

Läs mer

1 Minkostnadsflödesproblem i nätverk

1 Minkostnadsflödesproblem i nätverk Krister Svanberg, april 2012 1 Minkostnadsflödesproblem i nätverk Ett nätverk består av en given mängd noder numrerade från 1 till m (där m är antalet noder) samt en given mängd riktade bågar mellan vissa

Läs mer

Optimeringslära för T (SF1861)

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

Läs mer

Laboration 1 - Simplexmetoden och Modellformulering

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

Läs mer

Lösningar till tentan i SF1861 Optimeringslära, 3 Juni, 2016

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

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR för IT Datum: 16 mars 010 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kaj Holmberg: Kombinatorisk

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 28 maj 2014 Tid: 14.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Optimeringslära Kaj Holmberg

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

Läs mer

Optimeringslära 2013-11-01 Kaj Holmberg

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

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP8/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR Datum: 10 januari 201 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg:

Läs mer

Optimalitetsvillkor. Optimum? Matematisk notation. Optimum? Definition. Definition

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

Läs mer

1 Ickelinjär optimering under bivillkor

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

Läs mer

Föreläsning 6: Nätverksoptimering

Föreläsning 6: Nätverksoptimering Föreläsning 6: Nätverksoptimering. Minkostnadsflödesproblem i nätverk.. Modellering och grafteori.. Simplexmetoden. Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering Minkostnadsflödesproblem

Läs mer

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet. Specialfall av minkostnadsflödesproblemet. Slutsats.

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet. Specialfall av minkostnadsflödesproblemet. Slutsats. Flöde i nätverk Graf: G = (N, B) Variabeldefinition: x ij = flöde i båge (i, j). Bågdata för båge (i, j): c ij : flödeskostnad per enhet. u ij : övre gräns för flödet. l ij : undre gräns för flödet. Bivillkor:

Läs mer

De optimeringsproblem som kommer att behandlas i denna kurs kan alla (i princip) skrivas. 1 2 xt Hx + c T x. minimera

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

Läs mer

1 Kvadratisk optimering under linjära likhetsbivillkor

1 Kvadratisk optimering under linjära likhetsbivillkor Krister Svanberg, april 0 Kvadratisk optimering under linjära likhetsbivillkor I detta kapitel behandlas följande kvadratiska optimeringsproblem under linjära likhetsbivillkor: xt Hx + c T x + c 0 då Ax

Läs mer

Sats: Varje anslutningsmatris ar fullstandigt unimodular. Bevis: Lat m beteckna antalet rader i anslutningsmatrisen.

Sats: Varje anslutningsmatris ar fullstandigt unimodular. Bevis: Lat m beteckna antalet rader i anslutningsmatrisen. Sats: Varje anslutningsmatris ar fullstandigt unimodular. Bevis: Lat m beteckna antalet rader i anslutningsmatrisen. Betrakta kvadratiska delmatriser av storlek n n, dar n m, och anvand induktion med avseende

Läs mer

1 Konvexa optimeringsproblem grundläggande egenskaper

1 Konvexa optimeringsproblem grundläggande egenskaper Krister Svanberg, april 2012 1 Konvexa optimeringsproblem grundläggande egenskaper Ett optimeringsproblem är i viss mening godartat om det tillåtna området är en konvex mängd och den målfunktion som ska

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

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

Läs mer

Föreläsning 9: NP-fullständighet

Föreläsning 9: NP-fullständighet Föreläsning 9: NP-fullständighet Olika typer av problem: 1. Beslutsproblem: A(x) =Ja. 2. Optimeringsproblem: A(x) =m Vanligen max/min. 3. Konstruktionsproblem: A(x) =En struktur. Vanligen lösningen till

Läs mer

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering Betrakta ett lagerhållningsproblem i flera tidsperioder. Vi har tillverkning och försäljning av produkter i varje tidsperiod. Dessutom kan vi lagra produkter mellan tidsperioder, för att utnyttja stordriftsfördelar

Läs mer

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM Matematiska institutionen Optimeringslära TENTAMEN TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM Datum: 26 augusti 2014 Tid: 8.00-13.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg:

Läs mer

TNSL05 Optimering, Modellering och Planering. Föreläsning 2: Forts. introduktion till matematisk modellering

TNSL05 Optimering, Modellering och Planering. Föreläsning 2: Forts. introduktion till matematisk modellering TNSL05 Optimering, Modellering och Planering Föreläsning 2: Forts. introduktion till matematisk modellering 2017-11-01 2 Dagordning Matematisk modellering, Linjära Problem (LP) Terminologi Målfunktion

Läs mer

MIO310 OPTIMERING OCH SIMULERING, 4 p

MIO310 OPTIMERING OCH SIMULERING, 4 p Uppvisat terminsräkning ( ) Ja ( ) Nej Inst. för teknisk ekonomi och logistik Avd. för Produktionsekonomi Jag tillåter att mitt tentamensresultat publiceras på Internet Ja Nej TENTAMEN: MIO0 OPTIMERING

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN OPTIMERING FÖR INGENJÖRER för M/EMM Datum: oktober 0 Tid:.00-9.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

TNK049 Optimeringslära

TNK049 Optimeringslära TNK049 Optimeringslära Clas Rydergren, ITN Föreläsning 6 Det duala problemet Relationer primal dual Optimalitetsvillkor Nätverksoptimering (introduktion) Agenda Motivering av det duala problemet (kap 6.)

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

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: 1 november 2013 Tid:.00-13.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP8/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR Datum: 9 augusti 01 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg:

Läs mer

Examinator: Torbjörn Larsson Jourhavande lärare: Torbjörn Larsson, tel Tentamensinstruktioner. När Du löser uppgifterna

Examinator: Torbjörn Larsson Jourhavande lärare: Torbjörn Larsson, tel Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP07/TEN1 OPTIMERINGSLÄRA GRUNDKURS för Y Datum: 21 augusti 2012 Tid: 14-19 Hjälpmedel: Inga Antal uppgifter: 7 Uppgifterna är inte ordnade efter svårighetsgrad.

Läs mer

MIO310 Optimering & Simulering. Kursansvarig: Universitetslektor Fredrik Olsson Produktionsekonomi Lunds tekniska högskola

MIO310 Optimering & Simulering. Kursansvarig: Universitetslektor Fredrik Olsson Produktionsekonomi Lunds tekniska högskola MIO310 Optimering & Simulering 2015 Kursansvarig: Universitetslektor Fredrik Olsson Produktionsekonomi Lunds tekniska högskola Antal poäng: 6 hp. Obligatorisk för: Industriell Ekonomi åk 3. Nivå: G2 Rek.

Läs mer

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

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

Läs mer

Hemuppgift 2, SF1861 Optimeringslära för T, VT-10

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

Läs mer

Optimering. Optimering

Optimering. Optimering TAOP88 Optimering för ingenjörer Examinator: Kaj Holmberg kaj.holmberg@liu.se Kurshemsida: http://courses.mai.liu.se/gu/taop88 Lärare: Föreläsningar: Kaj Holmberg Lektioner, labbar: Oleg Burdakov, William

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: januari 2016 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN KOMBINATORISK OPTIMERING GRUNDKURS Datum: 1 mars 01 Tid: 8.00-1.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

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

Läs mer

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN KOMBINATORISK OPTIMERING GRUNDKURS Datum: 9 april 0 Tid: 8.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Olinjär optimering med bivillkor: KKT min f (x) då g i (x) 0 för alla i

Olinjär optimering med bivillkor: KKT min f (x) då g i (x) 0 för alla i Olinjär optimering med bivillkor min då f (x) g i (x) 0 för alla i Specialfall: Konvext problem. Linjära bivillkor: Ax b. Linjära likhetsbivillkor: Ax = b. Inga bivillkor: Hanterat tidigare. Metodprinciper:

Läs mer

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april

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

Läs mer

Laborationsuppgift 1 Tillämpad optimeringslära för MMT (5B1722)

Laborationsuppgift 1 Tillämpad optimeringslära för MMT (5B1722) Laborationsuppgift 1 Tillämpad optimeringslära för MMT (5B1722) Februari 2004 Avdelningen för Optimeringslära och Systemteori Institutionen för Matematik Kungliga Tekniska Högskolan Stockholm Allmän information

Läs mer

Lösningar till tentan i 5B1760 Linjär och kvadratisk optimering, 17 december 2003.

Lösningar till tentan i 5B1760 Linjär och kvadratisk optimering, 17 december 2003. Lösningar till tentan i 5B7 Linjär och kvadratisk optimering, 7 december 3 Uppgift (a) 3 Vi använder Gauss-Jordans metod för att överföra A 3 5 till trappstegsform 3 7 Addition av ( ) gånger första raden

Läs mer

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C. Tentamensinstruktioner. När Du löser uppgifterna

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C. Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN KOMBINATORISK OPTIMERING GRUNDKURS för D och C Datum: 1 januari 01 Tid: 8.00-1.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering

Läs mer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4 Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa

Läs mer

TANA17 Matematiska beräkningar med Matlab

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

Läs mer

LP-dualitet: Exempel. Vårt första exempel. LP-dualitet: Relationer. LP-dualitet: Generellt

LP-dualitet: Exempel. Vårt första exempel. LP-dualitet: Relationer. LP-dualitet: Generellt Vårt första exempel Variabeldefinition: x 1 = antal enheter Optimus som görs varje timme. x 2 = antal enheter Rullmus som görs varje timme. Matematisk modell: max z = 4x 1 + 3x 2 då 2x 1 + 3x 2 30 (1)

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN OPTIMERING FÖR INGENJÖRER Datum: 0 oktober 0 Tid: 8.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar i

Läs mer

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN KOMBINATORISK OPTIMERING GRUNDKURS Datum: januari 0 Tid: 8.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM Matematiska institutionen Optimeringslära TENTAMEN TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM Datum: 23 augusti 2016 Tid: 8.00-13.00 Hjälpmedel: Miniräknare Kurslitteraturen: Kaj Holmberg:

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

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

Läs mer

MIO310 OPTIMERING OCH SIMULERING, 4 p

MIO310 OPTIMERING OCH SIMULERING, 4 p Uppvisat terminsräkning ( ) Ja ( ) Nej Inst. för teknisk ekonomi och logistik Avd. för Produktionsekonomi Jag tillåter att mitt tentamensresultat publiceras på Internet Ja Nej TENTAMEN: MIO310 OPTIMERING

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN OPTIMERING FÖR INGENJÖRER Datum: juni 0 Tid:.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar i boken får

Läs mer

TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1. Omfattning. Innehåll 2012-01-20. Lay, kapitel 1.1-1.9, Linjära ekvationer i linjär algebra

TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1. Omfattning. Innehåll 2012-01-20. Lay, kapitel 1.1-1.9, Linjära ekvationer i linjär algebra TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1 Omfattning Lay, kapitel 1.1-1.9, Linjära ekvationer i linjär algebra Innehåll Olika aspekter av linjära ekvationssystem 1. skärning mellan geometriska

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN OPTIMERING FÖR INGENJÖRER Datum: juni 0 Tid: 8.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar i boken

Läs mer

Lösningar till tentan i SF1861/51 Optimeringslära, 3 juni, 2015

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

Läs mer

Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper

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)

Läs mer

TNK049 Optimeringslära

TNK049 Optimeringslära TNK49 Optimeringslära Clas Rydergren, ITN Föreläsning 7 Nätverksoptimering Billigaste uppspännande träd (MST) Billigaste väg (SP) Projektnätverk Minkostnadsflödesproblem Agenda Terminologi för grafer/nätverk

Läs mer

Np MaB vt 2002 NATIONELLT KURSPROV I MATEMATIK KURS B VÅREN 2002

Np MaB vt 2002 NATIONELLT KURSPROV I MATEMATIK KURS B VÅREN 2002 Skolverket hänvisar generellt beträffande provmaterial till bestämmelsen om sekretess i 4 kap. 3 sekretesslagen. För detta material gäller sekretessen fram till utgången av juni 00. Anvisningar Provtid

Läs mer

TDDB56 DALGOPT Algoritmer och Optimering Tentamen , 8 13

TDDB56 DALGOPT Algoritmer och Optimering Tentamen , 8 13 Linköpings Tekniska Högskola 00-08-0 Institutionen för Datavetenskap David Broman / Jan Maluszynski / Kaj Holmberg TDDB6 DALGOPT Algoritmer och Optimering Tentamen 00-08-0, 8 Examinator Jan Maluszynski

Läs mer

Optimering. TAOP88 Optimering för ingenjörer. När inte intuitionen räcker till... Långsiktiga mål med kursen. Vad är optimering?

Optimering. TAOP88 Optimering för ingenjörer. När inte intuitionen räcker till... Långsiktiga mål med kursen. Vad är optimering? TAOP88 Optimering för ingenjörer Examinator: Kaj Holmberg kaj.holmberg@liu.se Kurshemsida: http://courses.mai.liu.se/gu/taop88 Lärare: Föreläsningar: Kaj Holmberg Lektioner, labbar: Oleg Burdakov Roghayeh

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR för IT Datum: 2 oktober 2013 Tid:.00-13.00 Hjälpmedel: Miniräknare Kaj Holmberg: Optimering.

Läs mer

Gamla tentemensuppgifter

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

Läs mer

Föreläsning 12+13: Approximationsalgoritmer

Föreläsning 12+13: Approximationsalgoritmer Föreläsning 12+13: Approximationsalgoritmer Många av de NP-fullständiga problemen är från början optimeringsproblem: TSP, Graph Coloring, Vertex Cover etc. Man tror att P NP och att det alltså inte går

Läs mer

Linjär algebra på några minuter

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

Läs mer

Vårt första exempel. LP-dualitet: Exempel. LP-dualitet: Generellt. LP-dualitet: Relationer

Vårt första exempel. LP-dualitet: Exempel. LP-dualitet: Generellt. LP-dualitet: Relationer Vårt första exempel Variabeldefinition: x 1 = antal enheter Optimus som görs varje timme. x 2 = antal enheter Rullmus som görs varje timme. Matematisk modell: max z = 4x 1 + 3x 2 då 2x 1 + 3x 2 30 (1)

Läs mer

Lathund fo r rapportskrivning: LATEX-mall. F orfattare Institutionen f or teknikvetenskap och matematik

Lathund fo r rapportskrivning: LATEX-mall. F orfattare Institutionen f or teknikvetenskap och matematik Lathund fo r rapportskrivning: LATEX-mall F orfattare forfattare@student.ltu.se Institutionen f or teknikvetenskap och matematik 31 maj 2017 1 Sammanfattning Sammanfattningen är fristående från rapporten

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR för IT Datum: 19 mars 2011 Tid: 14.00-19.00 Hjälpmedel: Miniräknare Kaj Holmberg: Optimering.

Läs mer

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671 2009-01-16. DAG: Fredag 16 januari 2009 TID: 14.00-18.

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671 2009-01-16. DAG: Fredag 16 januari 2009 TID: 14.00-18. Institutionen för Matematik Göteborg TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F, TMA67 9--6 DAG: Fredag 6 januari 9 TID: 4. - 8. SAL: V Ansvarig: Ivar Gustafsson, tel: 77 94 Förfrågningar: Ivar Gustafsson

Läs mer

Härledning av Black-Littermans formel mha allmänna linjära modellen

Härledning av Black-Littermans formel mha allmänna linjära modellen Härledning av Black-Littermans formel mha allmänna linjära modellen Ett sätt att få fram Black-Littermans formel är att formulera problemet att hitta lämpliga justerade avkastningar som ett skattningsproblem

Läs mer

Linjär Algebra M/TD Läsvecka 1

Linjär Algebra M/TD Läsvecka 1 Linjär Algebra M/TD Läsvecka 1 Omfattning: Lay, kapitel 1.1-1.9, Linjära ekvationer i linjär algebra Innehåll: Olika aspekter av linjära ekvationssystem: skärning mellan geometriska objekt, linjärkombination

Läs mer

MIO310 OPTIMERING OCH SIMULERING, 4 p

MIO310 OPTIMERING OCH SIMULERING, 4 p Uppvisat terminsräkning ( ) Ja ( ) Nej Inst. för teknisk ekonomi och logistik Avd. för Produktionsekonomi Jag tillåter att mitt tentamensresultat publiceras på Internet Ja Nej TENTAMEN: MIO0 OPTIMERING

Läs mer

Optimering. TAOP86 Kombinatorisk optimering med miljötillämpningar. När inte intuitionen räcker till... Långsiktiga mål med kursen. Vad är optimering?

Optimering. TAOP86 Kombinatorisk optimering med miljötillämpningar. När inte intuitionen räcker till... Långsiktiga mål med kursen. Vad är optimering? TAOP86 Kombinatorisk optimering med miljötillämpningar Examinator: Kaj Holmberg kaj.holmberg@liu.se http://courses.mai.liu.se/gu/taop86 Lärare: Föreläsningar: Kaj Holmberg Lektioner, labbar: Björn Morén

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 9 Anton Grensjö grensjo@csc.kth.se 9 november 2017 1 Idag Bevis av NP-fullständighet Labbteoriredovisning inför labb 4 2 Teori Teori När vi talar om NP-fullständighet

Läs mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM. Tentamensinstruktioner. När Du löser uppgifterna

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM. Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM Datum: 13 januari 2016 Tid: 8.00-13.00 Hjälpmedel: Miniräknare Kurslitteraturen: Kaj Holmberg:

Läs mer

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper

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

Läs mer

MIO310 OPTIMERING OCH SIMULERING, 4 p

MIO310 OPTIMERING OCH SIMULERING, 4 p Uppvisat terminsräkning ( ) Ja ( ) Nej Inst. för teknisk ekonomi och logistik Avd. för Produktionsekonomi Jag tillåter att mitt tentamensresultat publiceras på Internet Ja Nej TENTAMEN: MIO310 OPTIMERING

Läs mer

NATIONELLT KURSPROV I MATEMATIK KURS D HÖSTEN Del I, 9 uppgifter utan miniräknare 3. Del II, 8 uppgifter med miniräknare 6

NATIONELLT KURSPROV I MATEMATIK KURS D HÖSTEN Del I, 9 uppgifter utan miniräknare 3. Del II, 8 uppgifter med miniräknare 6 freeleaks NpMaD ht2007 för Ma4 1(10) Innehåll Förord 1 NATIONELLT KURSPROV I MATEMATIK KURS D HÖSTEN 2007 2 Del I, 9 uppgifter utan miniräknare 3 Del II, 8 uppgifter med miniräknare 6 Förord Kom ihåg Matematik

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 8 Anton Grensjö grensjo@csc.kth.se 12 november 2015 Anton Grensjö ADK Övning 8 12 november 2015 1 / 21 Översikt Kursplanering Ö8: Mästarprov 1, oavgörbarhet

Läs mer

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2010

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2010 ITN/KTS Stefan Engevall/Joakim Ekström Kursinformation TNSL05, Optimering, Modellering och Planering, HT2010 TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2010 1 Kursmål & innehåll 1.1 Mål med

Läs mer

Kvalificeringstävling den 30 september 2008

Kvalificeringstävling den 30 september 2008 SKOLORNAS MATEMATIKTÄVLING Svenska Matematikersamfundet Kvalificeringstävling den 30 september 2008 Förslag till lösningar Problem 1 Tre rader med tal är skrivna på ett papper Varje rad innehåller tre

Läs mer

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning MATEMATISKA VETENSKAPER TMV66 07 Chalmers tekniska högskola Datorlaboration Examinator: Tony Stillfjord TMV66 Linjär algebra för M Datorlaboration : Matrisalgebra och en mekanisk tillämpning Allmänt Den

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 10 januari 201 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Algoritmer och Komplexitet ht 08. Övning 5. Flöden. Reduktioner. Förändrat flöde

Algoritmer och Komplexitet ht 08. Övning 5. Flöden. Reduktioner. Förändrat flöde Algoritmer och Komplexitet ht 08. Övning 5 Flöden. Reduktioner Förändrat flöde a) Beskriv en effektiv algoritm som hittar ett nytt maximalt flöde om kapaciteten längs en viss kant ökar med en enhet. Algoritmens

Läs mer

Funktionsstudier med derivata

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

Läs mer

Föreläsning 5: Dynamisk programmering

Föreläsning 5: Dynamisk programmering Föreläsning 5: Dynamisk programmering Vi betraktar en typ av problem vi tidigare sett: Indata: En uppsättning intervall [s i,f i ] med vikt w i. Mål: Att hitta en uppsättning icke överlappande intervall

Läs mer

Laboration 1: Optimalt sparande

Laboration 1: Optimalt sparande Avsikten med denna laboration är att: Laboration 1: Optimalt sparande - snabbt komma igång med träning på matlabprogrammering (uttnyttja gärna alla schemalagda laborationstillfällen, - lösa ett optimeringsproblem

Läs mer

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61 Moment 5.5 Övningsuppgifter I 5.0a. 5.0b, 5.0.c, 1 Linjära ekvationssystem Vi har redan tidigare i kursen stött på linjära ekvationssystem. Nu är stunden kommen till en mera systematisk genomgång. Kvadratiska

Läs mer

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod. Polyeder 0 x, 0 x, 0 x, x + x + x, x + x + x Grafdefinitioner N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar

Läs mer

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20. Teorifrågor Störningsanalys 1. Värdet på x är uppmätt till 0.956 med ett absolutfel på högst 0.0005. Ge en övre gräns för absolutfelet i y = exp(x) + x 2. Motivera svaret. 2. Ekvationen log(x) x/50 = 0

Läs mer