A helyességbizonyítás klasszikus módszerei

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "A helyességbizonyítás klasszikus módszerei"

Átírás

1 A helyességbizonyítás klasszikus módszerei Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Motiváció Kritikus algoritmusok helyességének bizonyítása a részletes tervek alapján Korlátozott feladatok: biztonságkritikus funkciók, hozzáférésvédelem, protokoll mag, Részletes terv: Pszeudo-nyelven leírt algoritmus A továbbiakban mint program (Valós programnyelvek részleges támogatása) Tételbizonyító rendszerek használata Bizonyítandó tulajdonság mint bizonyítandó tétel adott Klasszikus elő- és utófeltételek a tipikusak (contract) Kihívások: (Pszeudo) programból hogyan lesz bizonyítandó tétel? Milyen stratégiák használhatók a bizonyításhoz?

2 Felépítés: Tételbizonyító rendszerek Leíró nyelv, ennek primitívjei Axiómák (leíró nyelvhez kötve), pl. Elsőrendű logika Típusokkal kiegészített logikák Magasabbrendű logika, Következtetési szabályok Indukció, dedukció, unifikáció, Komponensek: Algoritmikus: Egy-egy következtetési szabály alkalmazása Kereső: Stratégia/taktika a szabályok kiválasztására Cél-vezérelt (visszafelé történő) keresés Mélységi vagy szélességi keresés Interaktív (felhasználói segítséggel) Tételbizonyító rendszerek alkalmazása A tételbizonyítás komplex feladat n operátort tartalmazó tétel, O(2 n ) hosszú bizonyítási szekvencia, O(2 2n ) időigény a bizonyítás megtalálásához (worst case) Használati esetek Kézi bizonyítás automatikus ellenőrzése (proof checking) Kézi bizonyítás segítése (interaktív szabályalkalmazás) Tételbizonyítás szerepe Adat-intenzív alkalmazások tulajdonságainak bizonyítása Paraméter-függőségek kezelése (pl. protokoll résztvevők száma) Indukció használható Együttes használat a modell ellenőrzéssel Kis paraméter értékre (kiindulási eset): modell ellenőrzés Tulajdonság megtartásának bizonyítása indukcióval Népszerű eszközök HOL, PVS, ACL2,

3 Tulajdonságok D dedukciós rendszer, c levezetendő kritérium (tétel) Szemantikus helyesség (soundness): Ami levezethető D-ben az igaz Szükséges a használhatósághoz Formálisan: c: ha - D c (levezethető) akkor =c (teljesül, igaz) Szemantikus teljesség (completeness): Ami igaz, az levezethető D-ben Hasznos tulajdonság, de nem szükséges Formálisan: c: ha =c akkor - D c Totális helyesség és teljesség: Minden interpretációra Dedukciós rendszer konzisztens: Nem lehet egy tételt és az ellenkezőjét is bizonyítani Program és specifikáció kapcsolata Egy P program és egy Φ specifikáció (követelmény) esetén: Szintézis feladat: Φ alapján P konstruálása Analízis feladat: P alapján Φ levezetése Verifikáció (program helyességbizonyítás): P = Φ eldöntése Optimalizáció: P = Φ alapján olyan P konstruálása, hogy P = Φ, ugyanakkor P jobb adott szempontok szerint (kisebb, gyorsabb ) Javítás: P Φalapján olyan P konstruálása, hogy P = Φ legyen

4 Bizonyításhoz leginkább használt módszer: Indukció Számítási indukció: Műveleti szemantika esetén Állapotokra: Ha s 0 (kiindulási állapot) esetén igaz a tulajdonság, és az átmenetek megőrzik, akkor végig fennáll s0 s1 s2 s3 s4 s5 s6 Strukturális indukció: Axiomatikus szemantikához Szintaktikai konstrukciókra: Ha elemekre igaz, és a konstrukciók megőrzik, akkor a teljes programra igaz c0 c1 e1 c2 e2 e3 e4 Célkitűzéseink Bizonyítási vázak rögzítése program helyesség bizonyításhoz Bizonyítási stratégia megadása Nincs teljesen automatikus, garantált módszer Nem konkrét programozási nyelvhez kötve Pszeudo-nyelv (algoritmus leírás) Továbbiakban mint programozási nyelv szerepel Pl. saját, domén-specifikus nyelvhez is alkalmazható Megkötések a bizonyíthatósághoz Programozási nyelv: Formális szemantikával rendelkezik (műveleti vagy axiomatikus szemantika) Specifikációs nyelv: Elsőrendű kijelentéslogika

