wniosk dijkstry - mimuw.edu.plewama/zsi/dij.pdfwniosk o w anie dzia laniach z wyk o rzystaniem...

22

Upload: vuonghanh

Post on 28-Feb-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Wnioskowanie o dzia lania h zwykorzystaniem semantyki Dijkstry dlaj ,ezyk�ow programowania: podej�s ieimperatywneEwa Madali�nska

na podstawie pra y:W. Lukaszewi z, E. Madali�nska-Bugaj. Reaso-ning about A tion and Change Using Dijkstra'sSemanti s for Programming Languages: Pre-liminary Report. Pro eedings of 14th Inter-national Joint Conferen e on Arti� ial Intelli-gen e, 1995, p. 1950-1955. 1

Wnioskowanie o s enariusza hDe�ni ja 1S enariuszem nazywamy wyra_zenieSC = h�0i A1; h�1i A2; : : : ; h�n�1i An h�ni (1)gdzie A1; : : : ; An s ,a symbolami ak ji, a �0; : : : ; �ns ,a obserwa jami.Intui yjna interpreta ja s enariusza jest na-st ,epuj ,a a: �0 za hodzi w stanie po z ,atkowym,nast ,epnie zostaj ,a wykonane sekwen yjnie ak jeA1; : : : ; An oraz dla ka_zdego 0 < i � n, po wy-konaniu ak ji Ai zaobserwowano, _ze za hodzi�i.Opis dzia lania:fwarunek wst ,epny1g Nazwa fefekt1g...fwarunek wst ,epnyng Nazwa fefektng 2

Zadanie wnioskowania o s enariusza h: \Dladanego s enariusza (1), zdania i li zby a l-kowitej k okre�sl, zy za hodzi po wykonaniuak ji A1; : : : ; Ak".Realiza ja pro esu wnioskowania o s enariu-sza h wymaga:1. zde�niowania j ,ezyka, kt�ory umo_zliwia lby for-malny opis zar�owno dopusz zalny h dzia la�n,jak i stan�ow systemu.2. skonstruowania me hanizmu wnioskowaniao efekta h dzia la�n.3. zapewnienia pe lno�s i i poprawno�s i skon-struowanego me hanizmu.

3

