Čtěte prosím tuto stránku celou a pozorně.
Během noční hry Matrix 2006 bylo nutné splnit následující úkol: Ve Stromovce bylo rozmístěno 13 agentů, každý měl své jméno. Týmy měly na začátku 5 vizitek se jmény. Kdo dal vizitku agentovi s odpovídajícím jménem, mohl si vybrat jinou vizitku podle barvy. Ta odkazovala zase na dalšího agenta. Cílem bylo získat vizitky 3 barev s jménem hlavního (spřáteleného) agenta.
Je potřeba dodat, že pokud jste jednoho agenta opakovaně požádali o vizitku stejné barvy, tak vám pokaždé dal stejnou vizitku (se stejným jménem). Představíme-li si agenty jako vrcholy grafu, pak od každého agenta (s výjimkou hlavního) vedly tři orientované hrany, odpovídající třem různým barvám.Pro úplnost je potřeba znát ještě několik detailů:
Napište program, který prozkoumá síť agentů a najde optimální postup, který by měl být použit v případě, že tým od začátku znal síť agentů. Kritérium pro optimální postup je čas, který je potřeba k doručení všech tří vizitek hlavnímu agentovi. Čas je dán délkou nejdelší trasy. Vzdálenost agentů je možné odhadnout pomocí vzdušné vzdálenosti (lze ji odečíst z mapy).
Použijte Dijkstrův algoritmus pro hledání nejkratší cesty v grafu. Jeho podrobný popis najdete například v učebnicích:
Odkazy na webu:
Vstup je zajištěný pomocí unity Stromovk.pas. Použití unity by mělo být jasné z komentářů ve zdrojovém kódu.
Výstupem je soubor vystup.txt, který obsahuje tři řádky se třemi trasami, které vedou k doručení tří různě barevných vizitek hlavnímu agentovi. Na každém řádku je nejprve číslo agenta (ID), které musí odpovídat jedné z pěti vizitek, které měl tým na počátku. Dál následuje seznam barev vizitek, které má hráč postupně chtít po jednotlivých agentech. Barvy jsou kódovány pomocí písmen R, G, Y. Číslo agenta i barvy jsou oddělené mezerou. Na konci řádku může být jedna mezera navíc.
Příklad:
5 R G Y R R G Y 3 R R R G Y G 4 R G G G G R
Ze zadání je jasné, že každý ze tří řádků by měl končit na jiné písmeno. Na pořadí řádků nezáleží.
Příklady souborů s výstupem a soubor
agenti.pas?
hruska (zavináč) popelka (tečka) ms (tečka) mff (tečka) cuni (tečka) cz s předmětem zprávy PGM - agenti a s přiloženým souborem agenti.pas..exe soubory.
Termín zadání: 15.12.2006.
Termín odevzdání: do 7.1.2007 včetně.
Termín odevzdání oprav: do 31.3.2007 včetně.
hruska (zavináč) popelka (tečka) ms (tečka) mff (tečka) cuni (tečka) cz