Gramatyki id 195211 Nieznany

background image

Programowanie Mrowiskowe z gramatyką

Mariusz Boryczka

(

boryczka@us.edu.pl)

Instytut Informatyki, Zakład Systemów Informatycznych

11 kwietnia 2006

background image

Problemy:

Gramatyki

Programowanie Genetyczne z gramatyką

Programowanie Mrowiskowe z gramatyką

Eksperymenty

Wnioski

background image

Gramatyka (ogólnie)

Gramatyką formalną nazywamy sposób opisu języka formalnego,
czyli podzbioru zbioru wszystkich słów skończonej długości nad
danym alfabetem. Aby zdefiniować gramatykę formalną trzeba
określić:

zbiór symboli terminalnych,

zbiór symboli nieterminalnych,

zbiór reguł (produkcji) które określają sposób, w jaki
wyprowadzamy słowa,

symbol startowy.

Symbole terminalne (równoważne symbolom alfabetu języka) są
symbolami, które pozostaną w wyprowadzonym słowie — w
przeciwieństwie do symboli nieterminalnych używanych tylko
podczas wyprowadzania słowa. Reguły gramatyki postaci S

1

S

2

,

gdzie S

1

i S

2

to ciągi symboli terminalnych i nieterminalnych,

określają możliwe podstawienia symboli w wyprowadzanym słowie.

background image

Gramatyka (formalnie)

Gramatyką formalną (gramatyką generacyjną) nazywamy czwórkę:

G

= hΣ, V , S, Pi,

gdzie

Σ i V są dwoma rozłącznymi alfabetami (Σ ∩ V = ∅) oraz

Σ jest alfabetem terminalnym,

V jest alfabetem nieterminalnym,

P jest skończonym zbiorem produkcji, tj. par słów
u

, w ∈ (Σ ∪ V )

zapisywanych w postaci u w , gdzie słowo u

zawiera co najmniej jeden symbol nieterminalny,

S jest wyróżnionym symbolem nieterminalnym, zwanym
symbolem startowym.

background image

Gramatyka (formalnie) - c.d.

Na zbiorze słów nad alfabetem

Σ ∪ V wprowadzamy binarną relację

G

, zwaną relacją wyprowadzenia w jednym kroku albo relacją

bezpośredniego wyprowadzenia (z gramatyki G ):

uxw

G

uyw ⇐⇒ (x y ) ∈ P;

u

, w, x, y ∈ (Σ ∪ V )

Relacja wyprowadzenia

G

jest zwrotnym i przechodnim

domknięciem relacji bezpośredniego wyprowadzenia, tj. jest
najmniejszą zwrotną i przechodnią relacją binarną na słowach ze
zbioru (

Σ ∪ V )

zawierającą relację ⇒

G

.

Wyprowadzeniem słowa w ze słowa u w gramatyce G nazywamy
ciąg słów u

0

, . . . , u

n

(

Σ ∪ V )

, taki że u

0

= u, u

n

= w, oraz

u

(i −1)

G

u

i

dla i

= 1, . . . , n. Wyprowadzeniem słowa w z

gramatyki G nazywamy jego wyprowadzenie z symbolu startowego
S tej gramatyki.

background image

Język

Język generowany przez gramatykę G , L(G ), jest zbiorem słów
terminalnych wyprowadzalnych z symbolu startowego S :

L

(G )

= {w ∈ Σ

|

S

G

w }

background image

Podział gramatyk

Wśród gramatyk formalnych Chomsky wyróżnił pewne klasy
nakładając na postać produkcji gramatyki dodatkowe warunki:

Gramatyki struktur frazowych (typu 0): nie nakłada się żadnych
warunków na postać gramatyki. Jeśli dla danego języka istnieje
gramatyka struktur frazowych, która go generuje, język ten
nazywa się rekurencyjnie przeliczalnym. Wszystkich języków
(wszystkich podzbiorów

Σ

) jest kontinuum, gramatyk zaś

przeliczalnie wiele. Istnieją zatem języki, które nie są
rekurencyjnie przeliczalne.

background image

Podział gramatyk (c.d.)

Gramatyki kontekstowe (typu 1): każda produkcja ma postać:

uAw uxw

, gdzie u, x, w ∈ (Σ ∪ V )

, A V , oraz x 6= 

Żaden język generowany przez taką gramatykę nie zawierałby
słowa pustego  . Dlatego dopuszczamy dodatkowo jeden
wyjątek: gramatyka może zawierać produkcję

S



ale wówczas S nie może wystąpić po prawej stronie żadnej
produkcji tej gramatyki. Jeśli dla danego języka istnieje
gramatyka kontekstowa, która go generuje, język ten nazywa
się językiem kontekstowym.

background image

Podział gramatyk (c.d.)

Gramatyki bezkontekstowe (typu 2): każda produkcja
gramatyki ma postać:

A x

, gdzie A V , zaś x ∈ (Σ ∪ V )

Jeśli dla danego języka istnieje gramatyka bezkontekstowa,
która go generuje, język ten nazywa się językiem
bezkontekstowym.

background image

Podział gramatyk (c.d.)

Gramatyki regularne (typu 3): każda produkcja gramatyki ma
postać:

A xB lub A x ,

gdzie A, B V , zaś x

Σ

Jeśli dla danego języka istnieje gramatyka regularna, która go
generuje, język ten nazywa się językiem regularnym.

background image

Przykład

Gramatyka generująca proste wyrażenia arytmetyczne

G

= h{1, x, y, z, (, )}, {W , S, C, A}, P, W i

gdzie zbiór produkcji P jest następujący:

W

W

+ S |

W

S

|

S

S

S

C

|

S

/

C

|

C

C

A

|

(

W

)

A

1

|

x

|

y

|

z

za pomocą której można zbudować wyrażenia:

(x

+ 1)/z

(x

+ 1) ∗ (y/z)

x y

/z

. . .

background image

Przykład (c.d.)

wyrażenie: (x

+ 1)/z

W S

W

S

S

/

C

S

S

/

C

C

/

C

S

C

(

W

)

/

C

C

(

W

)

(

W

+ S )

/ C

W

W

+

S

(

S

+ S )

/ C

W

W

(

C

+ S )

/ C

S

C

(

A

+ S )

/ C

C

A

(

x

+ S )

/ C

A

x

(

x

+ C )

/ C

S

C

(

x

+ A )

/ C

C

A

(

x

+ 1 )

/ C

A

1

(

x

+ 1 )

/ A

C

A

(

x

+ 1 )

/ z

A

z

background image

Programowanie Genetyczne z gramatyką (GGGP)

Gramatyka:

Przekształcenie genotyp – fenotyp:

background image

Programowanie Mrowiskowe – podejście operatorowe

W ACP z podejściem operatorowym wykorzystuje się zapis prefiksowy wyrażeń
arytmetycznych. W zależności od przyjętej wersji algorytmu stosuje się listę TABU lub
dopuszcza się wielokrotne wykorzystywanie tego samego węzła grafu w tworzonym
wyrażeniu. Dostosowane elementy Systemu Mrowiskowego:

1.

Graf (N, E):

N — zbiór symboli terminalnych, operatorów i funkcji (TOF),

E — krawędzie reprezentujące połączenia między sąsiednimi elementami
wyrażenia w zapisie prefiksowym.

2.

Prawdopodobieństwo przejścia mrówki k z węzła r do węzła s w chwili t:

p

k

rs

(t)

=

τ

rs

(t) · [

γ

rs

]

β

P

i J

[

τ

ri

(t)] · [

γ

ri

]

β

γ = F (

MOCs

,

długość wyrażenia

)

=

1

2

+

MOCs

!

długość wyrażenia

gdzie MOC

s

jest mocą TOF

s

, wartością związaną z liczbą jego argumentów, a zbiór J

zawiera wszystkie węzły grafu (wersja bez listy TABU) lub węzły dotychczas nieodwiedzone

(wersja z listą TABU).

background image

Programowanie Mrowiskowe – podejście operatorowe

(c.d.)

Mocy wyrażenia wykorzystuje moc (arity) operatorów, funkcji i argumentów (TOF):

TOF

l. argumentów

MOC

stała, x

0

-1

NOT, NEG, funkcje 1–arg.

1

0

+, −, ∗, /, AND, OR, XOR

2

1

Wyrażenie tworzone przez każdą mrówkę jest inicjowane symbolem F odpowiadającym
węzłowi startowemu i otrzymuje początkową wartość mocy równą 1. Dołączenie do
wyrażenia kolejnego TOF powoduje dodanie do mocy wyrażenia wartości równej mocy tego
TOF. Wyrażenie zostaje zamknięte, gdy jego moc jest równa 0:

+1

F

+

x

+

1

1

-1

+1

-1

-1

1

2

1

2

1

0

MOC WYR.:

MOC OPA:

Tak zaprojektowany algorytm generuje poprawne wyrażenia w notacji prefiksowej, np:

/ - + + 10 x * + * x * 1 * 1 - 10 1 2 1 2 + * x x * 2 1 → y

= 10 ·

x

+1

x

2

+2

background image

Programowanie Mrowiskowe z gramatyką

Przyjęte założenia:

Zastosowano podejście oparte na wersji operatorowej bez listy TABU.

Węzły grafu stanowią produkcje zadanej gramatyki bezkontekstowej.

