Introduktion till att använda sig av GLPK



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

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

Optimering. Optimering av transportproblem. Linköpings universitet SL. Campusveckan VT2013

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Tentamensinstruktioner. När Du löser uppgifterna

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Föreläsning 6: Introduktion av listor

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

Optimering av ett värmeverk

Laborationsinformation

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

CSN-rapportering, gymnasiet

Datorövning 1 Statistik med Excel (Office 2007, svenska)

Nästa vecka är det höstlov. På måndagen den 26/10 är hela skolan stängd, fritids har alltså inte heller öppet.

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

Nattåg Sundsvall Stockholm med Jämtlandståget

VERSION 5.1/5.2 SNABBINTRODUKTION TILL WEBACCESS JAVA

Datorövning 1 Statistik med Excel (Office 2007, svenska)

Höstlovsaktiviteter. 29 oktober - 2 november

Datorövning 1 Statistik med Excel (Office 2010, svenska)

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Survey&Report steg för steg: Skapa rapport

FLEXILAGER Ett hjälpmedel för anpassad lagerhantering. Original -version

Olinjärt med Whats Best!

4. Olinjärt med Whats Best!

Import av utlandsresultat

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

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

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

Att fylla i schema på barnomsorg på webben

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, Raphael Corsoski, Erik Eliasson, Christian von Schultz, 2008.

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Solutions to exam in SF1811 Optimization, June 3, 2014

Semester och arbetstidsförkortning

KOMMUNALT AKTIVITETSMEDLEMSBIDRAG

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Instruktion för suggringsnav

Uppgift 1 (max 8 poäng)

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

En lathund inför utvecklingssamtalet

Lathund för att arbeta med pdf

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert Problemexempel 1