5 Programozási nyelv műveleti szemantikával Konfiguráció (állapot): C Látható állapot σ (a program vizsgált kimenetében szerepel) σ[x] egy x változó értéke egy σ látható állapotban σ[x] az x változó-vektor értéke egy σ látható állapotban Rejtett állapot (helyesség szempontjából érdektelen) Szintaktikus folytatás: A további számításokat definiálja Programszámláló helyett A továbbiakban végrehajtandó forrásszövegként képzelhető el Átmenet reláció a konfigurációk között: π(p, σ 0 ) egy P program számítása σ 0 kezdőállapotból C 0 C 1 C 2 maximális szekvencia (végállapotig/végtelen) σ 0 σ 1 σ 2 látható állapot szekvencia val(π(p, σ)) = σ n véges esetben a végállapot jelölése I domén: A számítások itt értelmezettek Specifikációs nyelv Korlátozások: Determinisztikus program Nem folytonos működésű Érték- vagy állapot-transzformációt valósít meg Tulajdonság megadása: Predikátumok Előfeltétel: p(x) - a megengedhető kezdeti állapotokra x a látható állapot változói σ 0 = p(x) jelentése: kezdőállapotban igaz p(x) Utófeltétel: q(x) - az elfogadható végállapotokra true minden befejeződő számítás kielégíti false egy szabályos végállapot sem elégíti ki val(π(p,σ 0 )) = q(x) jelentése: π számítás végállapotában igaz q(x) Specifikáció példák Segédváltozók használata Specifikációs változók használata

6 Példák specifikációkra x és y nagyság szerinti sorba rendezése: előfeltétel p(x,y) = true, utófeltétel q(x,y) = x>y tömörebben felírva (true, x>y) x legyen páros a kimeneten: (true, even(x)) (true, y: x=2y) Bemeneti x-et kétszerezze meg: (x=x, x=2x) ha a doménen értelmezett even(x) itt y kötött segédváltozó q(x)-ben itt X egy specifikációs változó x/y poz. bennfoglalás eredménye q és maradéka r: (x=x>0 y=y>0, X=qY+r 0<=r<Y) ha meg kell őrizni x és y értékét: (x=x>0 y=y>0, X=qY+r 0<=r<Y x=x y=y) Program helyességi kritériumok (1) Részleges helyesség: Jelölése {p(x)} P {q(x)} Egy program részlegesen helyes p(x), q(x) szerint, ha teljesül: π(p,σ 0 ) és σ 0 = p(x) esetén ha π befejeződik, akkor val(π(p,σ 0 )) = q(x) Megjegyzések: Az előfeltételt kielégítő állapotból induló számításokra: ha befejeződik, akkor az utófeltétel igaz a végállapotban Nem mond semmit azokról a számításokról, amelyekre σ 0 p(x) {true}p{true} minden programra igaz {true}p{false} ha igaz, akkor nincs befejeződő számítás

