Laborationsinformation

Relevanta dokument
Laborationsinformation

Projektinformation TAOP61 Optimering av realistiska sammansatta system Projekt 4: Lösning av snöröjningsproblemet

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Laborationsinformation TAOP88 Optimering för ingenjörer, VT17

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.

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

1 VIGROPT: Visual Group Optimization

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

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

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Optimeringslära Kaj Holmberg

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

TNSL05 Optimering, Modellering och Planering. Föreläsning 5

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

Tentamensinstruktioner. När Du löser uppgifterna

Optimeringslära Kaj Holmberg

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Optimeringslära Kaj Holmberg

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

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

Tentamensinstruktioner. När Du löser uppgifterna

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TNK049 Optimeringslära

ALEPH ver. 16 Introduktion

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet april. Liten introduktionsguide för nybörjare

Optimeringslära Kaj Holmberg

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Optimeringslära Kaj Holmberg

Tentamensinstruktioner. När Du löser uppgifterna

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Optimeringslära Kaj Holmberg

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

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Installationsguide Junos Pulse för MAC OS X

Komma igång med 3L Pro Komma igång med 3L. Copyright VITEC FASTIGHETSSYSTEM AB

Egna genvägar. Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll

Handbok Spectacle. Boudhayan Gupta Boudhayan Gupta Översättare: Stefan Asserhäll

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

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

Inställningstips Windows 8

TNSL05 Optimering, Modellering och Planering. Föreläsning 10

Introduktion till Matlab

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Föreläsning 10/11! Gruppuppgifter: Gruppuppgift 1: Alla har redovisat. Gruppuppgift 2: Alla har redovisat Gruppuppgift 3: På gång.

INTRODUKTION TILL LADOK

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

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

IT-system. BUP Användarmanual

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Introduktion till Matlab

Instruktion för konvertering av e-post i Lotus Notes med Swing PDF Converter

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Kom igång med Denna korta manual hjälper dig med att komma igång med programmen Vital och ViTex.

Tentamensinstruktioner. När Du löser uppgifterna

Lösningar/svar. Uppgift 1. Tekniska Högskolan i Linköping Optimering av realistiska sammansatta system. Optimeringslära Kaj Holmberg

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

SIDTITEL TANGENTBORDSGENVÄGAR

Inställningstips Windows

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Hämta projektkonfiguration från SharePoint till ett lokalt projekt

LATHUND WINDOWS RXK Läromedel, Riddarplatsen 36 Plan Järfälla Tel: , Fax: e-post: info@rxk.

1 Minkostnadsflödesproblem i nätverk

ANVÄNDARGUIDE VITAL & TALANDE TANGENTBORD

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna

Föreläsningsanteckningar F6

Tekniska Högskolan i Linköping Optimering av realistiska sammansatta system. Optimeringslära Kaj Holmberg.

Inställningstips Windows 10

Optimeringslära Kaj Holmberg

Tentamensinstruktioner. När Du löser uppgifterna

Din guide till. Klientinstallation MS Driftservice

TDDB56 DALGOPT Algoritmer och Optimering Tentamen , 8 13

TAOP61 Förprojekt 4: GPS

Datum Den första bilden i installationsprogrammet visar vilken version det är. Klicka på Nästa eller tryck Enter för att fortsätta.

Komma igång med Qlikview

Switch Driver 4. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Objektorienterad programmering Föreläsning 2

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

STEGBESKRIVNING - WEBB

Kapitel Datakommunikation Anslutning av två enheter Anslutning av enheten till en persondator Anslutning av enheten till en CASIO etikettskrivare

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Transkript:

Linköpings Tekniska Högskola 2017 03 16 Matematiska institutionen/optimeringslära Kaj Holmberg Laborationsinformation 1 VINEOPT: Visual Network Optimization 1.1 Introduktion VINEOPT är ett program för visualisering och optimering av graf- och nätverksproblem, såsom linjära minkostnadsflödesproblem, maxflödesproblem och billigaste väg-problem, samt billigaste uppspännande träd-problem, handelsresandeproblem och brevbärarproblem. Programmet möjliggör grafisk inmatning av nätverksdata och ritar upp nätverket på skärmen. Man kan förändra nätverket på olika sätt (dvs. ändra alla nätverksdata), samt förändra bilden av nätverket (zooma etc). Man kan spara det förändrade nätverket. Dessutom kan lösare för optimeringsproblem anropas, och lösningen visualiseras i nätverket eller visas i tabeller. Programmet är skrivet i Tcl/Tk av Kaj Holmberg, och körs som tclkit. Programmet startas genom att öppna ett terminalfönster, sätta sökvägar genom att skriva module add ext/mai och module add math/optlab och därefter skriva dine 1. 1.2 Grundfönster När VINEOPT startas, öppnas grundfönstret där de flesta operationerna äger rum. Fönstret innehåller följande delar. Överst, under titelraden, finns den huvudsakliga menyraden, med undermenyerna File (läsa data/spara data/avsluta) Alt -f, Optimize (optimering) Alt -o, Visual (förändringar av hur nätverket visas) Alt -v, Change (förändringar av data) Alt -c, Check (kontroll) Alt -e, Selection (urval) Alt -s, Sets (mängder) Alt -t, Help (hjälp) Alt -h. Den först statusraden under det grafiska fönstret visar olika meddelanden. Den andra statusraden visar vilket ändringsläge (mode) man är i (se avsnitt 1.5.4), därefter problemets namn och storlek. Sist på raden visas koordinaterna för musen (i nätverkets skala). Koordinatrutan blir röd då programmet gör beräkningar eller sysslar med in/utmatning, och då bör man vänta lite innan en annan aktivitet påbörjas. Därunder kommer den tredje statusraden, som ger kortfattade instruktioner om hur man gör i det aktuella läget, samt ibland information om vad man nyss gjort. Längst ner kommer fjärde statusraden, som anger problemtyp samt om man ändrat problemet utan att spara. 1

1.3 Nätverkstyper VINEOPT kan hantera många olika problemtyper, baserade på olika nätverkstyper. En grundläggande problemtyp är linjära minkostnadsflödesproblem i riktade nätverk, med följande data. Bågdata: startnod, slutnod, bågkostnad, undre gräns för flödet, övre gräns för flödet. Noddata: efterfrågan (nettosänkstyrka). Koordinater för noderna (x, y). Nodernas namn. 1.4 Kortkommandon Man kan ge parametrar på kommandoraden, t.ex. för att direkt läsa in ett problem. Syntaxen är dine 1 k text1 text2 där k är ett heltal (eller A, B eller C) och text1 samt text2 två (frivilliga) textsträngar som innehåller namn (inklusive sökväg) på indatafiler. k=a: Hantera enbart minkostnadsflödesproblem. k=b: Hantera enbart oriktade grafer. k=c: Hantera enbart billigaste väg-problem. k=0: Ger kort hjälp (denna text). k=1: Problemet i fil text1 läses in och passande optimering utförs. Om k 2 så väljes säkerhetsnivå expert (vilket betyder färre kontrollfrågor). k=2: Problemet i fil text1 läses in. k=3: Som k=1, men som expert. k=4: Problemet i fil text1 läses in och bilden av grafen sparas i en postscriptfil. k=99: Alla temporära filer som skapats av VINEOPT raderas, varpå programmet avslutas. Som ett exempel leder kommandot dine 1 2 data/bvex1.net till att problemet i filen bvex1.net i underkatalogen data läses in (utan frågor). 1.5 Menyer 1.5.1 Läsa/spara data (File) Här kan man läsa in indata för ett problem. (Indatafilen innehåller information om nätverkstypen, som sätts automatiskt.) Man kan även spara data under aktuellt namn eller nytt. Även kortkommandot Control -s sparar data. Bilden på grafen kan exporteras till en postscript-fil, eller skrivas ut direkt på en skrivare (som klarar postscript). Det går även att lista och radera befintliga nätverksfiler. 2