Przyjmujemy:1. Jako baz ,e logi zn ,a { logik ,e zda�n. Sta lezdaniowe wyst ,epuj ,a e w j ,ezyku logiki b ,e-dziemy nazywa� uentami.2. J ,ezyk opisu dzia la�n { j ,ezyk programowaniaDijkstry.3. Semantyk ,e dzia la�n b ,edziemy wyra_za� zapomo ,a transformator�ow formu l Dijkstrydla instruk ji reprezentuj ,a ej dzia lanie.

4

Przyk lad 1 (Yale Shooting S enario)Y SS = ha ^ :liload;wait; shoothT i;gdzie:1. Fluenty:a { ozna za, _ze indyk _zyje;l { strzelba jest na ladowana.2. Dzia lania:load: strzelba zostaje na ladowana;wait: ni si ,e nie dzieje;shoot: je�sli strzelba jest na ladowana, to in-dyk zostaje zabity, w pp. brak dzia lania.

5

J ,ezyk de�niowania dzia la�n i semantykaDijkstryZa lo_zenia: tylko jeden typ zmienny h { zmiennelogi zne (Boolean).V { zbi�or zmienny h logi zny h.Stan nad zbiorem V { funk ja � okre�slona nazbiorze V o warto�s ia h w zbiorze f0;1g� : V ! f0;1gJ ,ezyk aser ji L(V ) nad zbiorem zmienny h lo-gi zny h V { zbi�or formu l skonstruowany h wzwyk ly spos�ob z element�ow zbioru V , sp�ojnik�owlogi zny h (:;); ^;_;�) i sta ly h logi zny hT (prawda) i F (fa lsz).6

� { formu la,�1; : : : ; �n { wyra_zenia boolowskie,x1; : : : ; xn { zmienne�[x1 �1; : : : ; xn �n℄ ozna za formu l ,e otrzy-man ,a z � w wyniku jedno zesnego zast ,apieniawszystki h wolny h wyst ,apie�n x1; : : : ; xn odpo-wiednio przez �1; : : : ; �n.Kwanty�katory (8;9)�:8x:� def= �[x T ℄ ^ �[x F ℄,9x:� def= �[x T ℄ _ �[x F ℄.�Zauwa_zmy, _ze kwanty�katory mog ,a by� zastosowanejedynie do zmienny h logi zny h. 7

Warto�s� formu ly � 2 L(V) w stanie �, k � k�jest to element zbioru f0;1g wyzna zony wed lugregu l klasy znej logiki zda�n.Stan � spe lnia formu l ,e � wtw k � k�= 1 .Je_zeli � spe lnia �, to � nazywamy modelem�. M�owi ,a , _ze � spe lnia �, b ,edziemy zawszezak lada� , _ze � okre�sla interpreta j ,e dla wszyst-ki h zmienny h boolowski h wyst ,epuj ,a y h w�.

8

Transformatory formu l:Rozwa_zamy 3 transformatory formu l:najs labszy warunek wst ,epny { wp,najs labszy liberalny warunek wst ,epny { wlp oraznajmo niejszy warunek ko�n owy { sp.Dla dowolnej instruk ji S i formu ly �:� wp(S; �) jest formu l ,a, kt�orej modelami s ,adok ladnie wszystkie stany takie, _ze wyko-nanie S rozpo z ,ete w kt�orymkolwiek z ni hzako�n zy si ,e w stanie spe lniaj ,a ym waru-nek �.� wlp(S; �) jest formu l ,a, kt�orej modelami s ,adok ladnie wszystkie stany takie, _ze je�sli wy-konanie S rozpo znie si ,e w kt�orymkolwiekz ni h i zako�n zy, to stan ko�n owy spe lniawarunek �. 9

� sp(S; �) jest formu l ,a, kt�orej modelami s ,adok ladnie te stany, kt�ore s ,a osi ,agalne wwyniku wykonania S, je�sli S si ,e sko�n zy,gdy S rozpo znie si ,e w stanie spe lniaj ,a ymwarunek �.f�gSf�g

fwlp(�)gSf�g i �) wlp(�)fwp(�gSf�g i �) wp(�)f�gSfsp(�)g i sp(�)) �

Semantyka instruk jiLista instruk ji:skip, przypisanie, sekwen yjne z lo_zenie, alter-natywa (niedeterministy zna).1. Instruk ja skip. Jest to instruk ja \pu-sta", tzn. jej wykonanie nie zmienia stanuobli ze�n.wlp(skip; �) = sp(skip; �) = �:2. Instruk ja przypisania. Jest posta i x :=e, gdzie x jest zmienn ,a boolowsk ,a, a e jestwyra_zeniem boolowskim. W wyniku wyko-nania instruk ji warto�s� x zostaje zast ,apionaprzez warto�s� wyra_zenia e.wlp(x := e; �) = �[x e℄: 10

sp(x := e; �) =9y:((x � e[x y℄) ^ �[x y℄); (2)gdzie y jest now ,a zmienn ,a.Je�sli zmienna x nie wyst ,epuje w wyra_zeniue, r�ownanie (2) mo_zna upro�s i� do posta isp(x := e; �) = (x � e) ^ 9x:�a bior ,a pod uwag ,e, _ze zmienne s ,a tylkotypu boolowskiego, jest to r�ownowa_znesp(x := e; �) =(x � e) ^ (�[x T ℄ _ �[x F ℄): (3)W przyk lada h z ,esto b ,edziemy mie� do zynienia z przypisaniami x := e, gdzie ejest T lub F . 11

Wtedy (3) mo_zna zast ,api� przezsp(x := T; �) = x ^ (�[x T ℄ _ �[x F ℄)sp(x := F; �) = :x ^ (�[x T ℄ _ �[x F ℄)3. Instruk ja sekwen yjnego z lo_zenia. Jestona posta i S1;S2, gdzie S1 i S2 s ,a dowol-nymi instruk jami. Wykonanie jej polegana wykonaniu najpierw S1, a nast ,epnie S2.wlp(S1;S2; �) = wlp(S1; wlp(S2; �));sp(S1;S2; �) = sp(S2; sp(S1; �)):4. Instruk ja alternatywy. Jest ona posta iif B1 ! S1 [℄ � � � [℄ Bn ! Sn � (4)gdzie B1; : : : ; Bn s ,a wyra_zeniami boolow-skimi, a S1; : : : ; Sn dowolnymi instruk jami.12

B1; : : : ; Bn nazywaj ,a si ,e dozorami, a wyra_zeniaBi ! Si instruk jami dozorowanymi.Instruk j ,e alternatywy (4) b ,edziemy ozna za� if2ni=1Bi ! Si � lub w skr�o ie jako IF .Wykonanie instruk ji przebiega nast ,epuj ,a o:je�sli wszystkie dozory s ,a fa lszywe, wykonaniesi ,e ko�n zy, w prze iwnym przypadku spo�sr�odty h instruk ji dozorowany h Bi ! Si , dlakt�ory h Bi jest prawdziwe zostaje losowo wy-brana jedna i Si zostaje wykonane.wlp(IF; �) = Vni=1(Bi ) wlp(Si; �))^((Vni=1:Bi)) �)sp(IF; �) = (Wni=1 sp(Si; Bi ^ �))_((Vni=1:Bi) ^ �): 13

Uwaga 1W wersji oryginalnej j ,ezyka Dijkstry przypadek,gdy wszystkie dozory s ,a fa lszywe sprowadza si ,edo instruk ji abort, kt�orej nie w l ,a zyli�smy donaszego repertuaru. Podana tutaj wersja IFjest spe jalnym przypadkiem IF Dijkstry, tj.:if B1 ! S1[℄ � � � [℄Bn ! Sn[℄:B1 ^ : : : ^ :Bn !skip �:Uwaga 2Zauwa_zmy, _ze je�sli wi ,e ej ni_z jeden doz�or jestprawdziwy, wyb�or instruk ji dozorowanej jestniedeterministy zny.14

Klasa obli ze�n reprezentowana przez s ena-riusz SC = h�0i A1; h�1i A2; : : : ; h�n�1i An h�nijest to wyra_zenie ozna zone jako[A1; : : : ;An℄(�0; : : : ; �n): (5)Stany s enariuszaNie h STSC(i), 0 � i � n, b ,edzie zbiorem wszy-stki h stan�ow spe lniaj ,a y h nast ,epuj ,a y waru-nek:dla ka_zdego � 2 STSC(i), istnieje obli zenie 2 [A1; : : : ;An℄(�0; : : : ; �n) takie, _ze � jestosi ,agany przez po wykonaniu A1; : : : ;Ai. Ele-menty STSC(i) b ,edziemy nazywa� i-stanami SC.0-stany { stany po z ,atkowen-stany { stany ko�n owe.

15

Opis i-stan�owNie h WLPSCi i SPSCi b ,ed ,a formu lami zde�-niowanymi induk yjnie w spos�ob nast ,epuj ,a y:SPSC0 = �0;WLPSCn = :�ni dla 0 < k � nSPSCk = �k ^ sp(Ak; SPSCk�1);WLPSCn�k = :�n�k _ wlp(An�k+1;WLPSCn�k+1):

Twierdzenie 2Nie h SC = h�0i A1; h�1i A2; : : : ; h�n�1i An h�ni.Zbi�or stan�ow po z ,atkowy h s enariusza SC opi-suje formu laDSC0 = :WLPSC0 ^ �0: (6)Formu l ,e DSC0 b ,edziemy nazywa� opisem stanupo z ,atkowego s enariusza SC.16

Twierdzenie 3Nie h SC = h�0i A1; h�1i A2; : : : ; h�n�1i An h�ni.Zbi�or stan�ow ko�n owy h s enariusza SC opi-suje formu laDSCn = SPSCn : (7)Twierdzenie 4Zbi�or i�stan�ow s enariusza SC opisuje formu laDSCi = SPSCi ^ :WLPSCi (8)

17

Przyk lady1. Fluenty:a { indyk _zyje;l { strzelba jest na ladowana2. Dzia lania:load: l := T ;� wlp(load; �) = �[l T ℄;� sp(load; �) = l ^ (�[l T ℄ _ �[l F ℄);

shoot: if l! a := F ; l := F [℄ :l! skip �;� wlp(shoot; �) = (l ) �[a F; l F ℄) ^(:l) �);� sp(shoot; �) = (:a^:l^�[a T; l T ℄)_(:a ^ :l ^ �[a F; l T ℄) _ (:l ^ �);18

wait: skip;� wlp(wait; �) = sp(wait; �) = �;spin: if T ! l := T [℄ T ! l := F �;� wlp(spin; �) = �[l T ℄ ^ �[l F ℄;� sp(spin; �) = �[l T ℄ _ �[l F ℄;

19

Przyk lad 2 (Yale Shooting S enario)Y SS = ha ^ :liload;wait; shoothT i:O zekiwan ,a konkluzj ,a jest, _ze po wykonaniudzia la�n load;wait; shoot indyk nie _zyje i strzelbajest niena ladowana.Obli zamy DY SS3 .DY SS3 = sp(load;wait; shoot; a ^ :l)= :a ^ :l:Poniewa_z DY SS3 ` :a^:l, wi ,e w stanie ko�n o-wym indyk jest nie_zywy i strzelba roz ladowana.

20

Przyk lad 3 (Russian Turkey S enario)(RTS) jest przyk ladem problemu predyk ji, wkt�orym wyst ,epuj ,a dzia lania niedeterministy ze.RTS = ha ^ :li load; spin; shoot hT i:O zekiwan ,a konkluzj ,a jest, _ze nie mo_zemy stwier-dzi� zy w stanie ko�n owym indyk _zyje zy nie.Obli zamy DRTS3 .DRTS3 = sp(load; spin; shoot; a ^ :l)= :l:Poniewa_z zar�owno DRTS3 6` a jak i DRTS3 6` :a,nie mo_zna wywnioskowa� zy w stanie ko�n owymindyk _zyje, zy nie.21