Labb 4: NP-fullst�ndighetsreduktioner - Rollbes�ttning
F�r ADK g�ller: Om du redovisar labben senast den 23 april f�r du en bonuspo�ng p� tentan.
P� �vningen den 16 april har du dessutom m�jlighet att redog�ra f�r l�sningen p� teoriuppgifterna nedan. Korrekt l�sning av dessa ger en bonuspo�ng p� tentan. Sen redovisning ger ingen bonus f�r labb eller teoriuppgifter. F�r SUALKO g�ller: Labben �r frivillig men kan ge bonuspo�ng. R�tt l�st labb ger en po�ng och teoriuppgifterna en po�ng som vanligt. Ansvarig f�r castingen p� ett filmbolag beh�ver koppla ihop r�tt sk�despelare med r�tt roller. Samma person kan spela flera roller, men samma roll kan endast innehas av en person. Manus anger vilka roller som �r med i samma scener. Inga monologer f�r f�rekomma. Varje sk�despelare f�r bara ha en roll i varje scen.
Dessutom �r divorna p1 och p2 garanterade vid varje
castingtillf�lle. Detta medf�r extraarbete eftersom de b�da inte t�l
varandra och rollerna ska bes�ttas s� att de aldrig spelar mot
varandra. Rollbes�ttningsproblemet �r att avg�ra ifall alla roller kan
bes�ttas med de sk�despelare som finns till hands. Ing�ende parametrar
�r allts�:
IndataformatRad ett best�r av tre tal: n, s och k (antal roller, antal scener och antal sk�despelare, n≥1, s≥1, k≥2).De f�ljande n raderna representerar villkoren av typ 1 och b�rjar med ett tal som anger antalet efterf�ljande tal p� raden, f�ljt av de m�jliga sk�despelarnas nummer (mellan 1 och k, kursiverade i exemplen nedan). De sista s raderna �r villkor av typ 2 och b�rjar ett tal som anger antalet efterf�ljande tal p� raden, f�ljt av tal som representerar de olika rollerna som �r med i respektive scen. Varje roll f�rekommer h�gst en g�ng p� varje s�dan rad, s� antalet roller p� en rad ligger mellan 1 och n. Fr�ga: Kan rollerna bes�ttas med h�gst k st sk�despelare s� att p1 och p2 deltar men inte �r med i samma scener som varandra? Exempel p� godk�nda indata
UppgiftI den h�r laborationen ska du visa att rollbes�ttningsproblemet �r NP-sv�rt genom att reducera ett k�nt NP-fullst�ndigt problem, som finns inlagt i Kattis. Din reducerade instans kommer att granskas och l�sas av Kattis. Du f�r v�lja mellan att reducera problemen Graff�rgning (problem-id: adkreduction1) och Hamiltonsk cykel (adkreduction2). Indataformat f�r dessa problem beskrivs nedan. Din uppgift �r allts� att implementera en reduktion, inte att l�sa problemet.Kattis testar om din reduktion �r korrekt, men du m�ste naturligtvis kunna bevisa att den �r det vid redovisningen. Kattis svar �r egentligen avsedda att v�gleda dig i arbetet med beviset och p�peka om du gl�mt n�got viktigt specialfall. Vid redovisningen kommer handledaren ocks� att fr�ga varf�r problemet ligger i NP och vad komplexiteten �r f�r din reduktion. Vid r�ttningen utnyttjas en l�sare f�r instanser av ett (annat) NP-fullst�ndigt problem inom rimliga storleksgr�nser. Av tekniska sk�l har Kattis en maximal till�ten storlek p� instanserna. Du f�r bara meddelanden om den ifall du skickar in en f�r stor instans. Du f�r redovisa din reduktion om du kan bevisa att den �r korrekt, oavsett om Kattis har godk�nt den eller inte. GRAFF�RGNING Indata: En oriktad graf och ett antal f�rger m. Isolerade h�rn och dubbelkanter kan f�rekomma, inte �glor. Fr�ga: Kan h�rnen i grafen f�rgas med h�gst m f�rger s� att inga grannar har samma f�rg?
Indataformat:
HAMILTONSK CYKEL Indata: En riktad graf. Fr�ga: Finns det en tur l�ngs kanter i grafen som b�rjar och slutar p� samma st�lle och som passerar varje h�rn exakt en g�ng?
Indataformat:
Teoriuppgifter
ExtrauppgiftFrivillig extrauppgift som redovisas p� labb 20-22 maj och d� kan ge betyg A eller B p� l�randem�let om hantering av problem med h�g komplexitet (och d� beh�ver man inte examineras p� det l�randem�let p� muntan). Uppgiften g�rs individuellt eller i labbgrupper om tv�.Du ska v�lja att implementera valfri heuristik som l�ser konstruktionsproblemet: Vilka sk�despelare ska ha vilka roller f�r att l�sa rollbes�ttningsinstansen med s� f� sk�despelare som m�jligt? Indataformatet f�r rollbes�ttningsproblemet �r detsamma som tidigare. Divorna �r 1 och 2.
Utdataformat:
Problemet ska l�sas enligt villkoren som specificerats f�r rollbes�ttningsproblemet, dvs divorna m�ste vara med men f�r inte m�tas, ingen roll f�r spelas av flera personer, och ingen sk�despelare f�r spela mot sig sj�lv i n�gon scen. B�ttre heuristik (dvs f�rre sk�despelare) ger b�ttre betyg. Endast l�sbara instanser kommer att ges som indata, men f�r att heuristiken i polynomisk tid s�kert ska kunna hitta en l�sning s� �r det till�tet att anv�nda s�rskilda supersk�disar med nummer k+1, k+2, ... Varje supersk�dis kan spela vilken roll som helst, men kan bara spela en enda roll. Problemet heter adkcasting i Kattis. Kattis summerar antalet anv�nda sk�despelare i testfallen och returnerar summan. F�r betyg B kr�vs ett resultat b�ttre �n 590. F�r betyg A kr�vs 480 eller b�ttre. Betygen ges under f�ruts�ttning att eleverna blir godk�nda p� efterf�ljande teoritenta. |