Wienerprocesser. Finansiell statistik, vt-05. Enkel slumpvandring. Enkel slumpvandring. Varför: model för aktiekurs (dock med aber...

Smartair System. TS1000 Version 4.23

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

PNSPO! Exporterar och Importerar texter från CX- Designer. 20 mars 2012 OMRON Corporation

Transportplan för postnummer LULEÅ

Transportplan för postnummer KALMAR

INSTALLATION AV VITEC MÄKLARSYSTEM. Studentversion

Föreläsning 7 - Faktormarknader

MICROECONOMICS Mid Sweden University, Sundsvall (Lecture 2) Peter Lohmander &

PROGRAMRAPPORT. Team: Endokrin och Diabetesmottagningen, Endokrinologiska kliniken, UMAS. Teammedlemmar:

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Programmeringsuppgifter 1

HotCollection Träffsäkra analyser av svenskarnas TV-tittande. HotTimeDetalj

LEGO Mindstorm-robot

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

19. Skriva ut statistik

Utskick av respondentenkät

Tentaupplägg denna gång

Föreläsning 11. Giriga algoritmer

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

Lära känna skrivbordet

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R

1284_omslag.qxd :13 Sida 1 ECDL START OFFICE 2003 Allmän IT Windows XP Word 2003 Outlook 2003

Installationsanvisning för PI-Utbildningar

Tema Linjär optimering

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Steg 4 b. Molntjänster Onedrive Office 365 Windows 10. Mars -16 Liljedalsdata.se. Liljedalsdata Molntjänster En del av steg 4 Sida 1

9. Beräkna volymen av det område som begränsas av planet z = 1 och paraboloiden z = 5 x 2 y 2.

D I G I TA LT S K A PA N D E

Grunderna i stegkodsprogrammering

Kurser våren 2016 för barn, ungdomar och vuxna som har en funktionsnedsättning

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

Elisabeth Bejefalk IT-Assistent Avesta kommun

Manual till Lathunden. En programvara från Genetica

Kennelklubbens Omakoira-medlemstjänst Instruktion angående adresslistor för kenneldistrikten

WINDOWS 8.1. Grunder

Programmeringsteknik med C och Matlab

Lagadministration Linda Emterby

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

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

år 9: Kulturama grundskola Veckobrev 45

Handbok Dumpa skärmen

Mötesplats Ängholmen. Juli & Augusti. Telefonnummer

Aktiviteter markeras som borttagna i databasen istället för att raderas

Vecka 1. Institutionen för socialt arbete Ht Socionomprogrammet, 210 hp Kurs: Socialt arbete som ämne och profession, 7,5 hp

Uppdaterad Enkel manual tävlingsanmälan i friidrottens nya IT- system.

Instruktion för att slutföra registreringen

ISP-verktyget i WebOodi

Handledning för användare av ALLASKA

Användarmanual Pagero Connect 2.0

ALLMÄN DEL. När man avtalar om att minska lönekostnaderna skall minskningen i första hand inriktas på andra lönefaktorer än grundtimlönerna.

Så här gör du i Skolportalen

MÄSSHANDBOK ENTREPRENÖRSKAP PÅ RIKTIGT 2016 KRONOBERG

LATHUND PA-WEBBEN KOMPETENSSÖKNING. Version Sida 1 av 7

Laboration: Att inhägna ett rektangulärt område

Easy Planning blir med dessa funktioner ett mycket kraftfullt verktyg för planering. Vi hoppas att våra kunder ska få stor nytta av programmet.

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

Driftinstruktion Digitalt dagkopplingsur 7LF41. 7LF VAC 1-kanal utan specialfunktioner

Transkript:

Introduktion till att använda sig av GLPK 1. Det finns inget grafiskt gränssnitt, som i Minitab eller Excel, utan man kör direkt i ett kommandofönster. 2. Programmet glpsol.exe och dess drivrutin (glpk44.dll-fil) finns på den allmänna serverdatorn, eller i den utdelade mappen hemkatalog E:\kursmatrial\optimering. 3. Börja med att kopiera över optimeringsmappen till den dator du sitter vid. (Det ryms på en diskett också om du vill spara undan det och ta det någon annanstans). Kopiera mappen optimering till C:\ förslagsvis. Du kommer att förstå varför det är bra att lägga mappen direkt på C: när du testar det här själv. 4. Kommandofönstret kommer man åt genom att klicka på Start Alla program tillbehör kommandotolken eller att man klickar på Start kör Och i rutan som dyker upp skriver man cmd 5. Hur vandrar man runt i ett filsystem på en dator från ett kommandofönster? cd.. för att klättra upp i filstrukturen. cd foldernamn för att komma in i en folder. Ex. Antag att du vill till foldern Dell\version01\r098463\bin skriv då cd C:\Dell\version01\r098463\bin från kommandoraden. 6. I optimeringsmappen ligger två pdf filer som är hjälpfiler. Det finns ytterligare en mapp som heter bin och i den mappen ligger programmet. 7. Programmet körs genom att man skriver glpsol --output svar.txt --lpt namn.txt i bin mappen. 8. namn.txt är ditt linjära optimeringsproblem med dess bivillkor som du vill hitta lösning till. 9. svar.txt är en fil som genereras med de resultat som du fått från din körning. 10. Anteckningar (Notepad) är ett lämpligt program att använda för att skriva in optimeringsproblemet i. 11. Observera att man kan välja vilka namn man vill på in- och ut-datafilerna. Låt oss kolla hur det här ser ut genom att göra några exempel. Det första finns också som exempel 1 i examensarbetet av Bernt-Ola Sandström som ni fått en kopia av. Tre produkter ska tillverkas med olika materialåtgång och olika arbetstidsåtgång. Det finns begränsat med råvara och arbetstid och det är olika vinstmarginaler på respektive produkt. Vårt mål är då givetvis att maximera den vinst vi kan göra under ovanstående bivillkor. Om vi formulerar problemet i programmet anteckningar för glpsol ser det ut som följer

Maximize vinst: 60 skrivbord + 30 bord + 20 stolar Subject to /Kommentarer lägger man in så här. traematrl: 8.0 skrivbord + 6.0 bord + 1.0 stolar <= 48 slutbehandl: 4.0 skrivbord + 2.0 bord + 1.5 stolar <= 20 bearbetning: 2.0 skrivbord + 1.5 bord + 0.5 stolar <= 8 max_bord: bord <= 5 Bounds skrivbord >= 0 bord >= 0 stolar >= 0 End Namnen på raderna som är intressanta gör att det blir lättare att koda av resultatet sen. Ovanstående sparar jag undan i en fil som jag döper till något lämpligt, tex dakota.txt Nu skriver jag på kommandoraden glpsol --output svardakota.txt --lpt dakota.txt och vips har jag en lösning på mitt problem i svardakota.txt Rows: 4 Columns: 3 Non-zeros: 10 Status: OPTIMAL Objective: vinst = 280 (MAXimum) No. Row name St Activity Lower bound Upper bound Marginal ------ ------------ -- ------------- ------------- ------------- ------------- 1 traematrl B 24 48 2 slutbehandl NU 20 20 10 3 bearbetning NU 8 8 10 4 max_bord B 0 5 No. Column name St Activity Lower bound Upper bound Marginal ------ ------------ -- ------------- ------------- ------------- ------------- 1 skrivbord B 2 0 2 bord NL 0 0-5 3 stolar B 8 0 Karush-Kuhn-Tucker optimality conditions: KKT.PE: max.abs.err. = 3.55e-015 on row 1 max.rel.err. = 1.42e-016 on row 1 KKT.PB: max.abs.err. = 0.00e+000 on row 0 max.rel.err. = 0.00e+000 on row 0 KKT.DE: max.abs.err. = 3.55e-015 on column 2 max.rel.err. = 9.87e-017 on column 2 KKT.DB: max.abs.err. = 0.00e+000 on row 0 max.rel.err. = 0.00e+000 on row 0 Här är lösningen att vi ska tillverka 2 skrivbord och 8 stolar och inga bord. Ytterligare information om vår lösning kan vi få om vi även gör en känslighetsanalys. Då lägger vi till på kommandoraden villkoret --bounds dvs glpsol --output svardakota.txt --bounds bounds.txt --lpt dakota.txt Och då erhåller vi från filen bounds.txt Rows: 4 Columns: 3 Non-zeros: 10 Status: OPTIMAL Explanation: This file presents amounts by which objective coefficients, constraint bounds, and variable bounds may be changed in the original problem while the optimal basis remains the same. Note that the optimal solution and objective value may change even though the basis remains the same. These bounds assume that all parameters remain fixed except the one in question. If more than one parameter is changed, it is possible for the optimal basis to change even though each parameter stays within its bounds. For more details, consult a text on linear programming.

Objective Coefficient Analysis No. Column name St Value Max increase Max decrease ------ ------------ -- ------------- ------------- ------------- 1 skrivbord B 60 20 4 2 bord NL 30 5 infinity 3 stolar B 20 2.5 5 Constraint Bounds Analysis No. Row name St Value Max increase Max decrease ------ ------------ -- ------------- ------------- ------------- 1 traematrl B UPPER 48 infinity 24 2 slutbehandl NU UPPER 20 4 4 3 bearbetning NU UPPER 8 2 1.33333 4 max_bord B UPPER 5 infinity 5 Variable Bounds Analysis No. Column name St Value Max increase Max decrease ------ ------------ -- ------------- ------------- ------------- 1 skrivbord B LOWER 0 2 infinity 2 bord NL LOWER 0 1.6 4 3 stolar B LOWER 0 8 infinity Antag att du har en livsmedelsaffär som är öppet varje dag hela veckan, dvs 7 dagar. Du ska försöka schemalägga antalet anställda till en minimumkostnad under förutsättning av ett uppskattat behov på personal som ser ut enligt följande Dag/Personalbehov Må Ti On To Fr Lö Sö 20 13 10 12 16 18 20 Vidare är det reglerat så att personalen endast kan jobba fem dagar i sträck för att sedan vara ledig två dagar. Kostnaden för en anställd är 3000 kr/v om den anställde jobbar vardagar. För lördag är det en extrakostnad på 250 kr och för söndag kostar det 350 kr extra. Utifrån ovanstående förutsättningar kan vi konstruera ett arbetsschema Schema start Må Ti On To Fr Lö Sö Må Ti On To Fr Lö Sö Kr A A A A A L L 3000 L A A A A A L 3250 L L A A A A A 3600 A L L A A A A 3600 A A L L A A A 3600 A A A L L A A 3600 A A A A L L A 3350 Det ger oss en möjlighet att nu bestämma objektsfunktionen som vi vill minimera, dvs vi vill minimera kostnaden: Min 3000 MA + 3250 TiA + 3600 OA + 3600 ToA + 3600 FA + 3600 LA + 3350 SA MA= schemalagd arbetsvecka utifrån start måndag osv Bivillkoren eller restriktionerna går också att bestämma nu Må) MA+ToA+FA+LA+SA>=20 Dvs vilka dagar kan man börja sitt schema på för att man ska finnas tillgänglig till att jobba måndag, tisdag osv. Ti) On) To) Fr) Lö) Sö) MA+TiA+FA+LA+SA>=13 MA+TiA+OA+LA+SA>=10 MA+TiA+OA+ToA+SA>=12 MA+TiA+OA+ToA+FA>=16 TiA+OA+ToA+FA+LA>=18 OA+ToA+FA+LA+SA>=20 Skriv in i ett text-dokument som man kan döpa till arbetstid.lpt tex.