7 Program helyességi kritériumok (2) Helyesség: Jelölése <p(x)> P <q(x)> Egy program helyes p(x), q(x) szerint, ha π(p,σ 0 ) és σ 0 = p(x) esetén π befejeződik és val(π(p,σ 0 ) = q(x) Megjegyzések: Az előfeltételt kielégítő állapotból induló számításokra: befejeződik és az utófeltétel igaz lesz a végállapotban <p(x)>p<true> csak befejeződést ír elő Felírható: <p(x)>p<q(x)> a.cs.a. {p(x)}p{q(x)} és <p(x)>p<true> azaz a program helyes, ha részlegesen helyes és befejeződik Egyszerű determinisztikus programok PLF flow language : start, x:=e, B(x), halt utasítások egyedi l címkékkel (l 0, l *, l i, ) assembly szinthez közeli pszeudo-nyelv Program szintaxis: PLF mint véges irányított gráf succ(l), succ + (l), succ - (l) használható a következő csomóponthoz Minden utasítás egy start halt útvonalon Szemantika: C=(σ,λ) konfiguráció és megadása: C(σ,λ) C (σ,λ ) a.cs.a. λ egy start: λ =succ(λ), σ =σ λ egy x:=e utasítás: λ =succ(λ), σ =σ[e/x] itt [e/x] jelöli, hogy x helyébe e helyettesítése történik λ egy B(x) elágazás: σ =B(x) esetén: λ =succ + (λ), σ =σ σ B(x) esetén: λ =succ - (λ), σ =σ

8 Példa: Maradékos osztás egész számokra x/y számítása, q hányados, r maradék Részleges helyesség ciklusmentes esetben (1) Ötlet: Számítási indukció {p}p{q} esetén Egy véges számításhoz tartozó útvonal jellemzői: u i = l i0 l i1 l i2 l ik Elérhetőségi (bejárási) feltétel: R u (x) predikátum Ha fennáll l i0 esetén, akkor éppen az u útvonalat járja be a program Állapot transzformáció: T u (x) egy állapotvektort ad Jelölések: x állapotból indulva az u útvonal bejárása utáni állapot x := T u (x) a végállapotot eredményező állapot transzformáció l im l ik szuffixe az útvonalnak az m indextől R um (x) és T um (x) erre a szuffixre vonatkoznak Ismert a végállapotra (utolsó szuffixre): R uk (x)=true T uk (x)=x - már a végállapotban vagyunk - nincs további transzformáció

9 Részleges helyesség ciklusmentes esetben (2) Visszalépéses indukció: Feltéve: Ismert R m+1 u (x) és T m+1 u (x) egy szuffixre Lépés: Az l im utasítása alapján R um (x) és T um (x) számítás x:=e hozzárendelés: R um (x) = R m+1 u (x)[e/x], B(x) feltétel pozitív ága: R um (x) = R m+1 u (x) B(x), B(x) feltétel negatív ága: R um (x) = R m+1 u (x) B(x), start: R u (x) = R u0 (x), T um (x) = T u m+1 (x)[e/x] T um (x) = T u m+1 (x) T um (x) = T u m+1 (x) T u (x) = T u0 (x) Így a végállapotban ismert R uk (x)=true és T uk (x)=x alapján a kezdőállapotra R u (x) és T u (x) levezethető Részleges helyesség ciklusmentes esetben (példa) R(x)=true T(x)=x x:=x+1 x>y R(x)=x>y T(x)=x R(x)=true T(x)=x x:=x+1 x>y R(x)=x+1>y T(x)=x+1 R(x)=x>y T(x)=x R(x)=true T(x)=x x:=x+1 x>y

10 Részleges helyesség ciklusmentes esetben (3) Részleges helyesség megmutatása: {p(x)} P {q(x)} a.cs.a. ha minden teljes u útra: x: p(x) R u (x) q(t u (x)) Doménen értelmezett elsőrendű logikai kifejezés; tételbizonyítónak beadható: x: p(x) R u (x) q(t u (x)) p és q a specifikáció alapján R és T a program forrás alapján, visszalépéses számítási indukció alapján megadható Részleges helyesség ciklusos programokra (1) Ötlet: Ciklusok felvágása Minden ciklusban egy l i utasítás kijelölése, ami azt (ciklusmentes) szegmensekre osztja I li (x) predikátum, ún. induktív állítás hozzárendelése a vágási ponthoz Első belépés után l i -nél igaz Ciklus futása során igaz marad (ciklus invariáns) Kilépés után a további szegmensekkel majd az utófeltételt igazzá teszi A szegmensek mint ciklusmentes utak az előző módszer alapján vizsgálhatók Elérhetőségi feltétel és állapot-transzformáció számítható l 0 l 1 l 2 l *

11 Részleges helyesség ciklusos programokra (2) Bizonyítási váz: Vágási pontok kijelölése a ciklusokban (legalább egy-egy) Induktív állítások felírása: I li (x) I l0 (x) = p(x) -kezdőállapotra I l* (x) = q(x) - végállapotra Ciklusokban: ld. előbb (ciklus invariáns) Verifikációs feltételek: A szomszédos vágási pontokra, azaz minden l, l vágási pontok által kijelölt u szegmensre: x: I l (x) R u (x) I l (T u (x)) bizonyítandó R u (x) és T u (x) a szegmensekre kiszámíthatók Helyes és teljes módszer Mindig találhatók megfelelő vágási pontok és induktív állítások (de ennek bizonyítása nem konstruktív ) Heurisztikus az induktív állítások felvétele Részleges helyesség ciklusos programokra (példa) I l4 (x,y,q,r) = (x 0 y>0 x=q y+r r 0)

12 Részleges helyesség ciklusos programokra: példa Befejeződés bizonyítása ciklusok esetén (1) Ötlet: Az induktív állítások paraméterezése Paraméter egy (W,>) ún. jól megalapozott halmazból Nem létezik végtelen w 0 > w 1 > csökkenő szekvencia Példák: Természetes számok, és az ezeken értelmezett > reláció Véges halmaz valódi részhalmazai, és a tartalmazás reláció Véges lista, és a prefix reláció A ciklus befejeződik, ha a paraméterről kimutatható, hogy csökken a ciklus végrehajtása során A paraméter sok esetben lehet maga a ciklusváltozó, de segédváltozót is használhatunk Megválasztása heurisztikus

13 Befejeződés bizonyítása ciklusok esetén (2) Bizonyítási váz: Jól megalapozott halmaz(ok) választása: (W,<) Vágási pontok kijelölése a ciklusokban: l 0, l i, l * Paraméterezett induktív állítások: I l (x,w) ahol w W Verifikációs feltételek (bizonyítandók): Inicializálás: x: p(x) w: I l0 (x,w) (előfeltétel bővítés) Terminálás: x: I l* (x,w) q(x) Csökkenés: Szomszédos l, l pontok által kijelölt u szegmensre: x: I l (x,w) R u (x) w <w: I l (T u (x),w ) Itt R u (x) és T u (x) a szegmensekre kiszámíthatók Helyes módszer <p(x)>p<true> bizonyítására A paraméterezett induktív állítások felvétele heurisztikus Befejeződés bizonyítása ciklusok esetén (példa) I l4 (x,y,n) = (y>0 n=r 0)

14 Rész-összefoglaló Alacsony szintű pszeudo-nyelvek (blokk diagram): Részleges helyesség ciklusmentes programokra: Visszalépéses számítási indukció Részleges helyesség ciklust tartalmazó programokra: Induktív állítások Helyesség ciklust tartalmazó programokra: Paraméterezett induktív állítások Következő lépés: Strukturált programnyelvek Helyességbizonyítás strukturált programokra Cél a komponálhatóság : Ha egy P program P 1 és P 2 szintaktikai egységekből áll, akkor P tulajdonságai P 1 és P 2 tulajdonságai alapján bizonyíthatók Strukturális indukció elve Strukturált programok: PLW nyelv P::= x:=e skip P 1 ; P 2 if B then P 1 else P 2 fi while B do P od Példa: P div : r:=x; q:=0; while r y do r:=r-y; q:=q+1 od

15 PLW szemantikája Konfiguráció: C=(P, σ) ahol P a szintaktikus folytatás (E az üres folytatás jelölése) σ a látható állapot (állapotváltozók) Átmenet reláció: C C (x:=e, σ) (E, σ[e/x]) (skip, σ) (E, σ) (P 1 ; P 2, σ) (P 1 ; P 2, σ ) ha (P 1, σ) (P 1, σ ) Itt az E;P P azonosság alkalmazható a végén (if B then P 1 else P 2 fi, σ) (P 1, σ) ha σ[b]=true (P 2, σ) ha σ[b]=false (while B do P od, σ) (P; while B do P od, σ) ha σ[b]=true (E, σ) ha σ[b]=false H dedukciós rendszer részleges helyesség bizonyításához (1) Axiómák: ASS: SKIP: {p[e/x]} x:=e {p} {p} skip {p} Szabályok a szintaktikai struktúrákhoz: SEQ: {p} P 1 {r} és {r} P 2 {q} {p} P 1 ; P 2 {q} Utófeltételként p teljesül, ha előfeltételként p[e/x] teljesül Ha (feltétel) akkor (köv.) COND: REP: {p B} P 1 {q} és {p B} P 2 {q} {p} if B then P 1 else P 2 fi {q} {p B} P {p} {p} while B do P od {p B} p ciklus invariáns

16 H dedukciós rendszer részleges helyesség bizonyításához (2) Általános szabályok: CONS: p p 1 és {p 1 } P 1 {q 1 } és q 1 q {p} P {q} AND: {p} P {q 1 } és {p} P {q 2 } {p} P {q 1 q 2 } OR: {p 1 } P {q} és {p 2 } P {q} {p 1 p 2 } P {q} Domén axiómái és szabályai: Kérdés, hogy rekurzívan megszámlálhatók-e? {true}skip{p} alakú állítások is Előfeltétel bővítés és utófeltétel szűkítés Utófeltétel részekre bontása Előfeltétel szétválasztása esetekre Részleges helyességbizonyítás példa {x 0 y 0} r:=x; q:=0; while r y do r:=r-y; q:=q+1 od {x=q y+r 0 r<y}

17 Dedukciós rendszer részleges helyesség bizonyításához (3) Egy C állítás bizonyítása: Tr I - H C ahol I a domén, Tr I a domén axiómái és szabályai H a dedukciós rendszer Példa az állításra: {x 0 y 0} P div {x=q y+r 0 r<y} Gyakorlati problémák: Domén szabályait a tételbizonyítónak ismernie kell Szabályok alkalmazásának stratégiája (keresés) Jellemzők: Az előbb felvázolt H helyessége bizonyítható Tr I - H {p}p{q} következménye = I {p}p{q} H teljessége: Ha a domén axióma- és szabályrendszere kellően bonyolult (elegendően erős): Gödel első nemteljességi tétele érvényes, azaz lehet olyan igaz állítás, ami nem bizonyítható Specifikációs nyelv kifejezőképessége elegendő-e? Definíció: Specifikációs nyelv kifejezőképessége SL specifikációs nyelv kifejező egy PL programnyelv és I domén esetén, ha p SL, P PL esetén post I (p,p) kifejezhető SL-ben P futása után elért állapotok predikátuma Kiindulási állapot predikátuma P program Egy D dedukciós rendszer relatív teljes a részleges helyesség bizonyításához, ha SL, PL, I esetén, ahol SL kifejező PL-re és I-re, fennáll: = I {p}p{q} következménye Tr I - D {p}p{q}

18 H* dedukciós rendszer helyesség bizonyításhoz Cél: PLW programok helyességének bizonyítása while B do P od ciklusok befejeződése kérdéses Ötlet (itt is): Paraméterezett állítások Jól megalapozott halmaz (pl. n természetes szám) pi(x,n) ciklus invariáns választása kell Módosuló REP szabály ebben az esetben: REP*: pi(x,n) B és <pi(x,n)>p<pi(x,n-1)> és pi(x,0) B < n:pi(x,n)> while B do P od <pi(x,0)> Többi szabály: { } helyett egyszerűen < > kell Aritmetikai kiterjesztés A módosult REP* szabály miatt: SL-nek támogatnia kell a jól megalapozott halmaz (itt: természetes számok) használatát Tipikus eset: Peano aritmetika támogatása Természetes számok és +, *, < műveletek Tételbizonyító erre felkészítve Definíciók: SL aritmetikai kiterjesztése SL +, ha minimális bővítésként a Peano aritmetikát tartalmazza I domén aritmetikai kiterjesztése I +, ha minimális bővítésként a Peano aritmetika doménjét tartalmazza

19 Aritmetikai helyesség és teljesség Aritmetikai helyesség p,q SL + mellett: Tr I+ - D <p>p<q> következménye = I+ <p>p<q> Aritmetikai teljesség p,q SL + mellett: = I+ <p>p<q> következménye Tr I+ - D <p>p<q> Itt: H* aritmetikai helyessége bizonyítható Összefoglalás Alacsony szintű pszeudo-nyelvek (blokk diagram): Részleges helyesség ciklusmentes programokra: Visszalépéses számítási indukció Részleges helyesség ciklust tartalmazó programokra: Induktív állítások Helyesség ciklust tartalmazó programokra: Paraméterezett induktív állítások Strukturált programnyelvek (while programok): Részleges helyesség: Dedukciós rendszer (strukturális indukció) Helyesség: Dedukciós rendszer, kifejezőképesség Aritmetikai kiterjesztés, aritmetikai helyesség és teljesség

Kiterjesztések sek szemantikája

Kiterjesztések sek szemantikája Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból

Részletesebben

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

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere Szekvenciális programok kategóriái strukturálatlan strukturált NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE Hoare-Dijkstra-Gries módszere determinisztikus valódi korai nem-determinisztikus általános fejlett

Részletesebben

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Algoritmusok helyességének bizonyítása. A Floyd-módszer Algoritmusok helyességének bizonyítása A Floyd-módszer Algoritmusok végrehajtása Egy A algoritmus esetében a változókat három változótípusról beszélhetünk, melyeket az X, Y és Z vektorokba csoportosítjuk

Részletesebben

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat

Részletesebben

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

Algoritmizálás, adatmodellezés tanítása 6. előadás Algoritmizálás, adatmodellezés tanítása 6. előadás Tesztelési módszerek statikus tesztelés kódellenőrzés szintaktikus ellenőrzés szemantikus ellenőrzés dinamikus tesztelés fekete doboz módszerek fehér

Részletesebben

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

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája? ,,Alap kiskérdések Logika és informatikai alkalmazásai kiskérdések 2012. február 19. 1. Hogy hívjuk a 0 aritású függvényjeleket? 2. Definiálja a termek halmazát. 3. Definiálja a formulák halmazát. 4. Definiálja,

Részletesebben

Programok értelmezése

Programok értelmezése Programok értelmezése Kód visszafejtés. Izsó Tamás 2016. szeptember 22. Izsó Tamás Programok értelmezése/ 1 Section 1 Programok értelmezése Izsó Tamás Programok értelmezése/ 2 programok szemantika értelmezése

Részletesebben

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

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:

Részletesebben

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális vagy félformális tervek Informális követelmények Formális modell: KS, LTS, TA

Részletesebben

Részletes szoftver tervek ellenőrzése

Részletes szoftver tervek ellenőrzése Részletes szoftver tervek ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/~majzik/ Tartalomjegyzék A részletes

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus.

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus. 8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus. Ágens rendszer definíciója. Példák. Fairness. (Fair tulajdonság). Gyenge fair követelmény. A fair nem determinisztikus szemantika definíciója

Részletesebben

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Program verifikálás Konkurens programozási megoldások terjedése -> verifikálás szükséges, (nehéz) logika Legszélesebb körben alkalmazott

Részletesebben

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar Formális szemantika Kifejezések szemantikája Horpácsi Dániel ELTE Informatikai Kar 2016-2017-2 Az előadás témája Egyszerű kifejezések formális szemantikája Az első lépés a programozási nyelvek szemantikájának

Részletesebben

Szoftver-modellellenőrzés absztrakciós módszerekkel

Szoftver-modellellenőrzés absztrakciós módszerekkel Szoftver-modellellenőrzés absztrakciós módszerekkel Hajdu Ákos Formális módszerek 2017.03.22. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 BEVEZETŐ 2

Részletesebben

Alapszintű formalizmusok

Alapszintű formalizmusok Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények

Részletesebben

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.

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. Programkonstrukciók Definíció Legyen π feltétel és S program A-n. A DO A A relációt az S-ből a π feltétellel képezett ciklusnak nevezzük, és (π, S)-sel jelöljük, ha 1. a / [π] : DO (a) = { a }, 2. a [π]

Részletesebben

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

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,

Részletesebben

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

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig

Részletesebben

Temporális logikák és modell ellenırzés

Temporális logikák és modell ellenırzés Temporális logikák és modell ellenırzés Temporális logikák Modális logika: kijelentések különböző módjainak tanulmányozására vezették be (eredetileg filozófusok). Ilyen módok: esetleg, mindig, szükségszerűen,

Részletesebben

Osztott rendszer. Osztott rendszer informális definíciója

Osztott rendszer. Osztott rendszer informális definíciója Osztott rendszer Osztott rendszer informális definíciója Egymástól elkülönülten létező program-komponensek egy halmaza. A komponensek egymástól függetlenül dolgoznak saját erőforrásukkal. A komponensek

Részletesebben

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

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév

Részletesebben

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális vagy félformális tervek Informális követelmények Formális modell: KS, LTS, TA

Részletesebben

Szoftver karbantartási lépések ellenőrzése

Szoftver karbantartási lépések ellenőrzése Szoftverellenőrzési technikák (vimim148) Szoftver karbantartási lépések ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.inf.mit.bme.hu/

Részletesebben

1. előadás: Halmazelmélet, számfogalom, teljes

1. előadás: Halmazelmélet, számfogalom, teljes 1. előadás: Halmazelmélet, számfogalom, teljes indukció Szabó Szilárd Halmazok Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) összessége. Egy halmaz akkor adott, ha minden objektumról eldönthető,

