NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere
|
|
- Donát Kovács
- 7 évvel ezelőtt
- Látták:
Átírás
1 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 Először általában a nem-determinisztikus programok formális helyesség bizonyításait vizsgáljuk Majd a nem-determinisztikus strukturált programok szintéziséről lesz szó 2 Nem-determinisztikus program elemek 1. A számítási csomópontokhoz nem függvényt, hanem relációt (nem-determinisztikus függvényt) rendelünk. 2. Az elágazási csomópontoknál kettőnél több kivezető él lehet, és mindegyikhez tartozik egy feltétel, ám ezek a feltételek nem szükségképpen teljesek és diszjunktak páronként. o Az átfedő feltételek okozzák a nem-determinisztikusságot o Ha egyik feltétel sem teljesül, ekkor hibás lesz a működés 3. Nem-determinisztikus szekvencia, azaz nincs megkötés a szekvenciát alkotó tagprogramok sorrendjére o Ez átvezet a párhuzamos programok vizsgálatához, ezért itt nem is számolunk vele Program-gráf A programok leírására a determinisztikus programoknál bevezetett gráfot használhatjuk: 1. A számítási csomópontokban megengedjük, hogy az f számítás nem-determinisztikus legyen: f A A. v f(v) helyett: v e ha e f(v) (v : f(v) ) Ennek alesete a v f(v) g(v) f, g : A A, amikor v f(v) vagy v g(v) hajtódik végre. 2. Az elágazási csomópontoknál megengedünk kettőnél több kivezető élt is, amelyekhez egy-egy kvantorfüggetlen logikai kifejezés tartozik. Ha egyszerre több kivezető él feltétele is teljesül, akkor az egyik ilyen ág hajtódik végre. Ha egyik feltétel sem teljesül, ekkor hibás működés keletkezik. 3. A gyűjtő csomópontokba kettőnél több él is befuthat. 3 4 Floyd módszerének felidézése Floyd módszer általánosítása Determinisztikus programok esetében egy rögzített kezdő csomóponthoz és kiinduló állapothoz egyértelműen tartozott egy végrehajtás és egy út a program-gráfban. Floyd módszere úgy mutatta meg, hogy bármelyik φ -ből induló végrehajtás ψ-ben áll meg, hogy a program-gráfnak a végrehajtáshoz tartozó útját, pontosabban annak útszakaszait vizsgálta. Ennek alapja az volt, hogy adott kiinduló állapot mellett egy út egyértelműen azonosította a végrehajtást. A nem-determinisztikusság miatt egy rögzített kezdő csomóponthoz és kiinduló állapothoz többféle végrehajtás is tartozhat. Egy végrehajtáshoz ugyan most is egyértelműen tartozik egy út a program-gráfban, de adott kiinduló állapot mellett egy úton több végrehajtás is keletkezhet. A Floyd módszer tehát nem-determinisztikus program esetén is alkalmazható, de az útszakasz jellemzők felírása körülményesebb. Erre megoldást jelenthet, ha sűrűn címkézzük a program-gráfot (minden csomópont előtt és után), de ekkor a helyességbizonyítás a sok útszakasz miatt hosszadalmas
2 Nem-determinisztikus strukturált programok A strukturált programokat most is rekurzív módon definiáljuk. Kétféle definíciót is fogunk látni őrfeltételes (parciális) értékadás kiválasztás iteráció kilépéses iteráció Szintaxis 1. S::= skip v f(v) S 1 ; S 2 if 1 S 1 n S n fi do 1 S 1 n S n od do 1 S 1 n S n S e ; exit od ahol S 1, S 2,S n, S e nem-determinisztikus programok f : A A; f(v) kifejezés 1,, n, : A L; i (v), (v) kvantorfüggetlen logikai kifejezések 7 8 Szemantika 1. skip () = () () ( v f(v))( )=, f() ( v f(v))( )=, fail fail, M[S 1 ]() (S 1 ; S 2 )() = S 1 () S 2 (M[S 1 ]() ) fail, M[S 1 ]() (S 1 ; S 2 )() = S 1 () i[1..n]: i() (if 1 S 1 n S n fi)( ) = S i ( ) i[1..n]: i () (if 1 S 1 n S n fi)( ) =, fail i[1..n]: i () (do 1 S 1 n S n od)() = (S i; do 1 S 1 n S n od)() i[1..n]: i () (do 1 S 1 n S n od)( ) = i[1..n]: i () (do 1 S 1 n S n S e ; exit od)() = (S i; do 1 S 1 n S n S e ; exit od)() i[1..n]: i () (do 1 S 1 n S n S e ; exit od)()=s e () Szintaxis 2. S::= skip v: f(v) S 1 ; S 2 if 1 S 1 n S n fi while (v) do S 0 od ahol S 0, S 1, S 2,S n nem-determinisztikus programok f A A 1,, n : A L; i (v) kvantorfüggetlen logikai kifejezések 9 10 Szemantika 2. skip () = (v : f(v))( )= (v), e, ahol e f() fail, M[S 1 ]() (S 1 ; S 2 )() = S 1 () S 2 (M[S 1 ]() ) fail, M[S 1 ]() (S 1 ; S 2 )() = S 1 () i [1..n]: i() (if 1 S 1 n S n fi)( ) = S i( ) i[1..n]: i () (if 1 S 1 n S n fi)( ) =, fail () (while (v) do S 1 od )() = (S 1 ; while (v) do S 1 od )() () (while (v) do S 1 od )() = Leggyengébb előfeltétel (Dijkstra) Legyenek ahol Q, R : A L állítások és S egy program Dijkstra leggyengébb előfeltétele [lf(s,r)] = { σ D p(s) p(s)(σ) [R] } {Q} S {R} helyett használjuk: Q lf(s,r) Teljes helyesség feltétele: lf(s, ) ahol (, ) a feladat specifikációja bb-re: Q b lf(s, R b )
3 Hoare axiómái és szabályai a leggyengébb előfeltétel használatával Üres program: Értékadás: lf(skip, R) = R lf(v f(v), R) =R f f totális Szekvencia: Q lf((s 1 ;S 2 ), R) ha Q lf(s 1, Q ) és Q lf(s 2, R) ahol Q : A L Elágazás: Q lf(if then S 1 else S 2 fi, R) ha Q lf(s 1, R) és Q lf(s 2, R) Ciklus: Q lf(while do S 0 od), R) ha Q P és P R és P lf(s 0,P) és P t>0 és t 0 Z: P t=t 0 lf(s 0, t<t 0 ) ahol P : A L, t : A Z Hoare-Dijkstra-Gries módszer axiómái és szabályai nem-determinisztikus programokra Üres program: lf(skip, R) = R Értékadás: lf(v: f(v), R)(v) = v D f e f(v) : R(e) Szekvencia: Q lf((s 1 ;S 2 ), R) ha Q : A L úgy, hogy Q lf(s 1, Q ) és Q lf(s 2, R) Elágazás: Q lf(if 1 S 1 n S n fi, R) ha Q 1 n és i {1.. n}: Q i lf(s i, R) Ciklus: Q lf(while do S 0 od), R) ha I : A L és t : A Z úgy, hogy Q I és I R és I lf(s 0, I) és I t>0 és t 0 Z: I t=t 0 lf(s 0, t<t 0 ) Példa Valós szám természetes számú hatványa A = RNR x n h Q = (x=x n=n ) R = (h = x n ) I = (h*x n = x n ) t = n h := 1 n 0 h, n := h * x, n 1 Kell: Q lf(s, R) 1. Q lf(h := 1, I) Q I h 1 2. I lf(while, R) b) I n=0 R c) I n 0 t>0 d) I n 0 t=t 0 lf(h, n := h * x, n 1, I t<t 0 ) h := 1 n 0 I n 0 t=t 0 ( I t<t 0 ) h,n h*x, n-1 n>0 h, n := h * x, n Példa befejezése I = h*x n = x n 1. Q I h 1 =(h* x n = x n ) h 1 = (x n = x n ) 2. b) I n=0 R ~ h* x n = x n n=0 h = x n c) I n 0 n>0~ h* x n = x n n 0 n>0 (n : N) d) I n 0 n=n 0 ((I n<n 0 ) h,n h*x, n-1 n>0 )= =( h*x* x n-1 = x n n-1<n 0 n>0 ) (n : N) I Példa Két természetes szám legkisebb közös többszöröse A = NNN a b c Q = (a=a b=b a>0 b>0) R = (Q d = lkkt(a,b) ) I = (Q ad bc max(d,c) lkkt(a,b) ) t = lkkt(a,b) max(d,c) d, c := a, b d<c d c d>c d := d+a c := c +b
4 Kell: Q lf(s, R) 1. Q lf(d,c := a,b, I) Q I d,c a,b 2. I lf(while, R) b) I d=c R c) I d c t>0 d) I d c t=t 0 lf(if, I t<t 0 ) d<c d := d+a d, c := a, b d c d>c c := c +b d) I d c t=t 0 lf(if, I t<t 0 ) i. I d c t=t 0 d<c d>c ii. I d c t=t 0 d<c lf(d := d+a, I t<t 0 ) I d c t=t 0 d<c (I t<t 0 ) d d+a iii. I d c t=t 0 d>c lf(c := c +b, I t<t 0 ) I d c t=t 0 d>c (I t<t 0 ) c c+b Példa befejezése I = Q ad bc max(d,c) lkkt(a,b) 1. Q I d,c a,b =(Q ad bc max(d,c) lkkt(a,b)) d,c a,b =(Q aa bb max(a,b) lkkt(a,b) ) 2. b) I d=c R (ad bd d lkkt(a,b) d= lkkt(a,b)) c) I d c lkkt(a,b) max(d,c)>0 (lkkt(a,b) max(d,c)) i. I d c lkkt(a,b) max(d,c)= t 0 d<c d>c ii. I d c lkkt(a,b) max(d,c)=t 0 d<c Q a(d+a) bc max(d+a, c) lkkt(a,b) lkkt(a,b) max(d+a,c)<t 0 iii. I d c lkkt(a,b) max(d,c)=t 0 d>c Q ad b(c+b) max(d,c+b) lkkt(a,b lkkt(a,b) max(d,c+b)<t 0 Axiómák lf(skip, R)=R helyett [lf(skip, R)]=[R] [lf(skip, R)] = { σ D p(skip) p(skip)(σ) [R] } = = { σ A σ [R] } = [R] [lf( v: f(v), R)] = { σ D p(v: f(v)) p(v: f(v))(σ)[r]} = = { σ D f f(σ)[r]} = ( { σ D f e f(σ) : R(e)} ) = = { σ D f σ[r f]} = D f [R f] lf( v: f(v), R)= v D f e f(v) : R(e) helyett [lf(v: f(v), R)]=D f [R f] Szekvencia levezetési szabályának Elég belátni: Q lf(s, R) helyett [Q] [lf(s, R)] [Q] [lf(s 1, Q )] [lf(s 1, lf(s 2, R))] = [lf((s 1 ;S 2 ), R)] Monotonítási szabály Szekvencia definíciója Kevésbé formálisan: Az (S 1 ;S 2 ) szekvencia összes végrehajtása (ld. szekvencia definíciója) az S 1 -beli végrehajtással indul. Egy Q-ból induló végrehajtásnak az első szakasza ezért a Q lf(s 1, Q ) miatt véges lépésben eljut Q -be, ahonnan az S 2 folytatja a végrehajtást (ld. szekvencia definíciója). Ez a második szakasz a Q lf(s 2, R) miatt R-ben fog megállni, tehát a szekvencia Q-ból induló végrehajtása R-ben áll meg, azaz Q lf((s 1 ;S 2 ), R). Elágazás levezetési szabályának Bizonyítás: Vegyünk egy Q-beli q állapotot. A q az elágazás valamelyik feltételét biztosan kielégíti a Q 1 n miatt, ezért az elágazás definíciója szerint belőle csak olyan végrehajtások indulnak, amelyeket azok az ágak adják, amelyek feltételét a q állapot kielégíti. Mivel i {1.. n}: Q i lf(s i, R) ezért mindegyik q-ból induló végrehajtás R-ben áll meg, azaz Q lf(if 1 S 1 n S n fi, R)
5 Ciklus levezetési szabályának Bizonyítás: Egy ciklus minden végrehajtása felbontható a ciklusmag végrehajtásaiból áll szakaszokra (kivéve a -beli állapotból induló végrehajtásokat). ezek a szakaszok mindig egy -beli állapotból indulnak (hiszen S 0 csak ekkor kap szerepet) az I-ből induló szakaszok az I lf(s 0, I) miatt I-ben állnak meg (eredményesen). A ciklus eredményesen megálló végrehajtásai -beli állapotban végződnek vagy -beli állapotból induló egyelemű végrehajtás vagy a végrehajtás legutolsó szakasza -beli állapot kell legyen Ciklus levezetési szabályának Bizonyítás folytatása: A Q-ból induló és eredményesen (-ban) leálló végrehajtások a Q I miatt I-ből indulnak, így aztán minden szakasz határa I-ben lesz, tehát a végrehajtás végállapota is, ami az I R miatt R-ben lesz. A Q-ból induló végrehajtások mind eredményesek, mert az I-ből induló szakaszai mind eredményesek, és végtelen sok szakasz nem lehet. Ez utóbbi esetén ugyanis I t>0 és t 0 Z: I t=t 0 lf(s 0, t<t 0 ) miatt egy szigorúan monoton csökkenő természetes számokból álló sorozatot rendelne a t a szakaszok kezdőállapotaihoz, ami lehetetlen. Tehát Q lf(while do S 0 od), R) A módszer helyes, de nem teljes Az előbbi bizonyítások alapján a módszer helyes A bizonyított állításoknak egy kivételével a megfordítása is igaz. o A ciklus levezetési szabályának megfordítása viszont csak akkor igaz, ha a ciklusmag iterációinak száma a feladat kezdőállapotaiban felülről becsülhető. o Van olyan nem-determinisztikus ciklus (program), amely megold egy problémát, de a ciklus levezetési szabályának (leállási) feltételei nem teljesülnek rá. A = Z n Q = (igaz) R = (n=0) n 0 n : N n < 0 n := n
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észletesebben5. 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... 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észletesebbenProgramkonstrukció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észletesebbenALAPFOGALMAK 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észletesebbenElő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észletesebbenBevezeté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észletesebbenProgramozá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észletesebbenS0-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észletesebbenAlgoritmusok 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észletesebbenProgramok é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észletesebben6. 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észletesebben9. 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észletesebben8. 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észletesebbenOsztott 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észletesebbenLogika é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észletesebbenVé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észletesebbenA C# programozási nyelv alapjai
A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet
RészletesebbenBevezeté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:
RészletesebbenAlgoritmizá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észletesebbenJava 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észletesebbenAlgoritmizá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észletesebbenFraktálok. Hausdorff távolság. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék március 14.
Fraktálok Hausdorff távolság Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2015. március 14. TARTALOMJEGYZÉK 1 of 36 Halmazok távolsága ELSŐ MEGKÖZELÍTÉS Legyen (S, ρ) egy metrikus tér, A, B S, valamint
RészletesebbenA 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észletesebben7.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észletesebbenVá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észletesebbenAutomaták mint elfogadók (akceptorok)
Automaták mint elfogadók (akceptorok) Ha egy iniciális Moore-automatában a kimenőjelek halmaza csupán kételemű: {elfogadom, nem fogadom el}, és az utolsó kimenőjel dönti el azt a kérdést, hogy elfogadható-e
RészletesebbenA 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észletesebbenZH feladatok megoldásai
ZH feladatok megoldásai A CSOPORT 5. Írja le, hogy milyen szabályokat tartalmazhatnak az egyes Chomskynyelvosztályok (03 típusú nyelvek)! (4 pont) 3. típusú, vagy reguláris nyelvek szabályai A ab, A a
Részletesebben26. 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
RészletesebbenFormá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észletesebbenAlgoritmizálás, adatmodellezés 1. előadás
Algoritmizálás, adatmodellezés 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 induló élből
RészletesebbenA helyességbizonyítás klasszikus módszerei
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 http://www.mit.bme.hu/~majzik/ Motiváció Kritikus
RészletesebbenA digitális számítás elmélete
A digitális számítás elmélete 1. előadás szept. 19. Determinisztikus véges automaták 1. Példa: Fotocellás ajtó m m m k b s = mindkét helyen = kint = bent = sehol k k b s m csukva b nyitva csukva nyitva
RészletesebbenModellellenő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észletesebbenProblémamegoldás kereséssel. Mesterséges intelligencia március 7.
Problémamegoldás kereséssel Mesterséges intelligencia 2014. március 7. Bevezetés Problémamegoldó ágens Kívánt állapotba vezető cselekvéseket keres Probléma megfogalmazása Megoldás megfogalmazása Keresési
RészletesebbenAnalí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
RészletesebbenAz 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
RészletesebbenVáltozók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):
Python 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 alatt
RészletesebbenSzámításelmélet. Második előadás
Számításelmélet Második előadás Többszalagos Turing-gép Turing-gép k (konstans) számú szalaggal A szalagok mindegyike rendelkezik egy független író / olvasó fejjel A bemenet az első szalagra kerül, a többi
RészletesebbenAnalí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?
Részletesebbenminden 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
Részletesebben2. 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észletesebbenFormá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észletesebbenChomsky-féle hierarchia
http://www.cs.ubbcluj.ro/~kasa/formalis.html Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezet ), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.
RészletesebbenPROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK
PROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK Szerkesztette: Bókay Csongor 2012 tavaszi félév Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: 2012. június
Részletesebben1. 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észletesebbenAutomaták és formális nyelvek
Automaták és formális nyelvek Bevezetés a számítástudomány alapjaiba 1. Formális nyelvek 2006.11.13. 1 Automaták és formális nyelvek - bevezetés Automaták elmélete: információs gépek általános absztrakt
RészletesebbenAdminisztrációs feladatok Strukturált programok A C programnyelv elemei
Strukturált C-Strukturált Egyéb elemek Strukturált C-Strukturált Egyéb elemek Adminisztrációs feladatok Strukturált programok A C programnyelv elemei A programozás alapjai. álózati Rendszerek és Szolgáltatások
RészletesebbenA = fx j P (x) igazg ; A = fx j 1 x 7; x prímszámg : A [ B = fx j x 2 A, vagy x 2 Bg ; [a::b] := [a; b] \ Z
1 Alapfogalmak Halmaz: Azonos tulajdonságú elemek összessége. Halmaz jelölése: Latin ABC nagybet½ui (általában). Halmaz elemeinek jelölése: Latin kisbet½uk (általában). Halmaz megadása: a) elemeinek felsorolásával,
RészletesebbenA 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észletesebbenFordí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észletesebbenDení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észletesebbenProgramozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat
PM-07 p. 1/13 Programozási módszertan Dinamikus programozás: A leghosszabb közös részsorozat Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-07
RészletesebbenGyakorló feladatok Gyakorló feladatok
Gyakorló feladatok előző foglalkozás összefoglalása, gyakorlató feladatok a feltételes elágazásra, a while ciklusra, és sokminden másra amit eddig tanultunk Változók elnevezése a változók nevét a programozó
Részletesebben3. Strukturált programok
Ha egy S program egyszerű, akkor nem lehet túl nehéz eldönteni róla, hogy megold-e egy (A,Ef,Uf) specifikációval megadott feladatot, azaz Ef-ből (Ef által leírt állapotból indulva) Uf-ben (Uf által leírt
RészletesebbenSzkriptnyelvek. 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észletesebben2. A példahalmazban n = 3 negatív és p = 3 pozitív példa van, azaz a példahalmazt képviselő döntési fa információtartalma: I = I(1/2, 1/2) = 1 bit.
Példa 1. Döntési fa számítása/1 1. Legyen a felhasználandó példahalmaz: Példa sz. Nagy(x) Fekete(x) Ugat(x) JóKutya(x) X1 Igen Igen Igen Nem X2 Igen Igen Nem Igen X3 Nem Nem Igen Nem X4 Nem Igen Igen Igen
Részletesebben... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)
6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban
RészletesebbenProgramozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
RészletesebbenBASH 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észletesebbendefiniá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
RészletesebbenDiszkré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 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
RészletesebbenSorozatok és Sorozatok és / 18
Sorozatok 2015.11.30. és 2015.12.02. Sorozatok 2015.11.30. és 2015.12.02. 1 / 18 Tartalom 1 Sorozatok alapfogalmai 2 Sorozatok jellemz i 3 Sorozatok határértéke 4 Konvergencia és korlátosság 5 Cauchy-féle
RészletesebbenSorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK
Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK Sorozat fogalma Definíció: Számsorozaton olyan függvényt értünk, amelynek értelmezési tartománya a pozitív egész
RészletesebbenA 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észletesebbenAlgoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.
Algoritmuselmélet Legrövidebb utak, Bellmann-Ford, Dijkstra Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 3. előadás Katona Gyula Y. (BME
RészletesebbenDiszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.
RészletesebbenAlgoritmizálás + kódolás C++ nyelven és Pascalban
Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban
RészletesebbenProgramozási módszertan. Mohó algoritmusok
PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás
RészletesebbenMatematika 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észletesebbenAlgoritmusok bonyolultsága
Algoritmusok bonyolultsága 11. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm () 1 / 1 NP-telesség Egy L nyelv NP-teles, ha L NP és minden L NP-re L L. Egy Π döntési feladat NP-teles, ha Π NP és
RészletesebbenLogika és informatikai alkalmazásai
Logika és informatikai alkalmazásai 2. gyakorlat Németh L. Zoltán http://www.inf.u-szeged.hu/~zlnemeth SZTE, Informatikai Tanszékcsoport 2008 tavasz Irodalom Szükséges elmélet a mai gyakorlathoz Előadás
RészletesebbenDiszkré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
RészletesebbenDiszkré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
RészletesebbenFormá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észletesebbenDiszkré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 7. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Részletesebben2. 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észletesebbenHaladók III. kategória 2. (dönt ) forduló
Haladók III. kategória 2. (dönt ) forduló 1. Tetsz leges n pozitív egész számra jelölje f (n) az olyan 2n-jegy számok számát, amelyek megegyeznek az utolsó n számjegyükb l alkotott szám négyzetével. Határozzuk
RészletesebbenMegoldott 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+ =
RészletesebbenAlkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
RészletesebbenMelykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}
Mélységi keresés Ez az algoritmus a gráf pontjait járja be, eredményképpen egy mélységi feszítőerdőt ad vissza az Apa függvény által. A pontok bejártságát színekkel kezeljük, fehér= érintetlen, szürke=meg-
Részletesebben2. 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észletesebbenOperációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik
RészletesebbenProgramozá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
RészletesebbenELEMI 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
RészletesebbenBEVEZETÉS A PROGRAMOZÁSHOZ
FÓTHI ÁKOS BEVEZETÉS A PROGRAMOZÁSHOZ Harmadik, javított kiadás c Fóthi Ákos, 2012 Tartalomjegyzék 1. Alapfogalmak 11 1.1. Halmazok................................ 11 1.2. Sorozatok................................
Részletesebben1. megold s: A keresett háromjegyű szám egyik számjegye a 3-as, a két ismeretlen számjegyet jelölje a és b. A feltétel szerint
A 004{005. tan vi matematika OKTV I. kateg ria els (iskolai) fordul ja feladatainak megold sai 1. feladat Melyek azok a 10-es számrendszerbeli háromjegyű pozitív egész számok, amelyeknek számjegyei közül
RészletesebbenAlgoritmizálás, adatmodellezés tanítása 1. előadás
Algoritmizálás, adatmodellezés 1. előadás Az algoritmus fogalma végrehajtható (van hozzá végre-hajtó) lépésenként hajtható végre a lépések maguk is algoritmusok pontosan definiált, adott végre-hajtási
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 3. előadás Vezérlési szerkezetek Elágazás Gyakran előfordul, hogy meg kell vizsgálnunk egy állítást, és attól függően, hogy igaz vagy hamis, a programnak más-más
RészletesebbenFolyamatok specifikációja:
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
RészletesebbenA PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin
1 A PROGRAMOZÁS ALAPJAI 3 Készítette: Vénné Meskó Katalin Információk 2 Elérhetőség meskokatalin@tfkkefohu Fogadóóra: szerda 10:45-11:30 Számonkérés Időpontok Dec 19 9:00, Jan 05 9:00, Jan 18 9:00 egy
RészletesebbenChomsky-féle hierarchia
http://www.ms.sapientia.ro/ kasa/formalis.htm Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezetű), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.
RészletesebbenTuring-gép május 31. Turing-gép 1. 1
Turing-gép 2007. május 31. Turing-gép 1. 1 Témavázlat Turing-gép Determinisztikus, 1-szalagos Turing-gép A gép leírása, példák k-szalagos Turing-gép Univerzális Turing-gép Egyéb Turing-gépek Nemdeterminisztikus
RészletesebbenGRÁ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,
RészletesebbenTuring-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1
Turing-gépek Logika és számításelmélet, 7. gyakorlat 2009/10 II. félév Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1 A Turing-gép Az algoritmus fogalmának egy intuitív definíciója:
RészletesebbenBá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észletesebben1. tétel - Gráfok alapfogalmai
1. tétel - Gráfok alapfogalmai 1. irányítatlan gráf fogalma A G (irányítatlan) gráf egy (Φ, E, V) hátmas, ahol E az élek halmaza, V a csúcsok (pontok) halmaza, Φ: E {V-beli rendezetlen párok} illeszkedési
RészletesebbenRekurzív sorozatok. SZTE Bolyai Intézet nemeth. Rekurzív sorozatok p.1/26
Rekurzív sorozatok Németh Zoltán SZTE Bolyai Intézet www.math.u-szeged.hu/ nemeth Rekurzív sorozatok p.1/26 Miért van szükség közelítő módszerekre? Rekurzív sorozatok p.2/26 Miért van szükség közelítő
RészletesebbenII. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés
II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés Nagyon könnyen megfigyelhetjük, hogy akármilyen két számmal elindítunk egy Fibonacci sorozatot, a sorozat egymást követő tagjainak
Részletesebben