1.5.2 Optimering (Optimize) VINEOPT innehåller lösare för bl.a. följande optimeringsproblem. Minkostnadsflödesproblemet. (R) Maxflödesproblemet. (R) Billigaste väg mellan två noder, från en till alla eller från alla till en. (R,O) Billigaste väg mellan alla nodpar. (R,O) Billigaste uppspännande träd. (O) Billigaste 1-träd. (O) Starkt sammanhängande komponenter. (O) Maximal viktad matchning. (O) Minimal viktad perfekt matchning. (O) Kinesiska brevbärarproblemet. (R,O) Handelsresandeproblemet. (R,O) Handelsresandeproblemet med återbesök. (O) Varje optimeringsproblem har i listan ovan markerats med R om det kan lösas för riktade grafer och med O om det kan lösas för oriktade grafer. Vissa optimeringskoder är fria för akademiskt (ej kommersiellt) användande. Flera av koderna är av egen produktion. När optimallösningen är funnen, visar VINEOPT totalkostnaden längst ner till höger. En numerisk lista över optimala flöden visas också, om man vill. 1.5.3 Visualisering (Visual) Här bestäms hur nätverket ritas upp. Man kan bl.a. välja att visa eller inte visa noder, bågar, nodnamn. Man kan få bågar med flöde speciellt markerade, liksom bågar som ingår i minsnittet. Bågkostnader, bågkapaciteter och bågflöde samt efterfrågedata och nodpriser kan fås utskrivna i nätverket. Billigaste vägar och billigaste vägträd kan visas. Man kan även välja hur bågarnas anslutning till noder ritas. Man kan markera en namngiven nod. Man kan zooma in/ut, göra noderna större eller mindre samt flytta nätverket upp/ner/höger/vänster i stora eller små steg. Man kan även ställa in bästa skalning. Dessutom kan alla färger ändras samt båg- och nodmarkeringar flyttas. En bakgrundsbild (i gif-format) kan visas i det grafiska fönstret. Man kan även se alla data och lösningar numeriskt i separata fönster, som kan skrivas ut eller sparas på fil. Kortkommandot Control -f visar aktuellt flöde och kortkommandot Control -t visar aktuell tur. 1.5.4 Ändringar (Change) Här ställer man in vilket ändringsläge (mode) man skall vara i. Inställningen gäller tills man ändrar den. Följande lägen finns (med ev kortkommando angivet) bl.a.: Flytta nod (Move node). F2 Lägg till nod (Add node). F5 3

Ta bort node (Delete node). F6 Ändra efterfrågan (Change demand). F7 Lägg till båge (Add link). F8 Ändra data för båge (Change link). F9 Ta bort båge (Delete link). Flytta båge (Move link). Lägga till nod mitt på existerande båge (Add node in the middle of a link). Ange startnod (Choose starting node). Control -a Ange slutnod (Choose ending node). Control -z Byt plats på två noder (Swap two nodes). Markera noder (Select a set of nodes). Man kan även ändra data i tabellformat. Ett riktat nätverk kan göras oriktat, och ett oriktat riktat. Det är möjligt att lägga till/ta bort många bågar på olika sätt, t.ex. så att man får ett fullständigt nätverk. Flera data kan ändras på en gång, t.ex. addera en konstant till alla bågkostnader/bågkapaciteter eller sätta alla bågkostnader/bågkapaciteter till ett visst värde. Val av nod görs så att när vänsterknappen på musen trycks ner, väljes den nod som är närmast musen (även om den är en bit bort). Val av båge sker antingen genom att klicka på bågen (vilket kräver precision) eller genom att först välja startnod och sedan slutnod. (Parallella bågar kan alltså inte hanteras.) Noden närmast musen väljes som startnod när vänsterknappen trycks ner första gången. Noden närmaste musen väljes som slutnod när vänsterknappen trycks ner andra gången (dvs. då en startnod redan valts). Flytta nod: Noden flyttas med musen så länge vänsterknappen hålles nere. Lägga till nod: Noden placeras där musen är när man klickar med vänsterknappen. Den ges sänkstyrka noll. Ta bort nod: Noden närmast musen tas bort då vänsterknappen trycks ner. Samtliga bågar som ansluter till noden tas också bort. Ändra efterfrågan: Det dyker upp ett fönster där man kan mata in ny efterfrågan (nettosänkstyrka) för noden. Lägg till båge: Välj startnod och slutnod enligt ovan. När slutnod valts, dyker en meny upp, med bågkostnad (initierad till det Euklidiska avståndet mellan noderna), bågkapacitet (initierad till ett stort tal) samt undre gräns (initierad till 0). Alla dessa siffror kan ändras. Tryck sedan på Save för att spara. Ändra bågdata: Välj båge (direkt eller via startnod och slutnod) enligt ovan. Fortsätt som när man lägger till en båge. Ta bort båge: Välj båge (direkt eller via startnod och slutnod) enligt ovan. Bågen tas bort så fort man valt slutnod. Flytta båge: Välj båge (direkt eller via startnod och slutnod) enligt ovan. Välj sedan ny startnod och ny slutnod. Lägg till nod mitt på båge: Välj båge som när man ändrar bågdata. Ursprungliga bågdata läggs på första bågen, den andra bågen får kostnad noll och stor kapacitet. 4

Välj startnod: Noden närmast musen väljes som startnod när vänsterknappen trycks ner. Välj slutnod: Noden närmast musen väljes som slutnod när vänsterknappen trycks ner. Byt plats på två noder: Välj först ena noden, sedan den andra. Markera noder: Noden närmast musen läggs till markerat urval. (Markerade noder kan hanteras med huvudmenyn Selection.) 1.5.5 Kontroll (Check) Nätverksdata kan kontrolleras på olika sätt. Man kan summera ihop total efterfrågan (vilken skall vara noll i ett minkostnadsflödesproblem). Man kan kontrollera huruvida triangelolikheten gäller, undersöka nodernas valens samt kontrollera om nätverket är sammanhängande. 1.5.6 Urval (Selection) Man kan välja nod- eller bågmängder, grafiskt eller i tabeller, på olika sätt. Man kan sedan utföra många olika ändringar på den utvalda nod- eller bågmängden. (Många ändringar är samma som i huvudmenyn Ändringar, men utförs här bara på utvald nod- eller bågmängd.) 1.5.7 Mängder (Sets) När man har markerat vissa noder eller bågar, kan man definiera dem som en nod- eller bågmängd. Man kan definiera flera olika nod- och/eller bågmängder, samt låta de noder/bågar som inte ingår i någon mängd bilda en ny mängd. Dessa mängder kan spara på fil och läsas från fil. 1.5.8 Hjälp (Help) Här kan man få upp kortare hjälptext i separat fönster, på svenska eller engelska. Man kan även lista existerande kortkommandon. Man kan välja mellan två säkerhetsnivåer, novice och expert, där det senare alternativet ger färre frågor av typen Vill du verkligen ta bort denna nod?. Kortkommandot Control - e väljer säkerhetsnivå expert. Det finns även möjlighet att ta bort alla temporära filer och att avbryta en inmatningsfas (t.ex. när programmet väntar på val av slutnod). Kortkommandot Control -i avbryter inmatningsfas. Man kan även se de problemkommentarer som sparats tillsammans med problemet. 1.6 Högerknappsmeny Om man trycker på högerknappen på musen när pekaren befinner sig i det grafiska fönstret, kan man göra vissa ändringar relaterade till den nod som är närmast pekaren, med hjälp 5

av en meny som dyker upp. Man kan ta bort noden (och alla anslutande bågar), man kan byta namn på noden och man kan ändra sänkstyrka för noden. Dessutom kan man ta bort eller ändra data för en båge som ansluter till noden. Bågen väljes då i en meny som innehåller alla bågar som ansluter till noden. Om man står på en båge (så att den färgats blå) när man högerklickar, får man istället upp en meny för bågar, med liknande möjligheter. (Det kan vara svårt att pricka en båge exakt, vilket krävs, så ibland är det bättre att välja bågar m.h.a. noder.) 1.7 Till sist VINEOPT är i ständig utveckling. Nya finesser läggs till snabbare än dokumentationen hinner uppdateras. Gå gärna på upptäcksfärd i menyerna. Försök dock att inte bli alltför arg om något inte skulle fungera. Inget program är felfritt. VINEOPT har inget Undo -kommando, så man kan inte ångra sig. Spara därför problemet ofta. Skulle programmet uppföra sig konstigt är den enklaste boten att stänga ner programmet, starta om det, läsa in problemet och fortsätta där man var. Fortsätt aldrig använda programmet efter ett felmeddelande. 6