Részletesebben

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

Nagy Gábor  compalg.inf.elte.hu/ nagy ősz Diszkrét matematika 1. középszint 2016. ősz 1. Diszkrét matematika 1. középszint 2. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra

Részletesebben

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)

Részletesebben

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)

Részletesebben

Modell alapú tesztelés mobil környezetben

Modell alapú tesztelés mobil környezetben Modell alapú tesztelés mobil környezetben Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A terület behatárolása Testing is an activity performed

Részletesebben

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási

Részletesebben

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt rövid kérdés megválaszolása egyenként 6 pontért, melyet minimum

Részletesebben

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1 2. Rekurzió Egy objektum definícióját rekurzívnak nevezünk, ha a definíció tartalmazza a definiálandó objektumot. Egy P eljárást (vagy függvényt) rekurzívnak nevezünk, ha P utasításrészében előfordul magának

Részletesebben

Formális nyelvek - 9.

Formális nyelvek - 9. Formális nyelvek - 9. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Véges

Részletesebben

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Korlátos modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Hol tartunk most? Alacsony szintű formalizmusok (KS, LTS, KTS) Magasabb szintű formalizmusok Temporális

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Kaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest 2015. január 6.

Kaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest 2015. január 6. Bizonyítás és programozás Kaposi Ambrus University of Nottingham Functional Programming Lab Hackerspace Budapest 2015. január 6. Bizonyítás, érvelés Példa: sáros a csizmám ha vizes a föld, esett az eső

Részletesebben

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai Elérhetőségi analízis Petri hálók dinamikus tulajdonságai dr. Bartha Tamás Dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék Petri hálók vizsgálata Az elemzés mélysége szerint: Vizsgálati

Részletesebben

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1 Elsőrendű logika szintaktikája és szemantikája Logika és számításelmélet, 3. gyakorlat 2009/10 II. félév Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1 Az elsőrendű logika Elemek egy

Részletesebben

Diszkrét matematika I.

Diszkrét matematika I. Diszkrét matematika I. középszint 2013 ősz 1. Diszkrét matematika I. középszint 8. előadás Mérai László merai@compalg.inf.elte.hu compalg.inf.elte.hu/ merai Komputeralgebra Tanszék 2013 ősz Kombinatorika

Részletesebben

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

A digitális számítás elmélete A digitális számítás elmélete 8. előadás ápr. 16. Turing gépek és nyelvtanok A nyelvosztályok áttekintése Turing gépek és a természetes számokon értelmezett függvények Áttekintés Dominó Bizonyítások: L

Részletesebben

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

S0-01 Szintézis és verifikáció (Programozás elmélet) S0-01 Szintézis és verifikáció (Programozás elmélet) Tartalom 1. Programozási alapfogalmak 2. Elemi programok és program konstrukciók definíciói 3. Nem-determinisztikus strukturált programok formális verifikációja

Részletesebben

Elsőrendű logika. Mesterséges intelligencia március 28.

Elsőrendű logika. Mesterséges intelligencia március 28. Elsőrendű logika Mesterséges intelligencia 2014. március 28. Bevezetés Ítéletkalkulus: deklaratív nyelv (mondatok és lehetséges világok közti igazságrelációk) Részinformációkat is kezel (diszjunkció, negáció)

Részletesebben

2. Visszalépéses keresés

2. Visszalépéses keresés 2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel

Részletesebben

Fordítás Kódoptimalizálás

Fordítás Kódoptimalizálás Fordítás Kódoptimalizálás Kód visszafejtés. Izsó Tamás 2016. október 20. Izsó Tamás Fordítás Kódoptimalizálás / 1 Aktív változók Angol irodalomban a Live Variables kifejezést használják, míg az azt felhasználó

Részletesebben

S0-02 Típusmodellek (Programozás elmélet)

S0-02 Típusmodellek (Programozás elmélet) S0-02 Típusmodellek (Programozás elmélet) Tartalom 1. Absztrakt adattípus 2. Adattípus specifikációja 3. Adattípus osztály 4. Paraméterátadás 5. Reprezentációs függvény 6. Öröklődés és polimorfizmus 7.

Részletesebben

FFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2.

FFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2. TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyűrűk támogatás nélkül Második nekifutás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2015. október 2. TARTALOMJEGYZÉK Polinomok

