The Postal Owl

Logged in: Santa Claus (home)   

Algoritmy a datové struktury 1

Back to the course

DÚ 7: Minimální kostra s danými listy

Deadline: 2022-04-14 10:40 (266 days ago)

Pavel Veselý — 2022-04-01 11:35 (279 days ago) — reply

Máme dán souvislý graf $G$ s ohodnocenými hranami (BÚNO je ohodnocení unikátní, tedy žádné dvě hrany ho nemají stejné).
Také dostaneme podmnožinu $U$ vrcholů $G$. Najděte minimální kostru $G$ takovou, že všechny vrcholy v $U$ jsou listy této kostry (i jiné vrcholy mohou být listy). Algoritmus by měl rozpoznat situaci, že taková kostra neexistuje.

Santa Claus — 2022-04-14 14:22 (266 days ago) — editreply

Vzhledem k tomu, že z hran incidentních vrcholu z $U$ bude v kostře od každého vrcholu jen jedna, můžeme k problému přisoupit takto:

Nejdříve z grafu všechny vrcholy $U$ odebereme, pokud vytvořený graf není souvislý, daná kostra nejde sestrojit. Na zbylém grafu pak spustíme standartní algoritmus. K nalezené kostře přilepíme vrcholy $U$, a to tak, že pro každý $u \in U$ vybereme hranu incidentní s $u$ a s jedním vrcholem, který není v $U$, a sice z těchto hran tu s minimálním ohodnocením. Pokud taková hrana neexistuje, kostra s danými listy nejde sestrojit.

Jako standartní algoritmus můžeme použít například Jarníkův algoritmus.

Veškeré průchody včetně případného ověření souvislosti grafu se nám schovají do asymptotické složitosti standartního algoritmu: při přilepování vrcholů projdeme všechny vrcholy z $U$ jednou a každou hranu maxímálně dvakrát.

Pavel Veselý — 2022-04-20 15:04 (260 days ago) — reply

výborně

Points: 9.00

New post (You can use Markdown with KaTeX math here)

Preview: