Mästarprov 2
- Inlämningsdatum 5 dec 2019 av 13:00
- Poäng 0
- Lämnar in en filuppladdning
- Filtyper pdf
- Tillgänglig 21 nov 2019 kl 8:00–5 dec 2019 kl 14:00
Mästarprovet ska lösas individuellt och redovisas både skriftligt och muntligt. Inget samarbete är tillåtet, se vidare hederskodexen. Du ska alltså inte diskutera lösningar med någon annan fram till dess att alla muntliga redovisningar är avklarade. Detta är något som vi tar allvarligt på. Misstänkt otillåtet samarbete måste enligt KTH:s regler anmälas till rektor. Inlämningarna plagiatgranskas.
Skriftliga lösningar ska lämnas in i Canvas (som PDF; inskannade handskrivna lösningar går bra) senast torsdag 5 december 2019 klockan 13.00. Det är viktigt att du lämnar in i tid! Om du inte ser någon inlämningsknapp på denna sida så ska du se till att du är inloggad i Canvas genom att klicka på inloggningsikonen i den gråa vänstermenyn.
Skriv ditt namn och KTH-adress överst på framsidan av lösningarna. Läs på dina lösningar inför den muntliga redovisningen som kommer att ske mellan 9 och 13 december för någon av assistenterna eller lärarna. Boka tid för en femton minuters muntlig redovisning i Canvas senast 5 december klockan 13.00. Bokningslistorna läggs upp den 2 december sist på denna sida. Om du inte hinner göra uppgiften så avbokar du enkelt din bokning.
Det är viktigt att du förbereder dig inför den muntliga redovisningen. För att en uppgift ska godkännas ska du kunna förklara och motivera reduktionen/algoritmen muntligt och reda ut eventuella oklarheter.
Läs uppgifterna mycket noga så att du inte råkar basera dina lösningar på en missuppfattning. Fråga en lärare på kursen om något är oklart. Uppgiftslydelserna kommer också att gås igenom på föreläsningarna 25 november (uppgift 1 och 3) och 26 november.
Mästarprovet är ett obligatoriskt moment i kursen. Det består av tre uppgifter som motsvarar betygskriterierna för E, C respektive A. För godkänt (betyg E) krävs helt rätt på uppgift 1 eller 2. Helt rätt på uppgift 1 och 2 ger betyg C och alla rätt ger betyg A. Ett mindre fel på en uppgift sänker betyget ett steg. Läs mer om betyg här.
Den som blir godkänd på uppgift 3 men bara en av uppgift 1 och 2 får betyg E eller D, men resultatet för uppgift 3 sparas i Canvas, så det går sedan att munta till betyg A genom att endast göra en muntauppgift för betyg C på mästarprov 2 (eftersom den därmed har visat uppfyllelse av betygskriterierna för alla nivåer).
För att se exempel på hur utförliga lösningarna bör vara kan du titta på lösningar till tidigare mästarprov på kurswebben. Där finns också tips om hur man formulerar och genomför matematiska bevis, som du bör läsa innan du bevisar dina reduktioner. Format/datastruktur för indata och utdata ska du välja själv om det inte står specificerat i uppgiften.
Uppgift 1 Nattparkering av långt godståg
Betygskriterium: förklara principerna, utföra enklare reduktioner mellan givna problem.
Vi ska studera en utvidgning av problem 1 och 3 från mästarprov 1.
SJ vill återigen optimera nattparkeringen så att så kort del av parkeringsspåren som möjligt används. Men man har nu kommit på att packningen av tåget kan bli ännu bättre om man inte har någon begränsning alls på antalet vagnskopplingar som får lösgöras.
Problemet som vi ska studera är att givet d och vagnslängderna v1, v2, v3, ..., vn (alla tal i indata är positiva heltal) hitta och returnera det minsta L så att tåget kan parkeras på d parkeringsspår av längd L. Alla d spår ska användas. Du kan anta att d<n, men du kan inte anta någon specifik begränsning av maximala vagnslängden.
Om inmatningen exempelvis är d=3, v[1..8]=[3,4,4,2,10,6,3,4] så är svaret 12, eftersom det går att parkera tåget på 3 spår så att vagn 2, 3 och 8 står på första spåret (längd 4+4+4), vagn 4 och 5 på andra spåret (längd 2+10), vagn 1, 6 och 7 på tredje spåret (längd 3+6+3).
Om inmatningen är d=4, v[1..8]=[3,4,4,2,10,6,3,4] så är svaret 10.
Formulera först detta minimeringsproblem som ett beslutsproblem, som vi kan kalla nattparkeringsproblemet, genom att införa ett mål m. Visa sedan att beslutsproblemet är NP-fullständigt genom att dels visa att det ligger i NP och dels utforma en polynomisk Karpreduktion av det känt NP-fullständiga problemet delmängdssumma (se övningsmästarprov 2) till nattparkeringsproblemet.
I uppgift 1 är det viktigt att du visar att du kan principerna för NP-fullständighet och reduktioner. Ett fullständigt bevis för reduktionens korrekthet krävs inte.
Uppgift 2 Spel med färgkort
Betygskriterium: visa NP-fullständighet eller oavgörbarhet.
Spelet börjar med att n spelare får n stycken färgkort vardera. Antalet olika färger kan vara allt från 1 till n2. Spelarna kan se varandras kort. Slumpen avgör vem som får börja.
Varje spelare samlar poäng under spelets gång.
Ett steg i spelet går till så här.
Den spelare X som står på tur väljer två kort av samma färg, ett i sin egen hand och ett hos en annan spelare Y. (Om det inte finns någon annan spelare som har något kort i samma färg som något kort som X har så tar spelet slut.)
Sedan händer tre saker:
- X kastar sitt eget matchande kort.
- X får lika många poäng som antalet kort i Y:s hand.
- Turen går över till Y.
Det vore kul att veta om det är möjligt att få ihop minst p poäng (totalt för alla spelare) efter s stycken steg. Indata är händerna för dom n spelarna, vilken spelare som börjar, p och s.
Visa att detta beslutsproblem är NP-fullständigt!
I reduktionen ska du som känt NP-fullständigt problem använda något av dom nio problemen i listan över användbara NP-fullständiga problem som presenterades på föreläsning 25, inget annat problem. Det vill säga:
- 3CNF-SAT
Indata: boolesk 3CNF-formel
Fråga: Finns någon variabeltilldelning som satisfierar formeln? - CLIQUE
Indata: oriktad graf G, positivt heltal K
Fråga: Finns det K hörn i G som är fullständigt sammanbundna? - INDEPENDENT SET (oberoende mängd)
Indata: oriktad graf G, positivt heltal K
Fråga: Finns det K hörn i G som är helt oberoende? - VERTEX COVER (hörntäckning)
Indata: oriktad graf G, positivt heltal K
Fråga: Finns det K hörn i G som täcker samtliga kanter? - GRAPH COLORING (graffärgning)
Indata: oriktad graf G, positivt heltal K
Fråga: Kan hörnen i G färgas med K färger så att inga närliggande hörn har samma färg? - HAMILTONSK CYKEL
Indata: oriktad graf G
Fråga: Finns det någon cykel i G som passerar varje hörn exakt en gång? - SUBSET SUM (delmängdssumma)
Indata: En mängd positiva heltal P, positivt heltal K
Fråga: Finns det en delmängd av talen i P vars summa är K? - INTEGER PROGRAMMING (heltalsprogrammering)
Indata: m×n-matris A, m-vektor b, n-vektor c, tal K. Alla indata är heltal.
Fråga: Finns det en n-vektor x med heltal så att Ax≤b och c°x≥K? - SET COVER (mängdtäckning)
Indata: Uppsättning delmängder av en mängd M, positivt heltal K
Fråga: Finns det K av delmängderna som tillsammans innehåller alla element i M?
Använd Karpreduktion, inte Turingreduktion, när du visar att beslutsproblemet är NP-svårt.
Uppgift 3 Konstruktion av nattparkering av långt godståg
Betygskriterium: utföra konstruktionsreduktioner.
Åter till nattparkeringsproblemet i uppgift 1. Anta att det finns en algoritm NightParkingPossible(d, v[1..n], m) som löser (det NP-fullständiga) beslutsproblemet. Din uppgift är nu att ta fram en algoritm som med hjälp av anrop till NightParkingPossible löser konstruktionsproblemet, alltså problemet att ta fram den nattparkering (på vilket spår ska vilken vagn parkeras) som parkerar hela tåget på så korta parkeringsspår som möjligt.
Konstruera en effektiv Turingreduktion av konstruktionsproblemet till beslutsproblemet. Antalet anrop av NightParkingPossible ska vara polynomiskt, och för övrigt ska reduktionen ta polynomisk tid. Beskriv reduktionen med pseudokod. Även om det finns flera möjliga optimala lösningar så ska bara en returneras. Analysera tidskomplexiteten för din reduktion och motivera att den är korrekt.
Detaljerade bedömningskriterier
Mästarprov 2 betygsätts efter betygskriterierna för målen jämföra problem med hänsyn till komplexitet med hjälp av reduktioner samt analysera algoritmer med avseende på effektivitet och korrekthet. Dessutom kommer målet definiera och översätta centrala begrepp som P, NP, NP-fullständighet och oavgörbarhet naturligt att övas vid redovisningen.
För att det ska bli extra tydligt hur dom tre uppgifterna bedöms och för att dom assistenter som tar emot redovisningar ska hålla precis samma kravnivå finns det detaljerade bedömningskriterier, som assistenterna bedömer både skriftligt och muntligt på ett bedömningsprotokoll.
Följande tabell visar kraven för dom olika uppgifterna.
Bedömningsgrund |
Krav för uppgift 1 |
Krav för uppgift 2 |
Krav för uppgift 3 |
NP-fullständighet/NP-tillhörighet | |||
Förklarar principerna för NP-fullständighetsbevis | ja | nej | - |
Formulerar problemet som beslutsproblem | ja | - | - |
Förklarar vad en lösning består av | ja | ja | - |
Visar NP-tillhörighet | ja | ja | - |
Motiverar att verifikationsalgoritmen (motsv.) är polynomisk | ja | ja | - |
Reduktionsalgoritm | |||
Beskriver reduktionen övergripande i ord och ev. i bild | måttliga | måttliga | höga |
Beskriver reduktionen tydligt | ja | ja | ja, med pseudokod |
Reduktionen är korrekt | ja | ja | ja |
Tidskomplexitet för reduktionen | |||
Reduktionen är polynomisk | ja | ja | ja |
Anger tidskomplexitet i lämpliga variabler | ja | ja | ja |
Motiverar tidskomplexitet | måttliga | höga | höga |
Korrekthetsresonemang | |||
Redogör för vad som i allmänhet behöver visas i ett korrekthetsbevis av denna typ |
ja | ja | ja |
Framställer grundläggande idé för korrekthetsresonemanget |
nej | ja, åtminstone åt ena hållet i den skriftliga inlämningen |
ja |
Genomför ett fullständigt korrekthetsresonemang | nej | ja, åtminstone muntligt | ja |
Ovanstående krav ska vara uppfyllda efter den muntliga redovisningen. Kraven på den skriftliga lösningen är något lägre.
Bokning av muntlig redovisning
Boka en tid för 15 minuters muntlig redovisning 9-13 december i någon av bokningslistorna som nås från nedanstående länk.
Bokningslistor för mästarprov 2 (bokning är nu stängd)
Bokningslistorna stängs för ändring efter deadline, så du kan inte byta redovisningstid efter 5 december.
Redovisningen är 15 minuter, oavsett om du ska redovisa en, två eller tre av uppgifterna. Notera noga vilken tid du bokar och vilket rum redovisningen ska vara i. Alla redovisningsrum är på plan 5 i D-huset.
Det är viktigt att du förbereder dig inför den muntliga redovisningen. För att en uppgift ska godkännas ska du kunna förklara och motivera reduktioner och algoritmer muntligt och reda ut eventuella oklarheter.
Lösningsförslag
Lösningsförslag till mästarprov 2 finns här Download Lösningsförslag till mästarprov 2 finns här.
Nu är det fritt fram att diskutera mästarprovet med andra.