Folyamatok specifikációja:
|
|
- Erika Borbély
- 8 évvel ezelőtt
- Látták:
Átírás
1 Folyamatok specifikációja: A specifikációs feltételek a programra fogalmaznak meg kikötéseket. Fontos különbséget tenni a specifikációs feltételek és a programtulajdonságok között: míg az előbbiek a program elkészülte előtt adottak ezek alapján fogalmazzuk meg a feladatot addig utóbbi a már elkészült program tulajdonságait jelenti. Hétféle specifikációs feltételt fogalmazunk meg. Az azonos feltételtípushoz tartozó feltételeket egy relációban gyűjtjük össze, így 7 specifikációs relációt tudunk leírni. Legyen P, Q, R, U : A L logikai függvény.,, P(A) P(A) relációk és FP, INIT, inv, TERM P(A) halmazok (vagyis unáris relációk). A relációkhoz infix jelölések is tartoznak. Jelölések: P Q ::= ( P, Q ) (P stabil, feltéve, hogy nem Q) P Q ::= ( P, Q ) (P biztosítja Q-t) P Q ::= ( P, Q ) (P-ből elkerülhetetlen Q) Q FP ::= Q TERM (Q-ból a program biztosan fixpontba jut) FP => R ::= R FP (R teljesül fixpontban) inv P ::= P inv (P invariáns) Q INIT ::= Q INIT (Q igaz kezdetben) A specifikációs relációkat 4 csoportra osztjuk aszerint, hogy milyen jellegű feltételt fogalmazunk meg a segítségükkel. Alább láthatók ezek a csoportok A P Q és az inv P feltételeket biztonságossági feltételeknek nevezzük. P Q: Ha a program egy állapotára teljesül a P Q feltétel, akkor a P Q azt jelenti, hogy a program vagy sose mozdul el innen, vagy ebből az állapotból közvetlenül Q-ba lép. inv P két dolgot jelent: A program kezdeti értékadásakor P igazzá válik. P stabil (<=> P Hamis), azaz P-ből a program minden elemi lépése után P igaz marad. P Q és P Q haladási feltételek. P Q két dolgot jelent: P Q teljesül. A programnak van egy olyan utasítása, amely minden olyan állapottérbeli pontból, ahol P igaz, Q-ba visz. P Q: A program P-ból előbb-utóbb Q-ba jut. Q FP azt jelenti, hogy a program Q- ból előbb-utóbb biztosan fixpontba jut. Az FP => R fixpont feltétel azt jelenti, hogy R-nek teljesülnie kell, amikor a program
2 fixpontba jut tavaszi félév záróvizsga tétel kidolgozás: Osztott rendszerek Q INIT kezdeti feltétel. Elegendő, ha ezen feltételnek megfelelő állapotokból kiindulva megfelelően működik a program. Megjegyzés: P stabilitási feltétel, ha P Hamis (ld. feljebb). P konstans feltétel, ha P és P is stabilitási feltétel.,,, FP, INIT, inv, TERM relációk a specifikációs relációk, elemei a specifikációs feltételek. A,,, inv, TERM relációk elemei az átmenetfeltételek, az INIT, FP relációk elemei pedig a peremfeltételek. Az INIT reláció a környezeti előírások csoportjába tartozik. Az absztrakt program tulajdonságai: A leggyengébb előfeltétel és általánosítása Def.: Leggyengébb előfeltétel, legszigorúbb utófeltétel Legyen s egy utasítás, Q,R: A L logikai fgv-ek.az lf(s,r) : A L logikai fgv. az R utófeltétel s utasításra vonatkozó leggyengébb előfeltétele, ahol: lf(s,r) ::= {a D p(s) p(s)(a) R } Az sp(s,q) : A L logikai függvény a Q előfeltétel legszigorúbb utófeltétele az s-re nézve, ahol: sp(s,q) ::= p(s)( Q ) Leggyengébb előfeltétel alaptulajdonságai: 1) lf(s, Hamis) = Hamis (csoda kizárásának elve) 2) Ha D p(s) = Igaz, akkor lf(s,igaz) = Igaz 3) lf(s,r) = R p(s) 4) Ha P => Q, akkor lf(s,p) => lf(s,q) (monotonitás) 5) lf(s,q) lf(s,r) => lf(s, Q R) 6) lf(s,q) lf(s,r) = lf(s,q R) Def.: Leggyengébb előfeltétel általánosítása lf(s,r) ::= s S: lf(s,r), ahol S egy program, s S jelentése pedig, hogy s a S egy utasítása. Általánosított leggyengébb előfeltétel alaptulajdonságai: 1) lf(s, Hamis) = Hamis 2) lf(s, Igaz) = Igaz 3) Ha P => Q, akkor lf(s,p) => lf(s,q) 4) lf(s,q) lf(s,r) => lf(s, Q R) 5) lf(s,q) lf(s,r) = lf(s,q R) Invariánsok és elérhető állapotok Jelölés: inv S ( Q ): Azon logikai függvények igazsághalmaza, amelyek az S programra nézve invariánsok, ha S egy Q -beli állapotból indul. P inv S ( Q ) - röviden írjuk így is: P inv S (Q). Def.: Legszigorúbb invariáns INV S (Q): azon P logikai függvények konjunkciója, amelyekre P inv S (Q).
3 Def.: Invariáns tulajdonság inv S : P(A) P(P(A)). inv S ( Q ) P(A) tavaszi félév záróvizsga tétel kidolgozás: Osztott rendszerek inv S ( Q ) ::= { P P => lf(s0,p) és P => lf(s,p)} Megjegyzés: A definíció szerint S,Q: Igaz invs(q). Lemma: Invariánsok konjunkciója zárt az műveletre nézve. Az előbbi lemma következménye: Az inv S (Q) halmaznak egyértelműen létezik legkisebb eleme és az éppen INV S (Q). Ezt nevezzük a legszigorúbb invariánsnak. Def.: Mindig igaz tulajdonság true S : P(A) P(P(A)). true S ( Q ) P(A). true S ( Q ) ::= { P INVS(Q) => P} Megjegyzés: S,Q: Igaz trues(q). Attól, hogy egy egy tulajdonság mindig igaz, még nem biztos, hogy invariáns. Ezt könnyű szemléltetni Horváth Zoltán tanár úr példájával: Adott a fent látható tábla és egy huszár, amelyik a körrel jelölt mezőből indul és L alakban léphet (tehát úgy, mint a sakkban, lólépésben) és nem léphet le a tábláról. Könnyen látszik, hogy a huszár nem léphet olyan mezőre, amely nem x -szel jelölt. Azonban mégsem igaz, hogy invariáns tulajdonság lenne az, hogy a huszár mindig ezeken a jelölt mezőkön marad ugyanis a bal felső sarokban levő (jelölt) mezőről léphet jelöletlen mezőre is. Mivel a program a körrel jelölt mezőről indítja a huszárt, ezért normális működés során ez a hiányosság nem tapasztalható. Csakis akkor, ha valami miatt a huszár a bal felső sarokban levő mezőre kerül (például egy konkurens program odalépteti). Levonható a következtetés: az invariáns és a mindig igaz tulajdonság között a különbség a nem elérhető állapotoknál jelentkezik: egy mindig igaz állítás csak azt biztosítja, hogy az az elérhető állapotokban igaz lesz. Az invariáns viszont már az állapottérben lévő, de a program normális működése során nem elérhető állapotokban is. Azért fontos különbség ez, mert két program (komponens) párhuzamos futtatása eredményezheti azt, hogy valamely (vagy akár mindkét)
4 program számára elérhetővé válnak eddig nem elérhető állapotok. Tehát párhuzamos futtatás esetén csak a komponensek invariáns tulajdonságaira támaszkodhatunk. Lemma: Az invariáns mindig igaz. Formálisan: inv S (Q) true S (Q) Lemma: Mindig igaz állítások konjunkciója mindig igaz. Formálisan: Ha I trues(q) és J trues(q), akkor I J trues(q). Következmény: Mindig igaz és invariáns konjunkciója mindig igaz. Formálisan: Ha I invs(q) és J trues(q), akkor I J trues(q). Következmény: A true S (Q) halmaznak egyértelműen létezik legkisebb eleme és ez éppen az INV S (Q). Tétel: INV S (Q) igazsághalmaza éppen a Q -ból elérhető állapotok halmaza. Lemma: Ha I invs(q), J trues(q) és I J => lf(s,j), akkor I J invs(q). Biztonságossági tulajdonságok Def.: Stabil feltéve, hogy tulajdonság S P(A) P(A) S ::= {( P, Q ) (P Q) => lf(s, (P Q))} Jelölés: P S Q ::= ( P, Q ) S Megjegyzés: P tulajdonság S programban stabil, ha P S Hamis. Lemma (gyakorlaton: stabillal kiegészítés tétele) Ha P S Q és K S Hamis, akkor P K S Q K. Bizonyítás: Kifejtjük a két S -et: P S Q miatt (P Q) => lf(s, (P Q)) K S Hamis miatt (K Igaz) => lf(s, (K Hamis)) (a Hamis elhagyható a jobb oldalról, az Igaz pedig a bal oldalról) P Q K => lf(s,(p Q)) lf(s, K) = A fenti alakbra alkalmazhatjuk az általánosított lf műveletre vonatkozó alaptulajdonságát, így kapjuk azt az alakot, hogy: = lf(s,(p Q) K) = lf(s, (P K) ( Q K)) Ebből az alakból pedig a S definícióját alkalmazva megkapjuk a kívánt állítást. Lemma: Minden invariáns stabil tulajdonság. Formálisan: Ha Q: K invs(q), akkor K S Hamis. Tétel: ( S és az invariánsok szigoríthatósága) Ha (P J) S (Q J), J invs(q) és K invs(q), akkor: J K invs(q) Biz.: inv S zárt az műveletre nézve (P J K) S (Q J K)
5 Biz.: J, K invs(q) miatt J, K stabil S, tehát alkalmazható a stabillal való metszés tétele, amivel megkapjuk a kívánt állítást. Tétel: ( S és a legszigorúbb invariáns) Ha (P J) S (R J) és J invs(q), akkor: P INVS(Q) S R INVS(Q) Biz.: INV S (Q) invs(q), tehát alkalmazható az előző tétel. Azonban INV S (Q) definíciójából következik, hogy INV S (Q) J = INVS(Q). Haladási tulajdonságok Def.: Biztosítja tulajdonság S P(A) P(A) S ::= {( P, Q ) P, Q S s S:(P Q => lf(s,q))} Jelölés: P S Q ::= ( P, Q ) S Lemma (stabillal kiegészítés tétele S -re) Ha P S Q és K S Hamis, akkor P K S Q K. Bizonyítás: Az S definíció S -re vonatkozó része következik a S -re vonatkozó stab. kieg. tételből. Be kell látni: s S: P K (Q K) => lf(s,q K) Tudjuk: s S: P Q => lf(s,q). Legyen s egy ilyen utasítás. K => lf(s',k) az összes s' S-re (ugyanis K stabils), tehát a kiválasztott s -re is. Alkalmazva a két s -re vonatkozó állításra az műveletet: P Q K => lf(s,q) lf(s,k). Ebből az alakból pedig az lf műveletre vonatkozó alaptulajdonsága miatt kapjuk, hogy: lf(s,q) lf(s,k) = lf(s,q K) Tétel: ( S és az invariánsok szigoríthatósága) Ha (P J) S (Q J), J invs(q) és K invs(q), akkor: J K invs(q) (P J K) S (Q J K) Biz.: Mivel rendelkezésre áll az S esetén is stab. kieg. tétel, ezért lehet ezt a tételt is ugyanolyan módon bizonyítani, mint a S hasonló tételét. Tétel: ( S és a legszigorúbb invariáns) Ha (P J) S (R J) és J invs(q), akkor: P INVS(Q) S R INVS(Q) Biz.: A S -re vonatkozó tételhez hasonlóan. Def.: Elkerülhetetlen tulajdonság S P(A) P(A) S az S tranzitív diszjunktív lezártja, vagyis: S S
6 Tranzitivitás: ( P, Q ) S és ( Q, R ) S, akkor ( P, R ) S. Diszjunkció: Ha bármely W megszámlálható halmazra: m: (m W :: ( P(m), Q ) S, akkor (( m: m W :: P(m) ), Q ) S Jelölés: P S Q ::= ( P, Q ) S Tehát P S Q pontosan akkor igaz, ha az ezekkel a szabályokkal levezethető. Lemma: (=> és S ) Ha P Q, akkor (P,Q) S tetszőleges S programra. Biz.: (P,P) S, így (P,Q) S. Ebből a S első képzési szabályának alkalmazásával kapjuk az állítást. Lemma (stabillal kiegészítés tétele S -re) Ha P S Q és K S Hamis, akkor P K S Q K. Biz.: --viszonylag hosszú, szerintem nem kérik, a HZ-féle jegyzet 56. oldalán van-- Tétel: Az előbbi tétel általánosítása (PSP tétel relációs alakja) Ha P S Q és R S B, akkor P R S (Q K) B. Tétel: ( S és az invariánsok szigoríthatósága) Ha (P J) S (Q J), J invs(q) és K invs(q), akkor: J K invs(q) (P J K) S (Q J K) Biz.: Mivel rendelkezésre áll az S esetén is stab. kieg. tétel, ezért lehet ezt a tételt is ugyanolyan módon bizonyítani, mint a S hasonló tételét. Tétel: ( S és a legszigorúbb invariáns) Ha (P J) S (R J) és J invs(q), akkor: P INVS(Q) S R INVS(Q) Biz.: A S -re vonatkozó tételhez hasonlóan. Lemma: ( S jobb oldal gyengítése) Ha P S Q és Q => R, akkor P S R. Biz.: Q => R, azaz Q R, tehát alkalmazhatjuk a => és a S kapcsolatára vonatkozó lemmát, amivel kapjuk, hogy Q S R. Ezután már alkalmazhatjuk a S tranzitivitási szabályát, amivel kapjuk az állítást. Def.: (Elkerülhetetlen feltétlenül pártatlan ütemezés mellett) 1 (P,Q) S akkor és csak akkor, ha a P az S által az a-hoz rendelt fákban bármelyik, a feltétlenül pártatlan ütemezésnek megfelelő végrehajtási úton véges (esetleg nem korlátos) távolságban van olyan pont, amelynek címkéje eleme Q halmaznak.7 Megjegyzés: HZ jegyzetében ez a hullámos nyíl jel kicsit máshogy néz ki én most hirtelen ezt találtam, ami hasonlít. Tétel: ( S helyessége és teljessége) S = S.
7 Biz.: --viszonylag hosszú, szerintem nem kérik, a HZ-féle jegyzet 57. oldalán van-- Következmény: Egy S program akkor és csak akkor rendelkezik a S tulajdonsággal, ha rendelkezik a S tulajdonsággal is amely levezethető a program U S V alakú tulajdonságaiból. Fixpont tulajdonságok A konkrét program az absztrakt program végrehajtásának prefixe. Egy absztrakt program sohasem terminál olyan értelemben, hogy nem hajt végre több elemi műveletet. Azonban egy izolált absztrakt programot termináltnak tekinthetünk, ha elérte egy fixpontját. Ez azt jelenti, hogy további műveletek hatására nem történhet állapotváltozás. Az S programról azt mondjuk, hogy fixpontba jutott az A altér felett, ha az A altérhez tartozó változókra vonatkozó egyszerű értékadások mindegyikére teljesül, hogy az értékadás hatásrelációja független az altérhez nem tartozó állapottérkomponensektől és az értékadás determinisztikus és a jobb oldalán álló függvénykompozíciók értéke azonos a baloldalon álló változók értékével (tehát egyik változó értéke sem változik), vagy a feltételes értékadás feltétele hamis, vagy az értékadás nemdeterminisztikus és az altér azon részhalmaza felett, amely részhalmazban az értékadás determinisztikus és a feltétele igaz, ott a jobb oldalon álló függvénykompozíciók értéke azonos a baloldalon álló változók értékével. Legyen S=(s0,{s 1,...,s n }), ahol s j S egy (szimultán, nemdeterminisztikus) feltételes értékadás, sj: (v i : F ji (v 1,...,v n ), ha π ji ). i [1,n] Jelöljük πj id -vel azt a logikai függvényt, melynek igazsághalmazára leszűkítve az Fj i reláció determinisztikus, azaz: π j,id (a) <=> ( F ji (a) =1). Def.: (Fixpontok halmaza) fixpont S ::= ( ( π ji (π j,id v i = F ji (v 1,...,v n )))). Jelölés: φ S j J,i [1..n] Ha az értékadások mindegyike determinisztikus, akkor a program fixpontjait jellemző logikai függvényt a következőképpen lehet megkapni: a szimultán értékadásokat átalakítjuk egyenlőséggé ezen értékadások feltételeit implikációvá alakítjuk, konjunkciót teszünk a feltételek közé és a kialakított egyenlőség elé tesszük. Példa: S=(SKIP,{k := k+1, ha k < N}) fixpont S = (k < N k=k+1) = (k>=n) Def.: (Fixpont tulajdonság) FP S ::= { R fixponts => R}. Lemma: (Fixpont tulajdonság gyengítése) Ha R => Q és R FPS, akkor Q FPS.
8 Tétel: (A fixpontfeltétel finomítása) Ha S megfelel az inv h P, FP h => R specifikációs feltételnek és P R => Q, akkor S megfelel a FP h => Q specifikációs feltételnek is. Biz.: Nem írom le, mert a záróvizsga tételben maga ez a tétel nincs is benne. Viszont azért mondtam itt ki, mert majd szükség lesz rá későbbi bizonyításhoz. A bizonyítás megtalálható a jegyzet 74. oldalán. Terminálási tulajdonságok Def.: (Biztosan fixpontba jut tulajdonság) TERMS ::= { Q Q S fixpont S } Megjegyzés: A program biztosan fixpontba jut, ha egy alkalmasan megválasztott függvény, az ún. variánsfüggvény értéke bármely állapot elérése után a jövőben elkerülhetetlenül csökken. Nevezetes feladatok megoldása párhuzamos és elosztott programokkal Asszociatív művelet eredményének kiszámítása Legyen H egy tetszőleges halmaz. : H H H tetszőleges kétoperandusú művelet, amelyről még azt tudjuk, hogy asszociatív. Definiáljuk f : H* H függvényt. Jelentse f a művelet egyszeri, vagy ismételt alkalmazását. Tehát h 1 h 2 ekvivalens azzal, hogy f(<<h 1,h 2 >>). f-et kiterjesztjük az egyelemű sorozatokra is: f(<<h>>) = h. Adott a H*: a véges, nem üres H-beli elemek sorozata. Tegyük fel, hogy a sorozat egyes elemei közvetlenül elérhetőek: a = <<a 1,...,a n >> (n>=1). Legyen G a : [1..n] H egy függvény, ahol G a (i) = f(<<a 1,...,a i >>) (i [1.. n]). A feladat, hogy számítsuk ki G a értékét minden i [1.. n]-re. A feladat specifikációja Reprezentáljuk az a sorozatot egy vektorral, a G a függvényt pedig transzformáljuk egy vektorba. Jelöljük ezeket a-val és g-vel. Értelemszerűen ezen vektorok értékei H-beli értékek. Első lépésben a következő kikötéseket tesszük: fixpontban a g vektor i-edig eleme legyen G a (i), illetve a program biztosan elérje fixpontját. A = G G g a B = G a' G=vektor([1..n],H), n>=1 (a=a') INIT a' Igaz FP a' FP a' => (a=a' i [1.. n] : g(i) = f(<<a 1,...,a i >>)) Megállapíthatjuk, hogy a G a függvény i helyen felvett értékének meghatározását megkönnyíti, ha ismerjük f értékét bármely [u..v] [1..i] intervallum elemeivel indexelt <<a u,...,a v >> részsorozatra.
9 Megfigyelhető az is, hogy hogy egy részsorozatra kapott eredményt bármely, a részsorozatot tartalmazó részsorozatra vonatkozó eredmény meghatározásánál hasznosíthatjuk. Ezen gondolatmenet alapján bővítsük a feladat állapotterét és finomítsuk a specifikációt. Vezessük be h függvényt: h(a,i,k) jelentse f értékét a azon részsorozatára, amelynek utolsó eleme a i és hossza vagy éppen 2 k, vagy, ha i<2 k, akkor első eleme a 1. Ezt a függvényt (is) változóba kell transzformálni ez a változó lesz a gs kétdimenziós vektor. A gs, k, t változók és a h függvény kapcsolatát invariáns állítással írjuk le a finomított specifikációban. A fenti (Horváth Zoltán tanár úr jegyzetéből kivágott) ábra ábrázolja a gs mátrix elemei közti kapcsolatot. A finomított specifikáció: A' = G G GS K T g a gs k t G = vektor([1..n], H) GS = vektor([1..n, 0.. log(n) ], H) K = vektor([1..n], N 0 ) T = vektor([1..n], N 0 ), n>=1 A K vektor a 2 k függvény változóba transzformálása (tehát K(i) = 2 i ). A T vektor pedig azt mutatja, hogy a gs mátrix hanyadik soráig van kitöltve. A h parciális függvény pontos definíciója: h : G [1..n] N 0 H h(a,i,k) = f(<<a 1,...,a i >>), ha i 2 k + 1 <= 1 f(<<a (i-2^k+1),...,a i >>), ha i 2 k + 1 >= 1. Válasszuk a v : A N 0 variánsfüggvényt a következőképpen: n v = 4 * n * n - (k(i) + Χ(k(i) = log( i) g(i) = gs(i,k(i)))), i=1
10 ahol Χ : L {0,1}. Χ(igaz) = 1, Χ(hamis) = 0. v azt adja meg, hogy a gs mátrix egyes oszlopaiban összesen hány olyan elem van, amely nem azonos a h függvény megfelelő helyen felvett értékével, illetve, hogy a g vektor értéke hány helyen különbözik a G a függvény értékétől. Lemma: (Asszociatív művelet a feladat finomítása) Az alábbi specifikáció finomítása az eredetinek: (a=a') INIT a' (8.4) Igaz Fp a' (8.5) FP a' => i [1.. n] : (k(i) = log( i) ( g(i) = gs(i, log( i) )) (8.6) inv a' ( i [1.. n] : k(i) <= log( i) k : k <= k(i) : gs(i,k) = h(a,i,k)) (8.7) inv a' ( i [1.. n] : t(i) = 2 k(i) ) (8.8) inv a' (a=a') (8.9) Biz.: Fixpontban (8.6) szerint k(i) <= log( i) és g(i) = gs(i, log( i) ), tehát (8.7) alapján log( i) g(i) = gs(i, log( i) = h(a,i, log( i) ). Mivel 2 >= i, ezért így h definícióját felhasználva h(a,i, log( i) ) = f(<<a 1,...,a i >>), így a (8.9) invariáns tulajdonság és a Fixpontfinomítás tétele alkalmazásával igazolni tudjuk, hogy a (8.6), (8.7), (8.9) feltételek együttesen finomítják a (8.3) feltételt. A (8.8) feltétel triviálisan igaz, hiszen így definiáltuk a t vektort. Lemma: Ha (i 2k >= 1), akkor f(<<h(a,i 2k,k), h(a,i,k)>>) = h(a,i,k + 1). Biz.: Tudjuk, hogy i 2 k >= 1, tehát h(a,i,k) = f(<<a (i-2^k+1),...,a i >>). Ha (i 2 k ) 2 k + 1 >= 1, akkor h(a,i 2 k,k) = f(<<a (i-2^k-2^k+1),...,a (i-2^k) >>). Ekkor, mivel f asszociatív, ezért f(<<h(a,i 2 k,k), h(a,i,k)>>) = = f(<<a (i-2^k-2^k+1),...,a (i-2^k),a (i-2^k+1),...,a i >>) = h(a,i,k+1). Ha (i 2 k ) 2 k + 1 < 1, akkor h(a,i-2 k,k) = f(<<a 1,...,a (i-2^k) >>). Mivel f asszociatív, ezért f(<<h(a,i-2 k,k),h(a,i,k)>>) = f(<<a 1,...,a (1-2^k),a (i-2^k+1),...,a i >>) = h(a,i,k + 1). A megoldás Tétel: (Asszociatív művelet kiszámításának tétele I.) Az alábbi program megfelel a (8.4) (8.9) specifikációnak, azaz megoldja az asszociatív művelet kiszámításának feladatát. s0: gs(i,0),t(i),k(i) := f(<<a i >>),1,0 i=[1..n] S : { gs(i,k(i) + 1),t(i),k(i) := i=[1..n] f(<<gs(i,k(i)), gs(i-t(i),k(i)>>),2*t(i),k(i) + 1, ha (i-2*t(i) + 1 >= 1) (k(i-t(i)) >= k(i))
11 } tavaszi félév záróvizsga tétel kidolgozás: Osztott rendszerek f(<<gs(i,k(i)), gs(i-t(i),k(i-t(i)))>>), 2*t(i),k(i) + 1, ha (i-t(i) >= 1) (i-2*t(i) + 1 < 1) k(i-t(i)) = log( i-t(i)) g(i) := gs(i,k(i)), ha (k(i) = log( i) ) i=[1..n] Biz.: Elég hosszú, nem hiszem, hogy kérnék, a jegyzet 101. oldalán kezdődik. Adatcsatorna tétele Bevezetés Csatornaváltozók használata A párhuzamos és elosztott rendszereket folyamathálózatok formájában írjuk le. A folyamatok üzenetek segítségével kommunikálnak egymással. Ezeket az üzeneteket egyirányú csatornákon keresztül juttatja el a feladó a címzett(ek)nek. Az üzenetküldés aszinkron, a feladó általában rögtön folytatja a tevékenységét az üzenet csatornára való elhelyezése után az üzenet megérkeztét a feladó tehát nem várja meg. A csatornák sor típusú változóként viselkednek, átmenetileg képesek tárolni az elküldött, de még nem fogadott üzeneteket. Minden csatornához két sor típusú változó tartozik: az egyik a csatornán várakozó üzeneteket tartalmazza (a csatorna aktuális állapota), a másik a csatorna története. A csatorna története minden olyan üzenetet tartalmaz (beérkezési sorrendben), amelyik valaha rákerült a csatornára. A történetváltozót egy felülvonással különböztetjük meg a csatorna állapotát jelző változótól (mivel én ilyet nem tudok, ezért x.h-val jelölöm egy x csatorna történetét). A gyakorlatban a történetváltozó tárolása nehezen, vagy egyáltalán nem megoldható, ugyanis a történetváltozó mérete idővel minden korlátot meghaladhat. Csatornaváltozókat ezért csak a specifikációban használhatunk, a konkrét programban nem. A fenti ábrán (Horváth Zoltán tanár úr ábrája) a P1 és P2 folyamatokat összekötő x csatorna látható. A P1 folyamat üzeneteket helyezhet el x-en, a P2 folyamat pedig ezeket az üzeneteket olvashatja ki belőle. Az alábbi műveletek tartoznak a csatorna típusú változókhoz: üzenetküldés (P1): x := hiext(x,e), vagy röviden: x := x;e üzenet eltávolítása (P2): x := lorem(x), ha x!= <> csatorna inicializálása: x := <> üzenet olvasása (P2): x.lov, ha x!= <> lekérdezés, hogy a csatorna üres-e: x = <> lekérdezés, hogy hány üzenet várakozik a csatornán: length(x), vagy x.
12 Adatcsatorna tétele tavaszi félév záróvizsga tétel kidolgozás: Osztott rendszerek Adott egy F = f n f 0 függvénykompozíció és egy D = <d 1,...,d m > sorozat, az argumentumok. A feladat az, hogy mindegyik d argumentumra meghatározzuk F(d)-t, azaz f n (...(f 0 (d)...)-t. Ez a tétel akkor alkalmazható hatékonyan, ha az adott feladatban m >> n, azaz az argumentumok száma sokkal nagyobb, mint a függvénykomponensek száma. Illetve feltesszük azt, hogy az egyes függvénykomponensek kiszámításához szükséges idő lényegében azonos. A tételben alkalmazott módszer alapötlete az, hogy az egyes függvénykomponensek kiszámítását egy-egy külön processzorra bízzuk. Először az első processzor megkapja az első adatot (d 1 -et), majd erre kiszámítja f 0 (d 1 )-et. Ezt a kiszámított eredményt adja tovább az első a második processzornak, amely kiszámítja f 1 (f 0 (d 1 ))-et, közben pedig az első processzor megkapja d 2 -t és kiszámolja f 0 (d 2 )-t. n lépés elteltével az n-edik processzor is elkezd dolgozni (f n (...(f 1 (f 0 (d 1 ))...)-et számolja) - az adatcsatorna megtelik. Ez azt jelenti, hogy innentől kezdve minden lépésben mindegyik processzor dolgozik és minden lépésben megkapjuk a soron következő d-re F(d)-t (értelemszerűen mindig az n-edik processzortól kapjuk az új eredményt). Ha a kommunikációs költségeket figyelmen kívül hagyjuk, arra a következtetésre juthatunk, hogy n processzorral egy m adatból álló argumentum-sorozatra n+m lépésben elő tudjuk állítani a végeredményt. Ugyanez 1 processzorral m*n lépésbe telne (m darab adatra egyesével az összes f i -t kellene meghatározni egymás után). Mivel n << m, ezért az (n+m)/(n*m) képletben a számlálóbeli n-et elhagyhatjuk, majd m-mel egyszerűsítve megkapjuk, hogy n processzorral kb. n-szer gyorsabban végzünk. Adatcsatorna ábrázolása (Horváth Zoltán tanár úr ábrája). Az x 0 a fő programszálból, az x n+1 a fő programszálba vezető csatorna. A formális specifikáció során először csak annyit fogalmazunk meg, hogy egy F összetett függvény értékét kell elemenként meghatározni a D sorozatra. A D sorozat elemei az x 0 csatornán vannak kezdetben, új adat nem érkezik futás közben és fixpontban az eredmény, az F(D) sorozat az x n+1 sorozat történetében találhatók meg. Azért csak a történetre kötjük meg ezt, mert nem feltétlenül szeretnénk, hogy a főprogram megvárja az összes eredmény kiszámítását lényegesenen hatékonyabb, ha minden kiszámított eredményt rögtön átadunk a főprogramnak. Így csak azt kötjük ki, hogy a futás során az eredmény minden tagja előfordult már az x n+1 sorozatban. A = Ch(a) Ch(a) Ch(a) Ch(a) x 0 x 0.h x n+1 x n+1.h B = Ch(a) Ch(a) Ch(a) Ch(a) x' 0 x' 0.h x' n+1 x' n+1.h Q ::= (x 0 = x 0.h = x' 0 = x' 0.h = D ' x n+1 = x n+1.h = x' n+1 = x' n+1.h= <>) Q INIT h (h ::= x' 0 x' 0.hx' n+1 x' n+1.h) (8.24) FP h => x n+1.h = F(x' 0.h) = F(D) (8.25) Q TERM h (8.26) (x 0.h = x' 0.h = D) inv h a teljes rendszerre (8.27)
13 A 8.24 kikötés szerint az x 0 és története kezdetben tartalmazza a D sorozatot. A 8.27 kikötés szerint az x 0 sorozat története nem is változhat, tehát újabb elem nem kerülhet x 0 csatornára szerint az x n+1 csatorna kezdetben üres. Fixpontban a 8.25 kikötés alapján megköveteljük, hogy x n+1 története F(D) legyen. A 8.26 kikötés azt mondja ki, hogy a programnak mindenképpen terminálnia kell. A megoldás előállításához bővítjük az állapotteret (a fentebb látható adatcsatorna-ábrát alapul véve) az x 2,...,x n csatornaváltozókkal és történetváltozóikkal. A specifikációt finomítjuk a Fixpontfinomítás tétele alapján (8.28,8.29), illetve variánsfüggvényt vezetünk be (8.29). FP h => i [0.. n] : x i = <> (8.28) i [0.. n] : (f i (x i.h-x i ) = x i+1.h) inv h (8.29) variánsfüggvény: ( x 0,..., x n ) (8.30) A 8.30 pontban bevezetett variánsfüggvényt a következőképpen kell értelmezni: az egyes csatornák elemeszámából álló rendezett n-es elemeit helyiértékekkel súlyozzuk, így egy n+1 alapú számrendszerbeli számot kapunk. A fixpontfinomítás tétele alapján belátjuk, hogy az új specifikáció finomítása az eredetinek. Megmutatjuk, hogy: (8.28) (8.29) (8.27) => (8.25). Jelölje f i az első i+1 függvénykomponens kompozícióját: f i ::= f i f 0. Teljes indukcióval belátható, hogy (8.28) (8.29) (8.27) => ( x i+1.h) = f i (D). Nyilvánvaló, hogy ha ezt beláttuk, akkor abból n-re is következik az állítás. Tétel: (Adatcsatorna tétel) Az alábbi program megfelel a finomított specifikációnak n S: ( x i := <>, i=1 N { x i,x i+1 := lorem(x i ),hiext(x i+1,f i (x i.lov)), ha x!= <> }) i=0 Elágazás (Fork) Az elágazás egy olyan folyamat, melynek egy bemenő és két kimenő csatornája van. (H. Z. tanár úr ábrája) A fenti ábrán látható elágazástól a következő 3 feltétel teljesülését követeljük meg: adat ne vesszen el, azaz minden, ami rákerül a bemenetre, az kerüljön feldolgozásra,
14 a kimenő csatornákon csak olyan adat jelenjen meg, amelyik a bemenő csatornán érkezett, azaz legyen a külső zajoktól mentes, ha érkezik adat, akkor az előbb-utóbb kerüljön feldolgozásra. Vezessünk be egy függvényt, mely segítségével könnyebben tudjuk majd specifikálni az elágazást: split : Ch Ch Ch L A split függvényt induktívan definiáljuk: split(<>,<>,<>) = igaz split(a,b,c) split(a;x,b;x,c) split(a;x,b,c;x). Legyen split a fenti két tulajdonsággal rendelkező függvények közül a legkisebb igazsághalmazú. (Ez egy fontos kikötés, hiszen pl. az azonosan igaz függvény is rendelkezik ezen tulajdonságokkal.) A = Ch Ch Ch Ch Ch Ch x y z x.h y.h z.h B = Ch Ch Ch Ch Ch Ch x' y' z' x'.h y'.h z'.h 1) Q = ( x = y = z = x.h = y.h = z.h = x' = y' = z' = x'.h = y'.h = z'.h) Q INIT h 2) P = (split(x.h-x,y.h,z.h)) inv h 3) k N : x.h >= k s y.h + z.h >= k Az invariáns megköveteli, hogy ne vesszenek el adatok és zajmentes legyen a működés. A haladási feltétel nem követel meg pártatlanságot abban a tekintetben, hogy mindkét kimenő csatornára kerüljön adat. A megoldóprogram: S : (SKIP,{x,z := lorem(x),hiext(z,x.lov), ha x!= <> x,y := lorem(x),hiext(y,x.lov), ha x!= <>}) 2.) (Q => lf(s 0,P)) <=> (P => P). mert split(<>-<>,<>,<>) = split(<>,<>,<>) = igaz Belátjuk, hogy P => lf(s,p) = lf(s 1,P) lf(s 2,P) Csak lf(s 1,P)-t bizonyítjuk, lf(s 2,P)-t ugyanígy kell kiszámolni. P => lf(s 1,P) = (x!=<> P y hiext(y,x.lov),y.h y.h;x.lov,x lorem(x) ) ( x = <> P) = = (x!= <> split(x.h-lorem(x),y.h;x.lov,z.h)) ( x = <> P) Be kell látni, hogy: x.h lorem(x) = x.h-x;x.lov
15 Az összefüggés teljesülését az alábbi ábrán jól lehet látni (Horváth Zoltán tanár úr ábrája): A split definícióját alkalmazva azt kapjuk, hogy ha P igaz volt, akkor igaz is marad. 3.) A haladási feltétel nincs bizonyítva a jegyzetben, szóval azt, gondolom, nem kérik. Forrás: A kidolgozás teljes egészében Horváth Zoltán tanár úr elektronikus jegyzete alapján készült:
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
Nem ellenőrzött!!! Tartalom
Tartalom Csatorna:... 2 Jelölések:... 2 Megjegyzés:... 2 műveletei:... 2 Tulajdonságai:... 3 split:... 4 Definíció:... 4 Létezik-e split?... 4... 4 Feltételek:... 4 Program specifikáció:... 5 Program:...
Csatorna: Jelölések:... 2 Megjegyzés:... 2 műveletei:... 2 Tulajdonságai: split: Definíció:... 4 Létezik-e split?... 4 MUX...
Tartalom Csatorna:... 2 Jelölések:... 2 Megjegyzés:... 2 műveletei:... 2 Tulajdonságai:... 3 split:... 4 Definíció:... 4 Létezik-e split?... 4 MUX... 4 Feltételek:... 4 Program specifikáció:... 5 Program:...
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 [π]
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:
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
6. FÜGGVÉNYEK HATÁRÉRTÉKE ÉS FOLYTONOSSÁGA 6.1 Függvény határértéke Egy D R halmaz torlódási pontjainak halmazát D -vel fogjuk jelölni. Definíció. Legyen f : D R R és legyen x 0 D (a D halmaz torlódási
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
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
A változó fogalma Definíció Legyen A = A 1 A 2... A n állapottér. A pr Ai projekciós függvényeket változóknak nevezzük: : A A i pr Ai (a) = a i ( a = (a 1, a 2,..., a n ) A). A változók jelölése: v i =
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I. 4 IV. FÜGGVÉNYEk 1. LEkÉPEZÉSEk, függvények Definíció Legyen és két halmaz. Egy függvény -ből -ba egy olyan szabály, amely minden elemhez pontosan egy elemet rendel hozzá. Az
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma
Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.
2. A VALÓS SZÁMOK 2.1 A valós számok aximómarendszere Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit. 1.Testaxiómák R-ben két művelet van értelmezve, az
... 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
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
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
Bevezetés a programozáshoz I. Feladatok
Bevezetés a programozáshoz I. Feladatok 2006. szeptember 15. 1. Alapfogalmak 1.1. példa: Írjuk fel az A B, A C, (A B) C, és A B C halmazok elemeit, ha A = {0, 1}, B = {1, 2, 3}, C = {p, q}! 1.2. példa:
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
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
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.
PÁRHUZAMOS PROGRAMOZÁSI MÓDSZERTAN
PÁRHUZAMOS PROGRAMOZÁSI MÓDSZERTAN Horváth Zoltán, hz@lngsc2.inf.elte.hu Eötvös Loránd Tudományegyetem Általános Számítástudományi Tanszék Abstract This paper concerned with a parallel programming methodology
minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.
Függvények határértéke és folytonossága Egy f: D R R függvényt korlátosnak nevezünk, ha a függvényértékek halmaza korlátos. Ha f(x) f(x 0 ) teljesül minden x D esetén, akkor x 0 -at a függvény maximumhelyének
Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma
Készítette: Laczik Sándor János Gráfelmélet I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Definíció: a G=(V,E) párt egyszerű gráfnak nevezzük, (V elemeit a gráf csúcsainak/pontjainak,e elemeit
BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai
BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai 1.a. A B B A 2.a. (A B) C A (B C) 3.a. A (A B) A 4.a. I A I 5.a. A (B C) (A B) (A C) 6.a. A A I 1.b. A B B A 2.b. (A B) C A (B C) 3.b. A
SHk rövidítéssel fogunk hivatkozni.
Nevezetes függvény-határértékek Az alábbiakban a k sorszámú függvény-határértékek)re az FHk rövidítéssel, a kompozíció határértékéről szóló első, illetve második tételre a KL1, illetve a KL rövidítéssel,
GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus
GRÁFELMÉLET 7. előadás Javító utak, javító utak keresése, Edmonds-algoritmus Definíció: egy P utat javító útnak nevezünk egy M párosításra nézve, ha az út páratlan hosszú, kezdő- és végpontjai nem párosítottak,
2014. szeptember 24. és 26. Dr. Vincze Szilvia
2014. szeptember 24. és 26. Dr. Vincze Szilvia Mind a hétköznapi, mind a tudományos életben gyakran előfordul, hogy bizonyos halmazok elemei között kapcsolat figyelhető meg. A kapcsolat fogalmának matematikai
1. Homogén lineáris egyenletrendszer megoldástere
X HOMOGÉN LINEÁRIS EGYENLET- RENDSZEREK 1 Homogén lineáris egyenletrendszer megoldástere Homogén lineáris egyenletrendszer definíciója már szerepelt Olyan lineáris egyenletrendszert nevezünk homogénnek,
15. LINEÁRIS EGYENLETRENDSZEREK
15 LINEÁRIS EGYENLETRENDSZEREK 151 Lineáris egyenletrendszer, Gauss elimináció 1 Definíció Lineáris egyenletrendszernek nevezzük az (1) a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a
Analízis I. Vizsgatételsor
Analízis I. Vizsgatételsor Programtervező Informatikus szak 2008-2009. 2. félév Készítette: Szabó Zoltán SZZNACI.ELTE zotyo@bolyaimk.hu v.0.6 RC 004 Forrás: Oláh Gábor: ANALÍZIS I.-II. VIZSGATÉTELSOR 2006-2007-/2
Analízis előadás és gyakorlat vázlat
Analízis előadás és gyakorlat vázlat Készült a PTE TTK GI szakos hallgatóinak Király Balázs 2010-11. I. Félév 2 1. fejezet Számhalmazok és tulajdonságaik 1.1. Nevezetes számhalmazok ➀ a) jelölése: N b)
Hadamard-mátrixok Előadó: Hajnal Péter február 23.
Szimmetrikus kombinatorikus struktúrák MSc hallgatók számára Hadamard-mátrixok Előadó: Hajnal Péter 2012. február 23. 1. Hadamard-mátrixok Ezen az előadáson látásra a blokkrendszerektől független kombinatorikus
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
Bevezetés a programozásba 12. Fóthi Ákos, Horváth Zoltán. ELTE Informatikai Kar, 2005.
Bevezetés a programozásba 12 Fóthi Ákos, Horváth Zoltán ELTE Informatikai Kar, 2005. 1 A mű digitális megjelenítése az Oktatási Minisztérium támogatásával, a Felsőoktatási Tankönyv- és Szakkönyv-támogatási
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!
függvények RE 1 Relációk Függvények függvények RE 2 Definíció Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor
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
Funkcionálanalízis. n=1. n=1. x n y n. n=1
Funkcionálanalízis 2011/12 tavaszi félév - 2. előadás 1.4. Lényeges alap-terek, példák Sorozat terek (Folytatás.) C: konvergens sorozatok tere. A tér pontjai sorozatok: x = (x n ). Ezen belül C 0 a nullsorozatok
17. előadás: Vektorok a térben
17. előadás: Vektorok a térben Szabó Szilárd A vektor fogalma A mai előadásban n 1 tetszőleges egész szám lehet, de az egyszerűség kedvéért a képletek az n = 2 esetben szerepelnek. Vektorok: rendezett
Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján
Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján Számsorozatok, vektorsorozatok konvergenciája Def.: Számsorozatok értelmezése:
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 \
Amortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex
A sorozat fogalma Definíció. A természetes számok N halmazán értelmezett függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet a valós számok halmaza, valós számsorozatról beszélünk, mígha az
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
ismertetem, hogy milyen probléma vizsgálatában jelent meg ez az eredmény. A kérdés a következő: Mikor mondhatjuk azt, hogy bizonyos események közül
A Borel Cantelli lemma és annak általánosítása. A valószínűségszámítás egyik fontos eredménye a Borel Cantelli lemma. Először informálisan ismertetem, hogy milyen probléma vizsgálatában jelent meg ez az
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
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!
RE 1 Relációk Függvények RE 2 Definíció: Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor azt mondjuk, hogy
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ó
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
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
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
Csima Judit október 24.
Adatbáziskezelés Funkcionális függőségek Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2018. október 24. Csima Judit Adatbáziskezelés Funkcionális függőségek 1 / 1 Relációs sémák
Adatbázisok elmélete 12. előadás
Adatbázisok elmélete 12. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
f(x) a (x x 0 )-t használjuk.
5. FÜGGVÉNYEK HATÁRÉRTÉKE ÉS FOLYTONOSSÁGA 5.1 Függvény határértéke Egy D R halmaz torlódási pontjainak halmazát D -vel fogjuk jelölni. Definíció. Legyen f : D R R és legyen x 0 D (a D halmaz torlódási
1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!
1. Részcsoportok A részcsoport fogalma. 2.2.15. Definíció Legyen G csoport. A H G részhalmaz részcsoport, ha maga is csoport G műveleteire nézve. Jele: H G. Az altér fogalmához hasonlít. Példák (1) C +
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I. 3 III. MEGFELELTETÉSEk, RELÁCIÓk 1. BEVEZETÉS Emlékeztetünk arra, hogy az rendezett párok halmazát az és halmazok Descartes-féle szorzatának nevezzük. Más szóval az és halmazok
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2017. ősz 1. Diszkrét matematika 2.C szakirány 2. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.
A valós számok halmaza
VA 1 A valós számok halmaza VA 2 A valós számok halmazának axiómarendszere és alapvető tulajdonságai Definíció Az R halmazt a valós számok halmazának nevezzük, ha teljesíti a következő axiómarendszerben
Programozási módszertan
1 Programozási módszertan 1. Alapfogalmak Feldhoffer Gergely 2012 Féléves tananyag terve 2 Program helyességének bizonyítása Reprezentáció Logikai-matematikai eszköztár Programozási tételek bizonyítása
AZ INFORMATIKA LOGIKAI ALAPJAI
AZ INFORMATIKA LOGIKAI ALAPJAI Előadó: Dr. Mihálydeák Tamás Sándor Gyakorlatvezető: Kovács Zita 2017/2018. I. félév 4. gyakorlat Interpretáció A ϱ függvényt az L (0) = LC, Con, Form nulladrendű nyelv egy
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 207. tavasz. Diszkrét matematika 2.C szakirány 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 207.
Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk:
1. Halmazok, relációk, függvények 1.A. Halmazok A halmaz bizonyos jól meghatározott dolgok (tárgyak, fogalmak), a halmaz elemeinek az összessége. Azt, hogy az a elem hozzátartozik az A halmazhoz így jelöljük:
Alap fatranszformátorok II
Alap fatranszformátorok II Vágvölgyi Sándor Fülöp Zoltán és Vágvölgyi Sándor [2, 3] közös eredményeit ismertetjük. Fogalmak, jelölések A Σ feletti alaptermek TA = (T Σ, Σ) Σ algebráját tekintjük. Minden
Analízis I. beugró vizsgakérdések
Analízis I. beugró vizsgakérdések Programtervező Informatikus szak 2008-2009. 2. félév Készítette: Szabó Zoltán SZZNACI.ELTE zotyo@bolyaimk.hu v1.7 Forrás: Dr. Weisz Ferenc: Prog. Mat. 2006-2007 definí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
1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.
1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata. HLMZOK halmaz axiomatikus fogalom, nincs definíciója. benne van valami a halmazban szintén axiomatikus fogalom,
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2015. tavasz 1. Diszkrét matematika 2.C szakirány 1. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu Komputeralgebra Tanszék 2015. tavasz Gráfelmélet Diszkrét
Diszkrét matematika 2.
Diszkrét matematika 2. 2018. szeptember 21. 1. Diszkrét matematika 2. 2. előadás Fancsali Szabolcs Levente nudniq@cs.elte.hu www.cs.elte.hu/ nudniq Komputeralgebra Tanszék 2018. szeptember 21. Gráfelmélet
Klasszikus algebra előadás. Waldhauser Tamás április 28.
Klasszikus algebra előadás Waldhauser Tamás 2014. április 28. 5. Számelmélet integritástartományokban Oszthatóság Mostantól R mindig tetszőleges integritástartományt jelöl. 5.1. Definíció. Azt mondjuk,
Nagy Gábor compalg.inf.elte.hu/ nagy
Diszkrét matematika 3. estis képzés 2018. ősz 1. Diszkrét matematika 3. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
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
MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga
BABEŞ-BOLYAI TUDOMÁNYEGYETEM, KOLOZSVÁR MATEMATIKA ÉS INFORMATIKA KAR MATE-INFO UBB verseny, 218. március 25. MATEMATIKA írásbeli vizsga FONTOS TUDNIVALÓK: 1 A feleletválasztós feladatok,,a rész esetén
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 4-6. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.
1 Diszkrét matematika I, 12 előadás Dr Takách Géza NyME FMK Informatikai Intézet takach@infnymehu http://infnymehu/ takach 2005 november 30 Vektorok Definíció Egy tetszőleges n pozitív egész számra n-komponensű
Í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
Struktúra nélküli adatszerkezetek
Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A
First Prev Next Last Go Back Full Screen Close Quit
Többváltozós függvények (2) First Prev Next Last Go Back Full Screen Close Quit 1. Egyváltozós függvények esetén a differenciálhatóságból következett a folytonosság. Fontos tudni, hogy abból, hogy egy
Matematikai logika és halmazelmélet
Matematikai logika és halmazelmélet Wettl Ferenc előadása alapján 2015-09-07 Wettl Ferenc előadása alapján Matematikai logika és halmazelmélet 2015-09-07 1 / 21 Tartalom 1 Matematikai kijelentések szerkezete
Nagy Gábor compalg.inf.elte.hu/ nagy
Diszkrét matematika 3. estis képzés 2018. ősz 1. Diszkrét matematika 3. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Kalkulus I. gyakorlat Fizika BSc I/1.
. Ábrázoljuk a következő halmazokat a síkon! {, y) R 2 : + y < }, b) {, y) R 2 : 2 + y 2 < 4}, c) {, y) R 2 : 2 + y 2 < 4, + y < }, {, y) R 2 : + y < }. Kalkulus I. gyakorlat Fizika BSc I/.. gyakorlat
Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei
A Gauss-Jordan elimináció, mátrixinvertálás Gauss-Jordan módszer Ugyanazzal a technikával, mint ahogy a k-adik oszlopban az a kk alatti elemeket kinulláztuk, a fölötte lévő elemeket is zérussá lehet tenni.
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I. 1 I. HALmAZOk 1. JELÖLÉSEk A halmaz fogalmát tulajdonságait gyakran használjuk a matematikában. A halmazt nem definiáljuk, ezt alapfogalomnak tekintjük. Ez nem szokatlan, hiszen
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ő,
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá
Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1
Megoldott feladatok 00. november 0.. Feladat: Vizsgáljuk az a n = n+ n+ sorozat monotonitását, korlátosságát és konvergenciáját. Konvergencia esetén számítsuk ki a határértéket! : a n = n+ n+ = n+ n+ =
Diszkrét matematika 2.
Diszkrét matematika 2. Mérai László előadása alapján Készítette: Nagy Krisztián 1. előadás Gráfok halmaza, gráf, ahol a csúcsok halmaza, az élek illesztkedés reláció: illesztkedik az élre, ha ( -él illesztkedik
Numerikus módszerek 1.
Numerikus módszerek 1. 6. előadás: Vektor- és mátrixnormák Lócsi Levente ELTE IK 2013. október 14. Tartalomjegyzék 1 Vektornormák 2 Mátrixnormák 3 Természetes mátrixnormák, avagy indukált normák 4 Mátrixnormák
Általános algoritmustervezési módszerek
Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás
Analízis ZH konzultáció
Analízis ZH konzultáció 1. Teljes indukció Elméleti segítség: n=1-re bebizonyítani (vagy arra az n-re, ahonnan az állítást igazolni szeretnénk) feltesszük, hogy n-re igaz az állítás -> n+1-re is igaz lesz?
Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása
Oktatási Hivatal Országos Középiskolai Tanulmányi Verseny / Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása. Oldja meg a valós számok legbővebb részhalmazán a egyenlőtlenséget!
ELEMI PROGRAMOZÁSI TÉTELEK
ELEMI PROGRAMOZÁSI TÉTELEK 1. FELADATMEGOLDÁS PROGRAMOZÁSI TÉTELEKKEL 1.1 A programozási tétel fogalma A programozási tételek típusalgoritmusok, amelyek alkalmazásával garantáltan helyes megoldást adhatunk
Diszkrét matematika 1. estis képzés
Diszkrét matematika 1. estis képzés 2019. tavasz 1. Diszkrét matematika 1. estis képzés 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
Logika és informatikai alkalmazásai
Logika és informatikai alkalmazásai 4. gyakorlat Németh L. Zoltán http://www.inf.u-szeged.hu/~zlnemeth SZTE, Informatikai Tanszékcsoport 2011 tavasz Irodalom Szükséges elmélet a mai gyakorlathoz Előadás
Matematika A1a Analízis
B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Matematika Aa Analízis BMETE90AX00 Az exp és ln függvények H607, EIC 209-04-24 Wettl
Logika és informatikai alkalmazásai
Logika és informatikai alkalmazásai 4. gyakorlat Németh L. Zoltán http://www.inf.u-szeged.hu/~zlnemeth SZTE, Informatikai Tanszékcsoport 2011 tavasz Irodalom Szükséges elmélet a mai gyakorlathoz Előadás
Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)
Sorozatok I. DEFINÍCIÓ: (Számsorozat) A számsorozat olyan függvény, amelynek értelmezési tartománya a pozitív egész számok halmaza, értékkészlete a valós számok egy részhalmaza. Jelölés: (a n ), {a n }.
Diszkrét matematika II., 8. előadás. Vektorterek
1 Diszkrét matematika II., 8. előadás Vektorterek Dr. Takách Géza NyME FMK Informatikai Intézet takach@inf.nyme.hu http://inf.nyme.hu/ takach/ 2007.??? Vektorterek Legyen T egy test (pl. R, Q, F p ). Definíció.
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
A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk
1. Kódelmélet Legyen X = {x 1,..., x n } egy véges, nemüres halmaz. X-et ábécének, elemeit betűknek hívjuk. Az X elemeiből képzett v = y 1... y m sorozatokat X feletti szavaknak nevezzük; egy szó hosszán
Kijelentéslogika, ítéletkalkulus
Kijelentéslogika, ítéletkalkulus Arisztotelész (ie 4. sz) Leibniz (1646-1716) oole (1815-1864) Gödel (1906-1978) Neumann János (1903-1957) Kalmár László (1905-1976) Péter Rózsa (1905-1977) Kijelentés,
Boros Zoltán február
Többváltozós függvények differenciál- és integrálszámítása (2 3. előadás) Boros Zoltán 209. február 9 26.. Vektorváltozós függvények differenciálhatósága és iránymenti deriváltjai A továbbiakban D R n
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.
Számításelmélet Kiszámítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést, amire számítógéppel szeretnénk megadni a választ. (A matematika nyelvén precízen megfogalmazott