Det kan då se ut enligt följande Minimize Kostnad: 3000 MA + 3250 TiA +3600 OA + 3600 ToA + 3600 FA + 3600 LA + 3350 SA Subject to Mo: MA+ ToA+FA+LA+SA>=20 Ti: MA+TiA+ FA+LA+SA>=11 On: MA+TiA+OA+ LA+SA>=9 To: MA+TiA+OA+ToA+ SA >=20 Fr: MA+TiA+OA+ToA+FA >=18 Lo: TiA+OA+ToA+FA+LA >=21 So: OA+ToA+FA+LA+SA>=21 Integers MA TiA OA ToA FA LA SA End Rows: 7 Columns: 7 (7 integer, 0 binary) Non-zeros: 35 Status: INTEGER OPTIMAL Objective: Kostnad = 77500 (MINimum) 77500 (LP) No. Row name Activity Lower bound Upper bound 1 Mo 20 20 2 Ti 14 13 3 On 10 10 4 To 12 12 5 Fr 16 16 6 Lo 18 18 7 So 20 20 No. Column name Activity Lower bound Upper bound 1 MA * 2 0 2 TiA * 0 0 3 OA * 2 0 4 ToA * 6 0 5 FA * 6 0 6 LA * 4 0 7 SA * 2 0 Ett företag har ett behov av personal per vecka enligt nedstående mån tis ons tor fre 5 1 6 7 4 Företaget har 5 fast anställda och kan anställa visstids-personal men till en merkostnad 1.25 mot 1 för en fast anställd. Två av de anställda har jobbat längre än de övriga och har därför högre lön 1.05 och 1.10 resp. Två av de fast anställda vill jobba deltid 80 % dvs vill vara ledig en dag i veckan. En av dessa vill bara vara ledig måndag eller fredag. En annan av de fast anställda vet att det ibland kan vara ont om jobb och kan därför tänka sig att stämpla ibland men han vill åtminstone jobba mån ons varje vecka. Man funderar på att anställa 1 eller 2 ytterligare personer pga arbetstopparna onsdag och torsdag. Hjälp företaget att schemalägga till en minimal kostnad. Här kan man utnyttja binära varibler, 0-1 variabler för att bestämma huruvida en person ska arbeta eller inte. Vi börjar med att införa beteckningar. Låt ap1 = antalet dagar som arbetare 1 jobbar ap2 = 2 ap3 = 3 Osv Då kan vi sätta ap1 = p11+p12+p13+p14+p15 och låta p11, p12,, p15 vara binära variabler. Då kommer p11 att vara 1 om arbetare 1 jobbar måndag och 0 annars. Det betyder då att ap2 = p21+p22+p23+p24+p25 ap3 = p31+p32+p33+p34+p35 osv

