Algorytmy Matematyka Dyskretna

background image

Algorytmy – Matematyka Dyskretna

Teoria grafów

Algorytm wyznaczania kodu Prufera

Aby wyznaczyć kod Prufera dla danego drzewa T na zbiorze wierzchołków
{1, ..., n}, należy:

1. Znaleźć najmniejszy wierzchołek stopnia jeden, powiedzmy „v. Niech

w” będzie wierzchołkiem połączonym z „v”;

2. Zapisać „w oraz usunąć wierzchołek „v” wraz z krawędzią „vw”;

3. Jeśli w drzewie pozostała więcej niż jedna krawędź, to przejść do kroku

1., w przeciwnym razie zakończyć algorytm.

Otrzymany ciąg liczb jest kodem Prufera dla drzewa T.

Algorytm otrzymywania drzewa z kodu

Dla zadanego ciągu liczb (a1, a2, ..., an-2) wybranych w dowolny sposób ze
zbioru {1, ..., n}, aby wyznaczyć drzewo T , dla którego ciąg ten jest kodem
Prufera, należy:

1. Zapisać dwie listy; pierwszą (a1, a2, ..., an-2) oraz drugą {1,2, ..., n} i

rozpocząć ze zbiorem wierzchołków {1, ..., n} i pustym zbiorem
krawędzi.

2. Wyznaczyć z drugiej listy najmniejszą liczbę, powiedzmy „i”, która nie

występuje na pierwszej liście. Usunąć pierwszy element z pierwszej listy,
powiedzmy „j”, usunąć „i” z drugiej listy oraz dodać do zbioru krawędzi
ji.

3. Jeśli pierwsza lista zawiera co najmniej jedną liczbę, to przejść do punktu

2. Jeśli pierwsza lista jest pusta, to druga będzie się składać z dokładnie
dwóch liczb. Do zbioru krawędzi dodać ostatnią, której wierzchołkami są
właśnie te liczby i zakończyć algorytm.

1

background image

Algorytm obliczania wartości wyrażenia w postaci postfixowej

Dla kolejnych elementów zapisu wyrażenia:

jeżeli element jest stałą lub zmienną, to wkładamy jego wartość na stos,

jeżeli element jest znakiem operacji, to:

zdejmujemy dwie wartości z wierzchu stosu,

wykonujemy operację na tych wartościach,

obliczoną wartość wkładamy na wierzch stosu,

po przejściu całego wyrażenia jego wartość znajduje się na stosie.

Algorytm przeszukiwania drzewa metodą „wgłąb”

Dane wejściowe: drzewo T .

Odwiedzamy korzeń  i wkładamy go na STOS; zaznaczamy  , jako
wierzchołek odwiedzony;

Dopóki STOS nie jest pusty, powtarzamy:

Jeżeli „v” jest wierzchołkiem na wierzchu STOSU to sprawdzamy,
czy istnieje syn „u” wierzchołka „v”, który nie był jeszcze
odwiedzany. Najpierw sprawdzamy „v0”, a potem „v1”.

Jeżeli takie „u” się znajdzie, to odwiedzamy „u”, wkładamy je na
wierzch STOSU i zaznaczamy, jako wierzchołek odwiedzony (np.
skreślamy).

Jeżeli takiego „u” nie ma, to zdejmujemy „v” ze STOSU i cofamy
się do wierzchołka będącego na stosie pod spodem.

Algorytm przeszukiwania drzewa metodą „wszerz”

Odwiedzamy korzeń drzewa  i wkładamy go do KOLEJKI;

Dopóki KOLEJKA nie jest pusta, powtarzamy:

bierzemy jeden wierzchołek „v” z początku KOLEJKI;

odwiedzamy wszystkich synów wierzchołka „v” i wkładamy je na
koniec kolejki.

2

background image

Teoria liczb

Algorytm Euklidesa

Aby obliczyć największy wspólny dzielnik dwóch dodatnich liczb naturalnych a,
b, powtarzamy aż do skutku:

dopóki a×b≠0 , wykonuj:

jeżeli a0 , to a := a mod b,

w przeciwnym wypadku b := b mod a.

NWD(a, b) = ab ,

Rozszerzony algorytm Euklidesa

Dane wejściowe: dwie liczby naturalne a,b.

Dane wyjściowe: NWD(a, b) oraz liczby całkowite x,y takie, że

xa + yb = NWD(a, b).

podstaw: x

a

:=1, y

a

:=0, x

b

:=0, y

b

:=1,

dopóki a×b≠0 , wykonuj:

jeżeli a0 , to a := a mod b,

x

a

:= x

a

x

b

× 

a÷b ;

y

a

:= y

a

y

b

× 

a÷b;

w przeciwnym wypadku: b := b mod a,

x

b

:= x

b

x

a

× 

b÷a;

y

b

:= y

b

y

a

× 

b÷a ;

NWD(a, b): = a + b.

Jeżeli a > 0 , to x := x

a

, y := y

a

;

Jeżeli b > 0 , to x := x

b

, y := y

b

.

3

background image

Spis treści

Teoria grafów........................................................................................................................................1

Algorytm wyznaczania kodu Prufera..............................................................................................1
Algorytm otrzymywania drzewa z kodu..........................................................................................1
Algorytm obliczania wartości wyrażenia w postaci postfixowej....................................................2
Algorytm przeszukiwania drzewa metodą „wgłąb”........................................................................2
Algorytm przeszukiwania drzewa metodą „wszerz”.......................................................................2

Teoria liczb...........................................................................................................................................3

Algorytm Euklidesa.........................................................................................................................3
Rozszerzony algorytm Euklidesa.....................................................................................................3

4


Wyszukiwarka

Podobne podstrony:
Matematyka dyskretna Poprawność algorytmu
5 Algorytmy wyznaczania dyskretnej transformaty Fouriera (CPS)
matematyka dyskretna w 2 id 283 Nieznany
Denisjuk A Matematyka Dyskretna
C2, Matematyka studia, Matematyka dyskretna
Matematyka Dyskretna Test#1
Matematyka dyskretna Zadania(1)
Matematyka dyskretna id 283281 Nieznany
Kolo 3, Politechnika, Matematyka Dyskretna
Matematyka dyskretna opracowani Nieznany
Matematyka dyskretna 2004 01 Podstawowe pojęcia, oznaczenia
Wykład z dnia 10.05.2008, Zajęcia, II semestr 2008, Matematyka dyskretna i logika
Matematyka Dyskretna Test 2a
Matematyka dyskretna prawd id 7 Nieznany
Matematyka Dyskretna Test 2d
Matematyka dyskretna syllabus (2)
algorytmy1, matematyka

więcej podobnych podstron