Részletesebben

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje 1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt

Részletesebben

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt kis kérdés megválaszolása egyenként 6 pontért, melyet minimum 12

Részletesebben

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések 1. Az informatikai rendszereknél mit ellenőriznek validációnál és mit verifikációnál? 2. A szoftver verifikációs technikák

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

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.

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. Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi

Részletesebben

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot

Részletesebben

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1 Halmazelmélet 1. előadás Farkas István DE ATC Gazdaságelemzési és Statisztikai Tanszék Halmazelmélet p. 1/1 A halmaz fogalma, jelölések A halmaz fogalmát a matematikában nem definiáljuk, tulajdonságaival

Részletesebben

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3

Részletesebben

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26 1/26 Logika és számításelmélet I. rész Logika Negyedik előadás Tartalom 2/26 Az elsőrendű logika szemantikája Formulák és formulahalmazok szemantikus tulajdonságai Elsőrendű logikai nyelv interpretációja

Részletesebben

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás NGB_IN003_1 SZE 2014-15/2 (13) Szoftverminőségbiztosítás Szoftverminőség és formális módszerek Formális módszerek Formális módszer formalizált módszer(tan) Formális eljárások alkalmazása a fejlesztésben

Részletesebben

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Logika es sz am ıt aselm elet I. r esz Logika 1/36 1/36 Logika és számításelmélet I. rész Logika 2/36 Elérhetőségek Tejfel Máté Déli épület, 2.606 matej@inf.elte.hu http://matej.web.elte.hu Tankönyv 3/36 Tartalom 4/36 Bevezető fogalmak Ítéletlogika Ítéletlogika

Részletesebben

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

Valószínűségi modellellenőrzés Markov döntési folyamatokkal Valószínűségi modellellenőrzés Markov döntési folyamatokkal Hajdu Ákos Szoftver verifikáció és validáció 2015.12.09. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek

Részletesebben

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA Szoftver Verifikáció és Validáció, 2015 Ősz Vaitkus Márton Tartalom Motiváció Maple MiniMaple MiniMaple típusellenőrzése MiniMaple formális specifikációja MiniMaple

Részletesebben

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

2. Logika gyakorlat Függvények és a teljes indukció 2. Logika gyakorlat Függvények és a teljes indukció Folláth János Debreceni Egyetem - Informatika Kar 2012/13. I. félév Áttekintés 1 Függvények Relációk Halmazok 2 Természetes számok Formulák Definíció

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

Ismeretalapú modellezés XI. Leíró logikák

Ismeretalapú modellezés XI. Leíró logikák XI. Leíró logikák 1 eddig volt nyílt internetes rendszerekben miért van szükség ismeretalapú re ontológia készítés kérdései ontológiák jellemzői milyen ontológiák vannak most jön mai internetes ontológiák

Részletesebben

Matematika alapjai; Feladatok

Matematika alapjai; Feladatok Matematika alapjai; Feladatok 1. Hét 1. Tekintsük a,, \ műveleteket. Melyek lesznek a.) kommutativok b.) asszociativak c.) disztributívak-e a, műveletek? Melyik melyikre? 2. Fejezzük ki a műveletet a \

Részletesebben

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

Nagy Gábor  compalg.inf.elte.hu/ nagy ősz Diszkrét matematika 1. középszint 2017. ősz 1. Diszkrét matematika 1. középszint 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra

Részletesebben

A félév során előkerülő témakörök

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

Részletesebben

Hatékony technikák modellellenőrzéshez: Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Hatékony technikák modellellenőrzéshez: Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Hatékony technikák modellellenőrzéshez: Korlátos modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Hol tartunk most? Alacsony szintű formalizmusok (KS, LTS, KTS)

Részletesebben

2. Visszalépéses stratégia

2. Visszalépéses stratégia 2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:

Részletesebben

Véges automaták, reguláris nyelvek

Véges automaták, reguláris nyelvek Véges automaták, reguláris nyelvek Kiegészítő anyag az lgoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: lgoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 27. augusztus 3. véges automata

Részletesebben

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

Programozási Módszertan definíciók, stb. Programozási Módszertan definíciók, stb. 1. Bevezetés Egy adat típusát az adat által felvehető lehetséges értékek halmaza (típusérték halmaz, TÉH), és az ezen értelmezett műveletek (típusműveletek) együttesen

Részletesebben

Automatikus tesztgenerálás modell ellenőrző segítségével

Automatikus tesztgenerálás modell ellenőrző segítségével Méréstechnika és Információs Rendszerek Tanszék Automatikus tesztgenerálás modell ellenőrző segítségével Micskei Zoltán műszaki informatika, V. Konzulens: Dr. Majzik István Tesztelés Célja: a rendszerben

Részletesebben

Klasszikus algebra előadás. Waldhauser Tamás április 14.

Klasszikus algebra előadás. Waldhauser Tamás április 14. Klasszikus algebra előadás Waldhauser Tamás 2014. április 14. Többhatározatlanú polinomok 4.3. Definíció. Adott T test feletti n-határozatlanú monomnak nevezzük az ax k 1 1 xk n n alakú formális kifejezéseket,