Detta blir då de variabler som vi ska minimera, dvs Min ap1+ap2+ap3+1.05ap4+1.1ap5+1.25ap6+1.25ap7 Antalet arbetare som vi har tillgängligt dag 1 måndag blir då, om vi betecknar detta med x1; x1 = p11+p21+p31+p41+p51+p61+p71 och på samma sätt för dag 2, tisdag; x2= p12+p22+p32+p42+p52+p62+p72 osv Behoven betecknar vi med yx, där X=1,2,3,4,5, dvs y1 = 5 y2 = 1 y3 = 6 y4 = 7 y5 = 4 osv Nu kan vi ta itu med restriktionerna på arbetarna. Arbetare 1 skulle jobba deltid 80% och vara ledig måndag eller fredag vilket vi då skulle kunna skriva som p11+p12+p13+p14+p15=4 p11+p15=1 Arbetare 2 vill jobba åtminstone måndag-onsdag varje vecka. p21+p22+p23+p24+p25<=5 p21+p22+p23=3 Arbetare 3 jobbar deltid och kan vara ledig godtycklig dag p31+p32+p33+p34+p35<=4 Arbetare 4 ska jobba 5 dagar i veckan. p41+p42+p43+p44+p45 =5 Arbetare 5 ställer upp på deltid också om det krävs p51+p52+p53+p54+p55<=5 Extraanställd nr 1 om det behövs p61+p62+p63+p64+p65<=5 Extraanställd nr 2 om det behövs p71+p72+p73+p74+p75<=5 Om y1 y5 är kravet som vi har på antalet anställda per dag då har vi att x1>=y1 eller vi kan formulera det som y1-x1<=0 y2-x2<=0 y3-x3<=0 y4-x4<=0 y5-x5<=0 Minimum ap1+ap2+ap3+1.05 ap4+1.1 ap5+1.25 ap6+1.25 ap7 Subject to \ för arbetare 1-3 är kostnaden 1 och för 4 till 7 ökar \ kostnaden från 1.05 till 1.25 \ arbetare 1 jobbar deltid 80%, dvs ledig en dag måndag eller fredag p11+p12+p13+p14+p15=4 p11+p15 = 1 \p11+p12+p13+p14+p15>2 \ arbetare 2 vill jobba åtminstone mån-ons varje vecka

p21+p22+p23+p24+p25<=5 p21+p22+p23=3 \p21+p22+p23+p24+p25>2 \ arbetare 3 jobbar deltid och kan vara ledig godtycklig dag p31+p32+p33+p34+p35<=4 \p31+p32+p33+p34+p35>2 \ arbetare 4 ska jobba 5 dagar i veckan. p41+p42+p43+p44+p45 =5 \p41+p42+p43+p44+p45>2 \ arbetare 5 ställer upp på deltid också om det krävs p51+p52+p53+p54+p55<=5 \p51+p52+p53+p54+p55>2 \ extraanställd nr 1 om det behövs p61+p62+p63+p64+p65<=5 \p61+p62+p63+p64+p65>2 \ extraanställd nr 2 om det behövs p71+p72+p73+p74+p75<=5 \p71+p72+p73+p74+p75>1 \ apx ger totala antalet dagar som varje anställd jobbar ap1-p11-p12-p13-p14-p15=0 ap2-p21-p22-p23-p24-p25=0 ap3-p31-p32-p33-p34-p35=0 ap4-p41-p42-p43-p44-p45=0 ap5-p51-p52-p53-p54-p55=0 ap6-p61-p62-p63-p64-p65=0 ap7-p71-p72-p73-p74-p75=0 x1-p11-p21-p31-p41-p51-p61-p71=0 x2-p12-p22-p32-p42-p52-p62-p72=0 x3-p13-p23-p33-p43-p53-p63-p73=0 x4-p14-p24-p34-p44-p54-p64-p74=0 x5-p15-p25-p35-p45-p55-p65-p75=0 y1-x1<=0 y2-x2<=0 y3-x3<=0 y4-x4<=0 y5-x5<=0 Mon: y1=5 Tus: y2=1 Wed: y3=6 Thu: y4=7 Fri: y5=4 Binary p11 p12 p13 p14 p15 p21 p22 p23 p24 p25 p31 p32 p33 p34 p35 p41 p42 p43 p44 p45 p51 p52 p53 p54 p55 p61 p62 p63 p64 p65 p71 p72 p73 p74 p75 End Resultatet får vi till Rows: 31 Columns: 52 (35 integer, 35 binary) Non-zeros: 137 Status: INTEGER OPTIMAL Objective: obj = 26.4 (MINimum) 26.4 (LP) No. Row name Activity Lower bound Upper bound 1 r.9 4 4 = 2 r.10 1 1 = 3 r.14 5 5 4 r.15 3 3 = 5 r.19 4 4 6 r.23 5 5 = 7 r.27 4 5 8 r.31 1 5 9 r.35 2 5 10 r.39 0 0 = 11 r.40 0 0 = 12 r.41 0 0 = 13 r.42 0 0 = 14 r.43 0 0 = 15 r.44 0 0 = 16 r.45 0 0 = 17 r.47 0 0 = 18 r.48 0 0 = 19 r.49 0 0 = 20 r.50 0 0 = 21 r.51 0 0 = 22 r.52 0 0 23 r.53-2 0 24 r.54 0 0

