7.4. A programkonstrukciók és a kiszámíthatóság

Hasonló dokumentumok
ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Programozási Módszertan definíciók, stb.

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Matematika OKTV I. kategória 2017/2018 második forduló szakgimnázium-szakközépiskola

Inverz függvények Inverz függvények / 26

Másodfokú függvények

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Országos Középiskolai Tanulmányi Verseny 2012/2013 Matematika I. kategória (SZAKKÖZÉPISKOLA) Döntő Megoldások

Elemi függvények. Nevezetes függvények. 1. A hatványfüggvény

Bevezetés az informatikába

1.1. Halmazelméleti alapfogalmak

Határérték. Wettl Ferenc el adása alapján és Wettl Ferenc el adása alapján Határérték és

Kidolgozott feladatok a gyökvonás témakörhöz (10.A osztály)

Teljes függvényvizsgálat példafeladatok

Kalkulus II., harmadik házi feladat

a.) b.) c.) d.) e.) össz. 4 pont 2 pont 4 pont 2 pont 3 pont 15 pont

A digitális számítás elmélete

Függvények határértéke és folytonossága. pontban van határértéke és ez A, ha bármely 0 küszöbszám, hogy ha. lim

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

= és a kínálati függvény pedig p = 60

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere

S0-01 Szintézis és verifikáció (Programozás elmélet)

Analízis I. zárthelyi dolgozat javítókulcs, Informatika I okt. 19. A csoport

Bevezetés a programozáshoz I. Feladatok

A differenciálegyenlet általános megoldása az összes megoldást tartalmazó halmaz.

18. előadás ÁLLANDÓ KÖLTSÉGEK ÉS A KÖLTSÉGGÖRBÉK

7. Kétváltozós függvények

Bolyai János Matematikai Társulat. Rátz László Vándorgyűlés Baja

3. Gráfok színezései

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Kétváltozós függvények ábrázolása síkmetszetek képzése által

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

10.3. A MÁSODFOKÚ EGYENLET

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Egyenletek, egyenletrendszerek

Egészrészes feladatok

Diszkrét matematika I.

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Java programozási nyelv

Algoritmizálás, adatmodellezés tanítása 6. előadás

VI. Deriválható függvények tulajdonságai

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Egyenletek, egyenletrendszerek

Az egydimenziós harmonikus oszcillátor

Információs rendszerek elméleti alapjai. Információelmélet

Automaták mint elfogadók (akceptorok)

1) Adja meg a következő függvények legbővebb értelmezési tartományát! 2) Határozzuk meg a következő függvény értelmezési tartományát!

Algoritmuselmélet 12. előadás

MAGYARÁZAT A MATEMATIKA NULLADIK ZÁRTHELYI MINTAFELADATSOR FELADATAIHOZ 2010.

Trigonometria Megoldások. 1) Oldja meg a következő egyenletet a valós számok halmazán! (12 pont) Megoldás:

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28

Matematika szintfelmérő szeptember

XXVII. Erdélyi Magyar Matematikaverseny Nagyvárad, február I. forduló - 9. osztály

Formális nyelvek - 9.

2. Logika gyakorlat Függvények és a teljes indukció

Trigonometria Megoldások. 1) Igazolja, hogy ha egy háromszög szögeire érvényes az alábbi összefüggés: sin : sin = cos + : cos +, ( ) ( )

Exponenciális és logaritmikus kifejezések Megoldások

KOVÁCS BÉLA, MATEMATIKA I.

l.ch TÖBBVÁLTOZÓS FÜGGVÉNYEK HATÁRÉRTÉKE ÉS DIFFERENCIÁLHATÓSÁGA

1. Lineáris transzformáció

Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)

Nagy Gábor compalg.inf.elte.hu/ nagy

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

A valós számok halmaza 5. I. rész MATEMATIKAI ANALÍZIS

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

Diszkrét matematika 2.C szakirány

10. elıadás: Vállalati kínálat, iparági kínálat Piaci ár. A versenyzı vállalat kínálati döntése. A vállalat korlátai

KOVÁCS BÉLA, MATEMATIKA I.