Moc wyrażenia została zastąpiona liczbą nierozwiniętych symboli
nieterminalnych w generowanym wyrażeniu (słowie), a moc TOF –
liczbą symboli nieterminalnych w produkcji.

Nowa wartość współczynnika γ:

γ = F (

LSN

s

,

długość wyrażenia

)

=

1

1

+

LSN

s

!

długość wyrażenia

(LSN – liczba symboli nieterminalnych)

Reguła przejścia mrówki została uzupełniona o warunek losowania
jedynie spośród produkcji rozwijających symbole nieterminalne
zawarte w aktualnej postaci generowanego wyrażenia.

Określono nowy warunek stopu: LSN = 0.

background image

Eksperymenty

Prosta funkcja dwu zmiennych:

f (x

, y) = x

3

+ 2y

dla 26 par x , y ∈ h−25; 25i
Produkcje:

W

W

+ S

|

W

S

|

S

S

S

C

|

S

/

C

|

S

C

|

C

C

A

|

(

W

)

|

C

A

1

|

. . .

|

9

|

x

|

y

Parametry:

l. mrówek = 500,

τ

0

= 0.7,

q

0

= 0.3,

ρ = 0.1,

β = 1.

background image

Eksperymenty (c.d.)

Przebieg przykładowego eksperymentu:

background image

Eksperymenty (c.d.)

Wyniki:

background image

Eksperymenty (c.d.)

Inne testowane funkcje:

f (x )

= x

4

+ x

3

+ x

2

+ x

f (x )

= x

3

·

e

x

·

cos x · sin x · (sin

2

x · cos x − 1)

f (x )

= gd

1

=

1
2

ln



1

+sin x

1−sin x



f (x

, y, z) = (1 + x

0

.5

+ y

1

+ z

1

.5

)

2

background image

Eksperymenty (c.d.)

Przykładowe rozwiązania przybliżone:

f (x )

= x

4

+ x

3

+ x

2

+ x

-1

-0,5

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

-1

-0,8

-0,6

-0,4

-0,2

0

0,2

0,4

0,6

0,8

1

x

f(

x

)

Funkcja aproksymuj¹ca

Funkcja aproksymowana

background image

Eksperymenty (c.d.)

Przykładowe rozwiązania przybliżone:

f (x )

= x

3

·

e

x

·

cos x · sin x · (sin

2

x · cos x − 1)

-1

-0,8

-0,6

-0,4

-0,2

0

0,2

0,4

0,6

0,8

1

0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5 5,5 6 6,5 7 7,5 8 8,5 9 9,5

x

f(

x

)

Funkcja aproksymuj¹ca

Funkcja aproksymowana

background image

Eksperymenty (c.d.)

Przykładowe rozwiązania przybliżone:

f (x )

= gd

1

=

1

2

ln

1

+ sin x

1 − sin x

!

-5

-4

-3

-2

-1

0

1

2

3

4

5

-4

-3,4

-2,7

-2,1

-1,4

-0,8

-0,2

0,48 1,12 1,76

2,4

3,04 3,68

x

f(x

)

Funkcja aproksymowana

Funkcja aproksymuj¹ca

background image

Eksperymenty (c.d.)

Porównanie wyników dla (najgorzej aproksymowanej) funkcji:

f (x )

= x

3

·

e

x

·

cos x · sin x · (sin

2

x · cos x − 1)

met.

błąd

błąd

dł. rozw.

nr cyklu

bezwzgl.

APE

orygin.

rozw.

IBT

8.9760

58.2407%

75

89

OG

5.0800

20.1800%

45

5000

OBT

0.7774

3.4905%

117

87354

OT

0.2743

1.8234%

72

72228

IT

0.0001

0.0008%

87

18

background image

Wnioski:

Na wynik działania ma duży wpływ zadana gramatyka.

Metoda (w przedstawionej wersji) sprawdza się dla niezbyt
złożonych funkcji, ale znajduje rozwiązania dokładne
stosunkowo szybko (kilkaset cykli).

Dla złożonych funkcji znajduje się jedynie rozwiązania
przybliżone, czasem z błędem dość znacznym.

Należy zmodyfikować regułę przejścia wprowadzając elementy
strategii zachłannej.

Należy zbadać przydatność listy TABU.

Należy zbadać podejście naśladujące wesję instrukcyjną
Programowania Mrowiskowego.

background image

Wyszukiwarka

Podobne podstrony:
gramatyka id 195042 Nieznany
gramatyka 3 id 195053 Nieznany
gramatyka id 195042 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany
analiza ryzyka bio id 61320 Nieznany
pedagogika ogolna id 353595 Nieznany
Misc3 id 302777 Nieznany

więcej podobnych podstron