Részletesebben

Diszkrét matematika I.

Diszkrét matematika I. Diszkrét matematika I. középszint 2014. ősz 1. Diszkrét matematika I. középszint 2. előadás Mérai László diái alapján Komputeralgebra Tanszék 2014. ősz Matematikai logika Diszkrét matematika I. középszint

Részletesebben

Programfejlesztési Modellek

Programfejlesztési Modellek Programfejlesztési Modellek Programfejlesztési fázisok: Követelmények leírása (megvalósíthatósági tanulmány, funkcionális specifikáció) Specifikáció elkészítése Tervezés (vázlatos és finom) Implementáció

Részletesebben

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI 1 A digitális áramkörökre is érvényesek a villamosságtanból ismert Ohm törvény és a Kirchhoff törvények, de az elemzés és a tervezés rendszerint nem ezekre épül.

Részletesebben

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

Logika és számításelmélet. 10. előadás Logika és számításelmélet 10. előadás Rice tétel Rekurzíve felsorolható nyelvek tulajdonságai Tetszőleges P RE halmazt a rekurzívan felsorolható nyelvek egy tulajdonságának nevezzük. P triviális, ha P

Részletesebben

Programozási módszertan. Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer

Programozási módszertan. Függvények rekurzív megadása Oszd meg és uralkodj elv, helyettesítő módszer, rekurziós fa módszer, mester módszer PM-03 p. 1/13 Programozási módszertan Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer Werner Ágnes Villamosmérnöki és Információs Rendszerek

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 007/008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció i stratégiák Szemantikus hálók / Keretrendszerek

Részletesebben

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA) ÍTÉLETKALKULUS SZINTAXIS ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA) jelkészlet elválasztó jelek: ( ) logikai műveleti jelek: ítéletváltozók (logikai változók): p, q, r,... ítéletkonstansok: T, F szintaxis szabályai

Részletesebben

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Rendszermodellezés Modellellenőrzés Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Ismétlés: Mire használunk modelleket? Kommunikáció, dokumentáció Gondolkodás,

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19. Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19. Programkészítés Megrendelői igények begyűjtése Megoldás megtervezése (algoritmuskészítés)

Részletesebben

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Javascript Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása

Részletesebben

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő Modellellenőrzés a vasút automatikai rendszerek fejlesztésében XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő 2018.04.25-27. Tartalom 1. Formális módszerek state of the art 2. Esettanulmány

Részletesebben

Sor és oszlopkalkulus

Sor és oszlopkalkulus Adatbáziskezelés Sor és oszlopkalkulus Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2017. szeptember 29. Csima Judit Adatbáziskezelés Sor és oszlopkalkulus 1 / 1 Sorkalkulus Formális

Részletesebben

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

Nagy Gábor  compalg.inf.elte.hu/ nagy ősz Diszkrét matematika 1. középszint 2017. ősz 1. Diszkrét matematika 1. középszint 6. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra

Részletesebben

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk Fraktálok Kontrakciók Affin leképezések Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék TARTALOMJEGYZÉK 1 of 71 A Lipschitz tulajdonság ÁTMÉRŐ, PONT ÉS HALMAZ TÁVOLSÁGA Definíció Az (S, ρ) metrikus tér

Részletesebben

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása 1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június

Részletesebben

Követelmények formalizálása: Temporális logikák. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Követelmények formalizálása: Temporális logikák. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Követelmények formalizálása: Temporális logikák dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mire kellenek a temporális logikák? 2 Motivációs mintapélda: Kölcsönös kizárás 2

Részletesebben

6. Közös változóval rendelkező párhuzamos program, Közös változó,

6. Közös változóval rendelkező párhuzamos program, Közös változó, 6. Közös változóval rendelkező párhuzamos program, Közös változó, Reynold kritérium. Atomi művelet, atomi utasítás. szintaxis, szemantika, tulajdonságok. Szinkronizációs párhuzamos program, szintaxis,

Részletesebben

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron

Részletesebben

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

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

Deníciók és tételek a beugró vizsgára Deníciók és tételek a beugró vizsgára (a szóbeli viszgázás jogáért) Utolsó módosítás: 2008. december 2. 2 Bevezetés Számítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést,

Részletesebben

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

7.4. A programkonstrukciók és a kiszámíthatóság 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ó

Részletesebben

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. Predikátumkalkulus Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. 1. Bevezet Nézzük meg a következ két kijelentést: Minden almához tartozik egy fa, amir l leesett. Bármely

Részletesebben

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs Programozás I. 1. előadás: Algoritmusok alapjai Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember 7. Sergyán

Részletesebben

5.3. Logika a relációkhoz

5.3. Logika a relációkhoz 236 5. Algebrai és logikai lekérdező nyelvek! 5.2.3. feladat. Az egyik dolog, amit az eredeti 2.4.5. alfejezetben definiált vetítési művelettel szemben elérhetünk a kiterjesztett vetítési művelet segítségével,

Részletesebben