5032124663

5032124663



20


1. PROJEKTOWANIE I ANALIZA ALGORYTMÓW

TABELA 1.2.

Jeden ze sposobów pokolorowania grafu z rysunku 1.2 za pomocą „zachłannego” algorytmu

Kolor


Wierzchołki


Ekstra


niebieski    AB, AC, AD, BA, DC, ED

BA, DC, ED AD, BA, DC, ED BA, DC, EA, ED


czerwony    BC, BD, EA

zielony    DA, DB

żółty    EB,    EC

Rozstrzygniemy tę wątpliwość za pomocą elementarnych wiadomości z teorii grafów. Nazwijmy k-kliką zbiór k wierzchołków, w których każde dwa połączone są krawędziami. Jest oczywiste, że nie da się pokolorować A:-kliki przy użyciu mniej niż k kolorów. Gdy spojrzymy uważnie na rysunek 1.2 spostrzeżemy, że wierzchołki AC, DA, BD i EB tworzą 4-klikę, wykluczone jest zatem pokolorowanie grafu wykorzystując mniej niż 4 kolory, zatem nasze rozwiązanie jest optymalne pod względem liczby faz. □

Pseudojęzyki i stopniowe precyzowanie

Gdy tylko znajdziemy odpowiedni model matematyczny dla rozwiązywanego problemu, możemy przystąpić do formułowania algorytmu w kategoriach tego modelu. Początkowa wersja takiego algorytmu składa się zazwyczaj z bardzo ogólnych instrukcji, które w kolejnych krokach należy uściślić, czyli zastąpić instrukcjami bardziej precyzyjnymi. Przykładowo, sformułowanie „wybierz dowolny niepokolorowany jeszcze wierzchołek” jest intuicyjnie zrozumiałe dla osoby studiującej algorytm, lecz aby z algorytmu tego stworzyć program możliwy do wykonania przez komputer, sformułowania takie muszą zostać poddane stopniowej formalizacji. Postępowanie takie nazywa się stopniowym precyzowaniem (ang. stepwise refinement) i prowadzi do uzyskania programu w pełni zgodnego ze składnią konkretnego języka programowania.

Przykład 1.2. Poddajmy więc stopniowemu precyzowaniu „zachłanny” algorytm kolorowania grafu, a dokładniej jego część związaną z konkretnym kolorem. Zakładamy wstępnie, że mamy do czynienia z grafem G, którego niektóre wierzchołki mogą być pokolorowane. Poniższa procedura tworzy zbiór wierzchołków newclr, którym należy przyporządkować odnośny kolor. Procedura ta wywoływana jest cyklicznie tak długo, aż wszystkim węzłom grafu przyporządkowane zostaną kolory. Pierwsze, najbardziej ogólne sformułowanie wspomnianej procedury może wyglądać tak, jak na listingu 1.1.

LISTING 1.1.

Początkowa wersja procedury greedy

procedurę greedy ( var G: GRAPH; var newclr: SET );

{ greedy zapisuje w newclr zbiór wierzchołków, którym należy przyporządkować ten sam kolor } begin

{1}    newclr:= 0;2

Symbol 0 oznacza zbiór pusty.



Wyszukiwarka

Podobne podstrony:
18 I. PROJEKTOWANIE 1 ANALIZA ALGORYTMÓW TABELA 1.1. Macierzowa reprezentacja grafu z rysunku 1.2 AB
Rysunek 5 przedstawia jeden ze sposób jakie automat z rysunku przechodzi przez poszczególne stany dl
Jeden ze sposobów modlitwy Pismem Świętym JEDEN ZE SPOSOBÓW MODLITWY PISMEM _ŚWIĘTYM_ 1.   
Kartkowka 5 13 2014 letni (A) N 2014 A 1. Podaj definicję NWD dwóch liczb i opisz jeden ze sposobó
Kartkowka 5 13 2014 letni (B) 1. Podaj definicję NWW dwóch liczb i opisz jeden ze sposobów znajdow
Kartkowka poprawkowa 5 13 2014 letni N3 poprawa 2014 1. Podaj definicję NWW dwóch liczb i opisz je
Obraz1 (131) ównoległydi i nie przecinaj ących się w jednym punkcie. Możemy to uczynić ująć jeden z
że podmiot autobiograficzny to jeden ze sposobów istnienia nowoczesnego „ja”, o jego nowoczesności z
Image2169 ZAGADNIENIA WYMIANY CIEPŁA W PRZEGRODACH BUDOWLANYCH Ciepło to jeden ze sposobów, obok pra
Z analizy danych (Tabela 2.) wynika, że udział euro w rozliczeniach i fakturowaniu eksportu zewnętrz
dziewczyna3 Wsmarowywanie masła za paznokcie to tylko jeden ze sposobów „upłynniania” jedz
64 (70) 128 WĘZŁY MOCUJĄCEPĘTLA PRUSIKA Jest to jeden ze sposobów mocowania pętli do liny pionowej l
22 I. PROJEKTOWANIE I ANALIZA ALGORYTMÓW {4}    end endend; {greedy} Zredukowaliśmy
24 1. PROJEKTOWANIE I ANALIZA ALGORYTMÓW oprócz liczb dziesiętnych honorować także liczby w postaci
26 I. PROJEKTOWANIE I ANALIZA ALGORYTMÓW programowania różnią się od siebie zestawem elementarnych

więcej podobnych podstron