25 r.55 0 0 26 r.56 0 0 27 Mon 5 5 = 28 Tus 1 1 = 29 Wed 6 6 = 30 Thu 7 7 = 31 Fri 4 4 = No. Column name Activity Lower bound Upper bound 1 ap1 4 0 2 ap2 5 0 3 ap3 4 0 4 ap4 5 0 5 ap5 4 0 6 ap6 1 0 7 ap7 2 0 8 p11 * 1 0 1 9 p12 * 1 0 1 10 p13 * 1 0 1 11 p14 * 1 0 1 12 p15 * 0 0 1 13 p21 * 1 0 1 14 p22 * 1 0 1 15 p23 * 1 0 1 16 p24 * 1 0 1 17 p25 * 1 0 1 18 p31 * 1 0 1 19 p32 * 0 0 1 20 p33 * 1 0 1 21 p34 * 1 0 1 22 p35 * 1 0 1 23 p41 * 1 0 1 24 p42 * 1 0 1 25 p43 * 1 0 1 26 p44 * 1 0 1 27 p45 * 1 0 1 28 p51 * 1 0 1 29 p52 * 0 0 1 30 p53 * 1 0 1 31 p54 * 1 0 1 32 p55 * 1 0 1 33 p61 * 0 0 1 34 p62 * 0 0 1 35 p63 * 0 0 1 36 p64 * 1 0 1 37 p65 * 0 0 1 38 p71 * 0 0 1 39 p72 * 0 0 1 40 p73 * 1 0 1 41 p74 * 1 0 1 42 p75 * 0 0 1 43 x1 5 0 44 x2 3 0 45 x3 6 0 46 x4 7 0 47 x5 4 0 48 y1 5 0 49 y2 1 0 50 y3 6 0 51 y4 7 0 52 y5 4 0 Dvs vi kan sammanfatta våra resultat i en tabell Arbetare Mån Tis Ons Tor Fre Pers 1 1 1 1 1 0 Pers 2 1 1 1 1 1 Pers 3 1 0 1 1 1 Pers 4 1 1 1 1 1 Pers 5 1 0 1 1 1 Pers 6 0 0 0 1 0 Pers 7 0 0 1 1 0 Summa 5 3 6 7 4 Behov 5 1 6 7 4