330 likes | 505 Views
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE ) Csíkszereda IRT - 3 . kurzus. TARTALOM : Általánosságok Algoritmusok ábrázolása : Matematikai-logikai nyelvezet Ps z eudo kó d Függőleges logikai sémák Vízszintes logi kai sémák Fastruktúrák D öntési táblák.
E N D
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus • TARTALOM: • Általánosságok • Algoritmusok ábrázolása: • Matematikai-logikai nyelvezet • Pszeudokód • Függőleges logikai sémák • Vízszinteslogikaisémák • Fastruktúrák • Döntési táblák
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Általánosságok 1. Algoritmizálunk akövetkezőesetekben: ·számítás volumenenagy ·az aktivitássokszor ismétlődik ·az eredmények rövid időn belül szükségesek 2. Ahangsúlyazon vanhogy ábrázoljukéshogyépítjük felaz algoritmustegy valós és nehéz probléma megoldásának érdekében 3. A legjobb algoritmus ? 4. A komplexitásidőben csökkenő?
Algoritmusokelemzése • Előre megadjuk, hogy milyen erőforrásokra lesz szüksége az algoritmusnak. • A RAM (Random Access Memory)-közvetlen hozzáférésű memóriát vesszük alapul. • A Processzorral együtt alkotja a közvetlen hozzáférésű gépet. • Az utasítások egymás után hajtódnak végre, egyidejű műveletek nélkül. • Meg kell fogalmazzuk a modell műveleteit és azok költségeit. • Bemenet mérete: feladatfüggő • a tömb n elemszáma (rendezésnél) • Bitek száma (pl. számok szorzása esetén) • Gráf éleinek és csúcsainak száma • Futási idő: egy bizonyos bemenetre a végrehajtott alapműveletek (lépések száma)
Beszúrásos rendezés algoritmusa Költség végrehajtási szám C1 n C2 n-1 C4 n-1 C5 C6 C7 C8 n-1 1 for j←2 to hossz[A] 2 do S←A[j] 3 ((A[j] beszúrása az A[1..j-1] rendezett sorba)) 4 i←j-1 5 while i>0 and A[i]>S 6 do A[i+1]←A[i] 7 i←i-1 8 A[i+1]←S tj ahányszor 5-ös végrehajtódik a j-re
Legjobb eset A 6-os és 7-es utasítás NEM hajtódik végre, az 5-ös feltétel nem teljesülése miatt, viszont az 5-ös feltételt ellenőrzi minden ciklusban a program T(n)=c1n+c2(n-1)+c4(n-1)+c5(n-1)+c8(n-1)=an+b lineáris függvény Költség végrehajtási szám C1 n C2 n-1 C4 n-1 C5 n-1 C6 C7 C8 n-1 1 for j←2 to hossz[A] 2 do S←A[j] 3 ((A[j] beszúrása az A[1..j-1] rendezett sorba)) 4 i←j-1 5 while i>0 és A[i]>S 6 do A[i+1]←A[i] 7 i←i-1 8 A[i+1]←S
Legroszabb eset T(n)=an2+bn+c négyzetes függvény Költség végrehajtási szám C1 n C2 n-1 C4 n-1 C5 n-1 C6 (n-1)*(n-1) C7 (n-1)*(n-1) C8 n-1 1 for j←2 to hossz[A] 2 do S←A[j] 3 ((A[j] beszúrása az A[1..j-1] rendezett sorba)) 4 i←j-1 5 while i>0 and A[i]>S 6 do A[i+1]←A[i] 7 i←i-1 8 A[i+1]←S T(n)=c1n+(c2+c4+c5+c8)(n-1)+(c6+c7)(n2-2n+1)
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus 1. Definíció: Azt mondjuk, hogy T(n)=O(f(n)) az algoritmus komplexitásának a mértéke ha léteznek c1 és c2 számok valamint n0 úgy, hogy: c1f(n) ≤ T(n) ≤ c2f(n), ()n ≥ n0. 2. Definíció: Azt mondjuk, hogy T(n)=O(f(n)) egy algoritmus komplexitásának nagyságrendje, ha létezik két pozitív konstans c, n0, úgy, hogy T(n) ≤ cf(n), ()n ≥ n0.
c2f(n) T(n) c1f(n) n0 n cf(n) T(n) n0 n T(n)=Θ(f(n)) A komplexitás mértéke T(n)=O(f(n)) A komplexitás nagyságrendje
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus • Az algoritmusokjellemzői • (általánosság, végesség, egyediség, automatizmus) • Szubalgoritmusok. • (egymásratevődésesképzés, fokozatosképzés ) • Algoritmusosztályok • (Numerikus, nemnumerikus, feldolgozási)
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus • Definíció: Egy algoritmustpolinomiálisnaknevezünk, haolyan temporális komplexitással rendelkezik, amelyik O(f(n)) alakú, ahol f(n) egy polinomiális függvény n hosszúságú bemenetekre. • f(n)=a1n+a0 • f(n)=a2n2+a1n+a0 • f(n)=a16n16+a10n10+a5n5+a2n2+a1n+a0 • f(n)=a6783n6783+a532n532+a5n5+a2n2+a1n+a0
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus 2. Definíció: Ha egy algoritmus nem polinomiális komplexitású, akkorexponenciális;mindenolyan algoritmus exponenciálisként van kezelve, amelykomplexitásanlog n, habár sem nem polinomiálisak sem nem exponenciálisak matematikai értelemben. Utazóügynök probléma: Egy utazóügynök n várost kell meglátogasson bizonyos időn belül. Hogyan járja be a városokat, hogy a költsége minél kisebb legyen (legyen a költség=út hossza). Az utak bejárásának összes esete: n! n!=1.2.3.4….n>=2n-1NEM polinomiális (exponenciális)
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Algoritmusok ábrázolása • matematikai-logikai nyelvezet, • pszeudokód, • függőleges logikaisémák, • vízszintes logikaisémák (Chapin), • fastrúktúrák (Tabouriervagy Mills), • döntésitáblák.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Pszeudokód típusú nyelvek • Természetes nyelv,strukturáltés egyszerűsített, • Egyalternatívája a logikai sémának, • Nemprogramozási nyelv, • Sokváltozata van, • Az algoritusokegymásutánimondatokból épülnek fel, • Mondatok lehetnek: egyszerűek • (pl.: nyiss meg egy állományt, olvass egy bejegyzést fájlból); • Komplex mondatok, logikai operátorokkal összekötve • A # szimbólum az elkövetkezőkben kiterjesztett mondatra utal • A mondat egy igével kezdődik (pl. Read változó,..) • Megközelítésmódja "top-down" tipúsú (fentről lefele)
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Függőleges logikaiséma • Az algoritmus grafikai ábrázolása, • Háromfajta egységből áll(blokkból): • 1) Funkcionálisegység : Y=f(X) • X Y • 2) Döntési egység: Y Z = c(X) • 3) Kötések (összeköttetések)
s1 s2 s3 s4 C s1 s2 C s Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Alap kontroll struktúrák-1 • Lineárisstruktúrajelölése (s1,s2,...,sn) • b) Alternatívstruktúra jelölése (c,s1,s2), • c) Előfeltételes repetitívstruktúra jelölése (c,s) • d) /\ Struktúra (Üres blokk)
s1 s2 sn s C C s2 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Alap kontroll struktúrák-2 • Utófeltételesrepetitív struktúra jelölése '(c,s) • Pszeudo-alternatívstruktúrajelölése '(c,s) • Általánosított alternatív struktúrajelölése ''(c,s1,s2,...sn)
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Összefüggések • Π(s1,s2) = (BLOCK,s1,s2); • Δ (c,s1,s2) = (IF-THEN-ELSE, c,s1,s2); • Ω (c,s) = (DO-WHILE,c,s) • Ω ' (c,s) = (DO-UNTIL,c,s) • Δ'(c,s) = (IF-THEN,c,s) • Δ' '(i,s1,s2,...sn) = (CASE-OF,i,s1,s2,...,sn).
Beszúrásos rendezés algoritmusa Start j=2 s1 1 for j←2 to hossz[A] 2 do S←A[j] 3 i←j-1 4 while i>0 and A[i]>S 5 do A[i+1]←A[i] 6 i←i-1 7 A[i+1]←S Rendez s2 j=j+1 s3 j<6 c2 П(s1,Ω’(c2,П(s2,s3))) Vége
j=2 s1 s2=П(s4,П(s5,X)) S=A[j] s4 s2=П(s4,П(s5,П(Y,s8))) s5 i=j-1 i=i-1 s6 i>0 and A[i]>S Y=Ω(c3,П(s7,s6)) A[i+1]=A[i] s7 c3 s2=П(s4,П(s5,П(Ω(c3,П(s7,s6)),s8))) A[i+1]=S s8 j=j+1 s3 c2 j<hossz A F= П(s1,Ω’(c2,П(П(s4,П(s5,П(Ω(c3,П(s7,s6)),s8))),s3)))
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Alapstruktúrák tulajdonságai. 1) Π struktúra általában nem kommutatív: Π (s1,s2) Π (s2,s1). 2) Π struktúra asszociatív: Π (s1, Π (s2,s3)= Π (Π (s1,s2),s3). 3) Azüres /\ elem semleges a szekvenciális struktúra szempontjából : Π (s,/\)= Π (/\,s). 4) Π struktúra jobb oldalróldisztributív az alternatív strukturára nézve: Π (Δ (c,s1,s2),s3)= Δ (c, Π (s1,s3), Π (s2,s3)).
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Alapstruktúrák tulajdonságai. 5) Π struktúra disztributív balról az alternatív struktúráranézve : Π (s1, Δ (c,s2,s3))= Δ (c, Π (s1,s2), Π (s1,s3)). 6) struktúraátalakíthatóaz alternatív bennfoglalási struktúrákra: (c,s)= (c, Π (s, (c,s)),/\)= Δ (c, Π (s, Δ (c, Π (s, (c,s) )),/\)),/\)=... 7) Δ ', Δ ", Ω' struktúrákátalakíthatóak a Π , Δ, Ω struktúrákra : Ω '(c,s)= Π (s, Ω (c,s));, Δ '(c,s)= Δ (c,s,/\); Δ '(c,s)= Δ (c,s, Ω (c,s)); Δ '(c,s1,s2,...sn)= Δ (c1,s1, Δ (c2,s2,...)),
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3.kurzus Strukturált Program Definíció: Strukturáltprogramnak nevezünk bármely olyan programot amelynekkontroll struktúrájamegvalósítása esetén kizárólag szekvenciálisan strukturált blokkokat használunk, két ágú alternatív struktúrátés előfeltételes alternatív struktúrát. Boehm ésJacopinistruktúra tétele Adott háromúj funkcionális blokk T,F,K T F T x--->(t,x) ; x--->(f,x) ; x--->(t,(t,x)). K K (v,x)--->x ; (t,(f,(t,x)))--->(f,(t,x)). W[(v,x)]=t <=> v=t
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus A struktúra tétele • A struktúra tétel (Boehm és Jacopini)Haegy x-->x' alkalmazás logikai úton ábrázolható úgy, hogy az s1,s2,... akciókat tartalmazzaésa c1,c2,... predikátumokat ugyanúgy reprezentálható egy logikai séma általamelyik felbomlikΠ, Δ şi Ω -raés amelyik tartalmazzaugyanazokat a blokkokatmint az eredeti séma, és még T, F, K és W tipúsú blokkokat. • Bizonyítás: indukcióval • n- blokkok száma
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus „Top-down„ folyomány • „Top-down„ folyomány(„fentről lefele"). • Egy strukturált program ekvivalensegy olyan programmalamelyik a következő formákat veheti fel: • P = Π (s1,s2), P = Δ (c,s1,s2) • P = Ω (c,s), P = Ω '(c,s) • ahol c állítmány, és s,s1,s2strukturált procedúrákvagy a program funkciói.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus Fastruktúradiagramm • a)Tabourier variánsa 3.14 ábra reprezentációithasználja a következő struktúrákra: • szekvenciális – Π(s1,s2)=(BLOCK, s1,s2) • alternatív – Δ (c,s1,s2) (IFTHENELSE,c,s1,s2) • előfeltételes repetitív – jelölése (WHILEDO,c,s) • pszeudoalternatív – jelölése (IFTHEN, c,s) • többszörösen alternatív – jelölése (CASEOF, c,s1,s2,...,sn) • utófeltételes repetitív – jelölése (DOUNTIL,s,c),
BLOCK IFTHENELSE IFTHEN S1 S2 S2 Sn S1 S1 S1 S1 c c S2 CASEOF DOUNTIL WHILEDO c c S1 c Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus Tabourier variáns
BLOCK j=2 DOUNTIL J>hosszA BLOCK S=A[j] BLOCK i=j-1 BLOCK WHILEDO BLOCK i>0 and A[i]>S BLOCK A[i+1]=S j=j+1 A[i+1]=A[i] i=i-1 1 for j←2 to hossz[A] 2 do S←A[j] 3 i←j-1 4 while i>0 and A[i]>S 5 do A[i+1]←A[i] 6 i←i-1 7 A[i+1]←S
WHILE DO IF THEN ELSE C1 C1 BLOCK S1 S2 S3 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus Millsvariáns
s1 0 00 s2 c2 1 01 0 c1 2 02 s3 s4 0 00 s5 c2 1 01 1 3.18.b. ábraAz esetek meghatározása s6 2 02 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus Döntési táblák Az első r sorra (IGEN, NEM tipús; <, =, > tipús; 0,1,2,... tipús) Az m eset száma m=n1*n2*…nr
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus Döntési táblák • Hatásvonal környéke • * az Sj feltételek esetében az Ai akció végrehajtásra kerül • tij= • üresha az Ai akció nem hajtódik végreaz Sj esetben • A döntési táblák három tipúsúak lehetnek : • a) korlátozott bemenettel (mindenfeltételaz L2={0,1} halmaz elemeiből vesz értéket); • b) kiterjesztettbemenettel (vagyis a feltételek értelmezési tartománya Ln, n>2 halmaz); • c) vegyes bemenettel (egyes feltételek az L2–n vannak értelmezvemások az Ln, n>2.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus Döntési táblák • A feladatok szekvenciája: • -döntési tábla feltételeinek megállapítása • - szabályokmegállapítása • - lehetséges akciók meghatározása • - döntési tábla elkészítése • - az ellentmondások és a redundancia kiküszöbölése • - a kapott tábla egyszerűsítése
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-3. kurzus Ismétlőkérdések • Milyen esetekben algoritmizáluk • A komplexitás definíciója • Algoritmusok tulajdonságai ésosztályai • Miegy polinomiálisésegy nempolinomiális algoritmus • Pszeudokód tipúsú nyelvek • Függőleges logikai sémák • Alapstruktúrák tulajdonságai • Strukturált program , Boehm-Jacopini tétele • Fastruktúrák (Tabourie, Mills) • Döntési táblák.Felépítés és egyszerűsítés