2014. szeptember 24. és 26. Dr. Vincze Szilvia

Algoritmusok, adatszerkezetek, objektumok

Deníciók és tételek a beugró vizsgára

Nagy Gábor compalg.inf.elte.hu/ nagy

Adatbázisok elmélete 12. előadás

1 1 y2 =lnec x. 1 y 2 = A x2, ahol A R tetsz. y =± 1 A x 2 (A R) y = 3 3 2x+1 dx. 1 y dy = ln y = 3 2 ln 2x+1 +C. y =A 2x+1 3/2. 1+y = x.

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa

Általános algoritmustervezési módszerek

egyenlőtlenségnek kell teljesülnie.

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Logika és számításelmélet. 10. előadás

KOVÁCS BÉLA, MATEMATIKA I.

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Lineáris programozás. A mese

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Analízis I. Vizsgatételsor

Oktatási segédlet 2014

Diszkrét matematika 2. estis képzés

Az optimális megoldást adó algoritmusok

Leképezések. Leképezések tulajdonságai. Számosságok.

Alapfogalmak. értelmetlen értelmes. Ez az egész persze nem kijelentő mondat (honnan tudjuk?!!, azt azonban tudjuk, hogy

Líneáris függvények. Definíció: Az f(x) = mx + b alakú függvényeket, ahol m 0, m, b R elsfokú függvényeknek nevezzük.

Az f függvénynek van határértéke az x = 2 pontban és ez a határérték 3-mal egyenl½o lim f(x) = 3.

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)

Analízis I. beugró vizsgakérdések

Fonyó Lajos: A végtelen leszállás módszerének alkalmazása. A végtelen leszállás módszerének alkalmazása a matematika különböző területein

Néhány érdekes függvényről és alkalmazásukról

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Exponenciális és Logaritmikus kifejezések

Átírás:

H @ tj 68 7 PROGRAMKONSTRUKCIÓK 74 A programkonstrukciók és a kiszámíthatóság Ebben az alfejezetben kis kitérőt teszünk a kiszámíthatóság-elmélet felé, és megmutatjuk, hog az imént bevezetett három programkonstrukció segítségével minden elméletileg megoldható feladatot meg tudunk oldani Ehhez kapcsolatot létesítünk a kiszámítható függvének és a jól konstruált programok között 741 Parciális rekurzív függvének A Church tézis szerint a kiszámítható függvének halmaza megegezik a parciális rekurzív függvének halmazával A kiszámíthatóság ezen modelljében csak típusú függvének szerepelnek Először az alapfüggvéneket definiáljuk: : "$#%& '( *) +-, / / 1 2 -, / 3 / 1 4%3 '( 56 879%30:0 '; <>=?, / A1 <B= @, / 1 "C @ 0 A továbbiakban definiálunk néhán elemi függvén-operátort: D E F G Kompozíció Legen és H I G6J alábbi függvén: HLK M 2 N O J, PLQARTS 4U PVSXW Y PZQ&[ és PZQ\RTS : HLK ] H 1A0 : Az és H kompozíciója az Vegük észre, hog ez az operátor megegezik az alapfogalmaknál bevezetett relációk közötti kompozícióval (tulajdonképpen a szigorú kompozícióval, de függvének esetén ez a kettő azonos) Unió Legen _ ; @ N a b c E függvének 5 `79%30:0 rögzített, és uniója / deft Jg hi j &k2ldmmmnl 3o P, S ktp S1q psrsrsr p S o @:u / PVS c és P, S k p S q psrsrsr p S o : / TfeAd J " / AT J 1A0 ' v 6ḧ w Rekurzió Legen rögzített, és H x e w Az függvén H szerinti rekurziója 2 x / O, és H / 1 %z { / 1 A H / A1 # %z{ H / } H / A} 1A0 A függvénhez hasonlóan rekurzívan definiálhatnánk ennek a függvénnek az értelmezési tartománát, de ez kívül esik a jelenlegi vizsgálódásunk körén Ezért csak azt mondjuk, hog az értelmezési tartomán azon pontok halmaza, ahonnét kiindulva a fenti rekurzió elvégezhető :

[ 0 74 A PROGRAMKONSTRUKCIÓK ÉS A KISZÁMÍTHATÓSÁG 69 _ 4 3x / -operátor Legen A -operátort erre a függvénre alkalmazva azt a ] h függvént kapjuk, amelre P, S U / 1 W / A1 4% 5 79%30:0 %A; $ / 1 15 PVS [, és / } P, S : 2 ] / A1 5 ' U W / A} 4% A fenti alapfüggvének és a bevezetett operátorok segítségvel már definiálható a parciális rekurzív függvének halmaza 28 DEFINÍCIÓ: PARCIÁLIS REKURZÍV FÜGGVÉNY függvén akkor és csak akkor parciális rekurzív, ha az alábbiak egike teljesül: Az '6 6 az alapfüggvének valamelike kifejezhető a fenti operátorok parciális rekurzív függvénekre történő alkalmazásával 742 A parciális rekurzív függvének kiszámítása Ahhoz, hog a fenti függvéneket kiszámító programokat tudjunk adni, definiálnunk eg tetszőleges függvén ( 1' rögzített) Az által meghatározott feladat specifikációja: kell az ilen függvének által meghatározott feladatot Legen " l l l l l / / l l / > / / mmm g / 1 Y > / h / 1 Most megmutatjuk, hog minden parciális rekurzív függvén által meghatározott feladat megoldható jól konstruált programmal (jól konstruáltnak tekintünk eg programot, ha elemi programokból a fenti három konstrukcióval megkapható) A bizonításhoz csak annit kell feltételeznünk, hog az alapfüggvének kiszámíthatók (megengedett) elemi programokkal A fenti feltételezést felhasználva elegendő azt megmutatni, hog az elemi függvén-operátorok(kompozíció, unió, rekurzió, -operátor) kiszámíthatók jól konstruált programokkal } PVS Kompozíció E ( i Legen és H 6J specifikációja: l l l l l / / J l l / Ekkor az HZK által meghatározott feladat

70 7 PROGRAMKONSTRUKCIÓK > / / mmm g / 1 > / HZK ] / A1 } Jelöljük / / 1 és hasonlóan / A J H / -mel azt a programot, amel kiszámítja -et, -nel azt, amelik kiszámítja H -t Tegük fel, hog ez a két program vag elemi értékadás, vag jól konstruált program Ebben az esetben a két program szekvenciája kiszámítja H K -et, azaz megoldja a fent specifikált feladatot Legen a második program utófeltételhez tartozó leggengébb előfeltétele: > H / " HZK utófeltételhez tartozó leggengébb elő- Most vizsgáljuk meg az első program ezen feltételét: PZQ\RTS ] / } / Y / A v / 1 A H / } 1 " HLK ] / A} 2 / A} P Q / 1 P S Können látható, hog ez a leggengébb előfeltétel következik -ból, és íg a szekvencia levezetési szabála és a specifikáció tételének alkalmazásával beláttuk, hog a / A h / 1 / J H / A program megoldja a fent specifikált feladatot, azaz kiszámítja P Q és H kompozícióját Unió ; @ l l l / l l l / / / k l l l J / J l l / / / P, S k p S o / / / k J / J o / J / Legen 5V 79%30:0 O rögzített, és c uniója által meghatározott feladat specifikációja: 3o > / mmm g 1 psrsrsr > A A " Ad A1 Ekkor az e függvének Tegük fel, hog a komponens függvének kiszámíthatók jól konstruált prog- @ c @ / } 5 az -edik függvént % 5 kiszámító programot Ekkor ezeknek a programoknak a szek- rammal, vag elemi értékadással Jelölje @ / venciája megoldja a fenti feladatot Legen J a -adik program utófeltételhez tartozó leggengébb előfeltételét: J > / / /?k J / / A J / o k d J / A} 1 / T J / } / 1 PVS o 1

74 A PROGRAMKONSTRUKCIÓK ÉS A KISZÁMÍTHATÓSÁG 71 Továbbá minden 5 v7 %&090 %; esetén jelölje @ az 5 -edik program @ x / -hez tartozó leggengébb előfeltételét Können látható, hog az értékadás leggengébb előfeltételére vonatkozó szabált alkalmazva: / > / / 1 AT J / A1 } / d J / 1 / } Y PVS k mmm / } Y PVS o Ha most -t és / -et összehasonlítjuk, észrevehetjük, hog megegeznek A szekvencia levezetési szabála és a specifikáció tétele alapján a / / /?k v / / A1 J / J o h J / 1 program megoldása a fent specifikált feladatnak, azaz kiszámítja / d J -t Rekurzió Legen ' rögzített, 4 j és H x e Tegük fel, hog mindketten kiszámíthatók jól konstruált programokkal vag egszerű értékadásokkal Az függvén H szerinti rekurziója által meghatározott feladat specifikációja: l l l / 3x / l l / 3x / > / / mmm g x / x / / A} x / P, S p Q > H / 1 3x / } Jelölje az -et és a H -t kiszámító programot / 1 illetve H / 1 x ez lajdonsága: > 87 %&090 x / ; H / } 1 Oldjuk meg a feladatot eg olan ciklussal, amelnek invariáns tu- A ciklus levezetési szabálát vizsgálva azt találjuk, hog -ból nem következik Ezért adunk eg olan feltételt, amelből már következik, és adunk eg programot, amel -ból -be jut (íg a megoldóprogram eg szekvencia lesz, amelnek második része eg ciklus) Legen az alábbi: % h / 1 1 > F%3d / } Ez a szimultán értékadással elérhető Az értékadás leggengébb előfeltételére vonatkozó szabál felhasználásával können látható, hog az következik -ból A ciklus levezetési szabálának második pontja alapján a ciklusfeltétel 3x / lesz A harmadik pontnak megfelelően válasszuk a N x / D kifejezést termináló függvénnek Az ötödik pont azt írja le, hog az imént definiált termináló fügvén értékének a ciklusmagban csökkennie kell Ez elérhető a eggel való növelésével

72 7 PROGRAMKONSTRUKCIÓK A néges pont kielégítéséhez vizsgáljuk meg, hog mi lesz a leggengébb előfeltétele a -t növelő értékadásnak a -re vonatkozóan # %3 # %Z 79%30:0 x / ; H / 1 # %z1a0 h x / Most már a szekvencia levezetési szabála alapján csak eg olan programot kell találnunk, amelre Ez a program a rekurzió definíciójához illeszkedően épp H / A} lesz Íg a szekvencia és a ciklus levezetés szabála valamint a specifikáció tétele garantálja, hog a %&d / A1 x / H / } # % program megoldja a H által meghatározott feladatot, azaz kiszámítja H szerinti rekurzióját -operátor -et kiszámító programot Oldjuk meg a fela- _ x / Legen vag jól konstruált programmal Tekintsük a ] l l l / l l / > / / mmm g / A} x / P, S > ] / A1 1 Jelölje v / 1 1 x / az datot eg olan ciklussal, melnek invariánsa: > h / A} 5 87 %&090 %A; / } }5 b / } %- \%, és tegük fel, hog kiszámítható egszerű értékadással által meghatározott feladatot: Az invariáns a szimultán értékadással teljesíthető Können látható, hog ennek a programnak a -re vonatkozó leggengébb előfeltétele / A1 %- \% / } %z6v / A} %z 5 87 %&090:% %; / 1 15 %z 4% következik -ból A ciklus levezetési szabálának második pontja alapján a ciklusfeltétel lesz A feladat előfeltétele garantálja, hog van olan szám, amelre / } Ma% fennáll Legen eg ilen tulajdonságú, rögzített természetes szám Ennek az értéknek a segítségével definiálhatjuk a termináló függvént: Ez kielégíti a levezetés szabál harmadik pontját Az ötödik pont megkívánja, hog a termináló függvén a ciklusmag lefutása során csökkenjen Ezt elérhetjük eggel való növelésével %z

74 A PROGRAMKONSTRUKCIÓK ÉS A KISZÁMÍTHATÓSÁG 73 A negedik pont teljesítéséhez legen leggengébb előfeltétele: > h / A} # %z 5" 79%30:0 Most már csak találnunk kell eg programot a ennek a növelésnek a -re vonatkozó %; / 1 15 %- és h / 1 # %z értékadásra teljesül, hog %- $ v / 1 # %za \0 %z állítások közé A A specifikáció tétele, valamint a ciklus és a szekvencia levezetési szabála garantálja, hog a / } %- \% 4% program megoldja a ] 743 Következmén v / A1 #% #%- által meghatározott feladatot, azaz kiszámítja ] Az előzőekben megmutattuk, hog ha az alapfüggvének kiszámíthatók egszerű értékadással, akkor a belőlük a parciális rekurzív függvéneknél megengedett operátorokkal felépített függvének kiszámíthatók jól konstruált programokkal A Church tézis szerint a kiszámítható függvének halmaza megegezik a parciális rekurzív függvének halmazával Ezek alapján kimondhatjuk az alábbi tételt: 17 TÉTEL: STRUKTURÁLT PROGRAMOZÁS ÉS KISZÁMÍTHATÓSÁG Minden kiszámítható függvén kiszámítható eg jól konstruált programmal -et 744 Relációk Eljutván az előző tételhez, fordítsuk most figelmünket a relációk felé Ahhoz, hog a relációk kiszámíthatóságát megvizsgálhassuk, definiálnunk kell a kiszámítható reláció fogalmát 29 DEFINÍCIÓ: REKURZÍVAN 6J l 6J FELSOROLHATÓ RELÁCIÓ Legen tetszőleges ( e J reláció akkor és csak akkor rekurzívan felsorolható, ha van olan parciális rekurzív függvén, amelnek értelmezési tartománára: P S A kiszámíthatóság-elmélethez igazodva, a továbbiakban csak rekurzívan felsorolható relációkkal fogunk foglalkozni Ahhoz, hog megmutassuk, hog minden kiszámítható (rekurzívan felsorolható) feladat emlékezzünk, hog minden feladat eg reláció megoldható strukturált programmal, először megadjuk a rekurzívan felsorolható relációk eg másik jellemzését 18 TÉTEL: KLEENE[1936] Ha eg tetszőleges reláció, akkor az alábbi három állítás ekvivalens: (1) rekurzívan felsorolható

74 7 PROGRAMKONSTRUKCIÓK (2) eg parciális rekurzív függvén értékkészlete (3) vag eg rekurzív függvén értékkészlete Ennek a tételnek a bizonítása lásd Ref??? konstruktív, azaz megadja mind, mind pedig felépítését Mi ezt a függvént fogjuk használni a kiszámítható feladatunk megoldóprogramjában 6J l 6J Legen eg rekurzívan felsorolható reláció, és jelölje az előző tétel konstrukciójával kapott (totális) rekurzív függvént Specifikáljuk a feladatot az alábbi módon: 6J l 6J `6J > 2C > n Y P > g5" Ez a feladat megoldható eg olan ciklussal, amelnek invariáns tulajdonsága: 6 5 } A ciklus levezetési szabálának felhasználásával können belátható, hog az alábbi program megoldása a fenti feladatnak: 5T %3 %z C 5 # %z 5 C5]#% A bizonításban a termináló függvén megadásánál uganazt a technikát alkalmazzuk, mint a -operátornál Ezzel az előzőleg függvénekre kimondott tételünket általánosíthatjuk relációkra: 19 TÉTEL: STRUKTURÁLT PROGRAMOZÁS ÉS KISZÁMÍTHATÓ RELÁCIÓK Minden kiszámítható reláció kiszámítható eg jól konstruált programmal Megjegzés Az egetlen feltevés, amit a fenti meggondolásokban használtunk az volt, hog az alapfüggvének kiszámíthatóak Íg aztán ezek az eredmének kiterjeszthet ők a relatíve kiszámítható függvének (uganezen operátorokkal eg tetszőleges alaphalmazból képzett függvének), vag a parciális rekurzív funkcionálok halmazára is (Ref[1, page 174])