Erdélyi Magyar TudományEgyetem (EMTE



Hasonló dokumentumok
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 3. kurzus TARTALOM:

Mesterséges intelligencia 1 előadások

Dr. Schuster György február / 32

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

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

Gyakorló feladatok ZH-ra

Java programozási nyelv

Egyszerű programozási tételek

Dr. Jelasity Márk. Mesterséges Intelligencia I. Előadás Jegyzet (2008. október 6) Készítette: Filkus Dominik Martin

Programozható logikai vezérlõk

INFORMATIKAI ALAPISMERETEK

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Régi, statikus adatok élővé tétele és vizsgálata

1. Bevezetés. A számítógéptudomány ezt a problémát a feladat elvégzéséhez szükséges erőforrások (idő, tár, program,... ) mennyiségével méri.

2015, Diszkrét matematika

INFORMATIKAI ALAPISMERETEK

Máté: Számítógép architektúrák

Matematikai alapok. Dr. Iványi Péter

C# feladatok gyűjteménye

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

Algoritmuselmélet. Király Zoltán ELTE Matematikai Intézet február 18. Legfrissebb, on-line verzió:

C# gyorstalpaló. Készítette: Major Péter

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.

Informatikai tehetséggondozás:

A matematika alapjai. Nagy Károly 2014

I. Gondolkodási módszerek: (6 óra) 1. Gondolkodási módszerek, a halmazelmélet elemei, a logika elemei. 1. Számfogalom, műveletek (4 óra)

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

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.

noannb Számítógépek automatizált tervezése

INFORMATIKAI ALAPISMERETEK

Analízis előadás és gyakorlat vázlat

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Internet programozása. 3. előadás

Programozás 3. Dr. Iványi Péter

Nemzeti alaptanterv 2012 MATEMATIKA

Fordítóprogramok felépítése, az egyes programok feladata. A következő jelölésmódot használjuk: program(bemenet)(kimenet)

Miskolci Egyetem. Diszkrét matek I. Vizsga-jegyzet. Hegedűs Ádám Imre

7. Szisztolikus rendszerek (Eberhard Zehendner)

Bevezetés a programozásba. 12. Előadás: 8 királynő

Párhuzamos algoritmusmodellek Herendi, Tamás Nagy, Benedek

XIII. Bolyai Konferencia Bodnár József Eötvös József Collegium, ELTE TTK, III. matematikus. A véletlen nyomában

BEVEZETÉS A FUZZY-ELVŰ SZABÁLYOZÁSOKBA. Jancskárné Dr. Anweiler Ildikó főiskolai docens. PTE PMMIK Műszaki Informatika Tanszék

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

14. Mediánok és rendezett minták

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

5.10. Exponenciális egyenletek A logaritmus függvény Logaritmusos egyenletek A szinusz függvény

Széchenyi István Szakképző Iskola

Megoldott feladatok. Informatika

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Helyi tanterv Német nyelvű matematika érettségi előkészítő. 11. évfolyam

Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla, Csorba Kristóf BME MIT

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

INFORMATIKAI ALAPISMERETEK

Logika nyelvészeknek, 11. óra A kvantifikáció kezelése a klasszikus és az általánosított kvantifikációelméletben

Logoprint 500. Sajátosságok határérték figyelés eseményjelzés terjedelmes szövegkijelzés statisztika (jelentés) min- / max- és középértékkel

Komputer statisztika gyakorlatok

LEGO robotok. IV. rész

MATEMATIKA ÉVFOLYAM

SZÁMOLÁSTECHNIKAI ISMERETEK

Programok értelmezése

Matematikai logika. Nagy Károly 2009

Kiegészítés a Párbeszédes Informatikai Rendszerek tantárgyhoz

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Oktatási segédlet REZGÉSCSILLAPÍTÁS. Dr. Jármai Károly, Dr. Farkas József. Miskolci Egyetem

Információs Technológia

SZAKDOLGOZAT. Takács László

9. előadás Környezetfüggetlen nyelvek

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Fábián Zoltán Hálózatok elmélet

EÖTVÖS LORÁND TUDOMÁNYEGYETEM KLASSZIFIKÁCIÓ AZ ADATBÁNYÁSZATBAN

Programozási alapismeretek 3. előadás

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

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

S z á m í t ó g é p e s a l a p i s m e r e t e k

BASH SCRIPT SHELL JEGYZETEK

Komáromi Éva LINEÁRIS PROGRAMOZÁS

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

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

117. AA Megoldó Alfréd AA 117.

A 2008/2009. tanévi FIZIKA Országos Középiskolai Tanulmányi Verseny első fordulójának. feladatai és megoldásai fizikából. I.

Juhász Tibor. Lineáris algebra

Az indukció. Azáltal, hogy ezt az összefüggést felírtuk, ezúttal nem bizonyítottuk, ez csak sejtés!

Kvantum-hibajavítás II.

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

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

Válasz Szőnyi Tamásnak az Optimális térlefedő kódok kutatása című doktori értekezés opponensi bírálatára

Szakmai zárójelentés

19. Hasításos technikák (hash-elés)

M4 TÁBLÁZATKEZELÉS ALAPJAI

Táblázatkezelés 1. előadás. Alapok

3. Gyakorlat Ismerkedés a Java nyelvvel

C programnyelv 1. Kedves Kollegina, Kolléga!

1. Valósítsa meg az alábbi alapkapcsolásokat: Az 1. ábrán az A) kapcsolásban amíg a

Béres Mária TANÍTÓI KÉZIKÖNYV. Színes matematika tankönyvsorozat 2. osztályos elemeihez

XML technikák II Kovács, László

Mérôváltó bemenetek és általános beállítások

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék. Önálló laboratórium

Matematika 9. évfolyam

Átírás:

TARTALOM: Általánosságok Algoritmusok ábrázolása: Matematikai-logikai nyelvezet Pszeudokód Függőleges logikai sémák Vízszintes logikai sémák Fastruktúrák Döntési táblák 1

Általánosságok 1. Algoritmizálunk a következő esetekben: számítás volumene nagy az aktivitás sokszor ismétlődik az eredmények rövid időn belül szükségesek 2. A hangsúly azon van hogy ábrázoljuk és hogy építjük fel az algoritmust egy valós és nehéz probléma megoldásának érdekében 3. A legjobb algoritmus? 4. A komplexitás időben csökkenő? 2

Algoritmusok elemzé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) 3

Beszúrásos rendezés algoritmusa 1 2 3 4 5 6 5 2 4 6 1 3 1 2 3 4 5 6 2 5 4 6 1 3 1 2 3 4 5 6 2 4 5 6 1 3 1 2 3 4 5 6 2 4 5 6 1 3 1 2 3 4 5 6 1 2 4 5 6 3 1 2 3 4 5 6 1 2 3 4 5 6 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 n t j ahányszor 5-ös végrehajtódik a j-re j 2 t j Költség végrehajtási szám C1 n C2 n-1 C4 n-1 C5 C6 C7 C8 n-1 n j 2 ( t 1) j 4

Legjobb eset 1 2 3 4 5 6 1 2 3 4 5 6 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)=c 1 n+c 2 (n-1)+c 4 (n-1)+c 5 (n-1)+c 8 (n-1)=an+b lineáris függvény 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 Költség végrehajtási szám C1 n C2 n-1 C4 n-1 C5 n-1 C6 C7 C8 n-1 5

Legroszabb eset 1 2 3 4 5 6 6 5 4 3 2 1 T(n)=an 2 +bn+c négyzetes függvény 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 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 T(n)=c 1 n+(c 2 +c 4 +c 5 +c 8 )(n-1)+(c 6 +c 7 )(n 2-2n+1) 6

1. Definíció: Azt mondjuk, hogy T(n)=O(f(n)) az algoritmus komplexitásának a mértéke ha léteznek c 1 és c 2 számok valamint n 0 úgy, hogy: c 1 f(n) T(n) c 2 f(n), ( )n n 0. 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, n 0, úgy, hogy T(n) cf(n), ( )n n 0. 7

c 2 f(n) c 1 f(n) T(n) T(n)=Θ(f(n)) A komplexitás mértéke n 0 n cf(n) T(n) T(n)=O(f(n)) A komplexitás nagyságrendje n 0 n 8

Az algoritmusok jellemzői (általánosság, végesség, egyediség, automatizmus ) Szubalgoritmusok. (egymásratevődéses képzés, fokozatos képzés ) Algoritmusosztályok (Numerikus, nemnumerikus, feldolgozási) 9

1. Definíció: Egy algoritmust polinomiálisnak nevezünk, ha olyan 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)=a 1 n+a 0 f(n)=a 2 n 2 +a 1 n+a 0 f(n)=a 16 n 16 +a 10 n 10 +a 5 n 5 +a 2 n 2 +a 1 n+a 0 f(n)=a 6783 n 6783 +a 532 n 532 +a 5 n 5 +a 2 n 2 +a 1 n+a 0 10

2. Definíció: Ha egy algoritmus nem polinomiális komplexitású, akkor exponenciális; minden olyan algoritmus exponenciálisként van kezelve, amely komplexitása n log 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>=2 n-1 NEM polinomiális (exponenciális) 11

Algoritmusok ábrázolása matematikai-logikai nyelvezet, pszeudokód, függőleges logikai sémák, vízszintes logikai sémák (Chapin), fastrúktúrák (Tabourier vagy Mills), döntési táblák. 12

Pszeudokód típusú nyelvek Természetes nyelv, strukturált és egyszerűsített, Egy alternatívája a logikai sémának, Nem programozási nyelv, Sok változata van, Az algoritusok egymásutáni mondatokbó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és módja "top-down" tipúsú (fentről lefele) 13

Az algoritmus grafikai ábrázolása, Három fajta egységből áll (blokkból): 1) Funkcionális egység : Y=f(X) X Függőleges logikai séma Y 2) Döntési egység: Y Z = c(x) 3) Kötések (összeköttetések) 14

Alap kontroll struktúrák-1 a) Lineáris struktúra jelölése (s 1,...,s n ) s1 s2 s3 s4 b) Alternatív struktúra jelölése (c,s 1 ), C s1 s2 c) Előfeltételes repetitív struktúra jelölése (c,s) d) /\ Struktúra (Üres blokk) C s 15

Alap kontroll struktúrák-2 Utófeltételes repetitív struktúra jelölése '(c,s) s Pszeudo-alternatív struktúra jelölése '(c,s) C C s2 Általánosított alternatív struktúra jelölése ' '(c,s 1,...s n ) s1 s2 sn 16

Összefüggések Π(s 1 ) = (BLOCK,s 1 ); Δ (c,s 1 ) = (IF-THEN-ELSE, c,s 1 ); Ω (c,s) = (DO-WHILE,c,s) Ω ' (c,s) = (DO-UNTIL,c,s) Δ'(c,s) = (IF-THEN,c,s) Δ' '(i,s 1,...s n ) = (CASE-OF,i,s 1,...,s n ). 17

Beszúrásos rendezés algoritmusa 1 2 3 4 5 6 5 2 4 6 1 3 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 Start j=2 Rendez s 1 s 2 j=j+1 s 3 П(s 1,Ω (c 2,П(s 2,s 3 ))) j<6 c 2 Vége 18

j=2 S=A[j] i=j-1 i>0 and A[i]>S s 1 s 4 s 5 i=i-1 A[i+1]=A[i] s 2 =П(s 4,П(s 5,X)) s 2 =П(s 4,П(s 5,П(Y,s 8 ))) s 6 s 7 Y=Ω(c 3,П(s 7,s 6 )) A[i+1]=S c 3 s 8 s 2 =П(s 4,П(s 5,П(Ω(c 3,П(s 7,s 6 )),s 8 ))) j=j+1 s 3 j<hossz A c 2 F= П(s 1,Ω (c 2,П(П(s 4,П(s 5,П(Ω(c 3,П(s 7,s 6 )),s 8 ))),s 3 ))) 19

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ól disztributív az alternatív strukturára nézve: Π (Δ (c,s1,s2),s3)= Δ (c, Π (s1,s3), Π (s2,s3)). 20

Alapstruktúrák tulajdonságai. 5) Π struktúra disztributív balról az alternatív struktúrára né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,...)), 21

Strukturált Program Definíció: Strukturált programnak nevezünk bármely olyan programot amelynek kontroll struktúrája megvaló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 és Jacopini struktú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 22

A struktúra tétele A struktúra tétel (Boehm és Jacopini) Ha egy x-->x' alkalmazás logikai úton ábrázolható úgy, hogy az s 1,... akciókat tartalmazza és a c 1,c 2,... predikátumokat ugyanúgy reprezentálható egy logikai séma által amelyik felbomlik Π, Δ şi Ω -ra és amelyik tartalmazza ugyanazokat a blokkokat mint az eredeti séma, és még T, F, K és W tipúsú blokkokat. Bizonyítás: indukcióval n- blokkok száma 23

Top-down folyomány Top-down folyomány ( fentről lefele"). Egy strukturált program ekvivalens egy olyan programmal amelyik a következő formákat veheti fel: P = Π (s 1 ), P = Δ (c,s 1 ) P = Ω (c,s), P = Ω '(c,s) ahol c állítmány, és s, s 1, s 2 strukturált procedúrák vagy a program funkciói. 24

Fastruktúra diagramm a) Tabourier variáns a 3.14 ábra reprezentációit használja a következő struktúrákra: szekvenciális Π(s 1 )=(BLOCK, s 1 ) alternatív Δ (c,s 1 ) (IFTHENELSE,c,s 1 ) 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,s 1,...,s n ) utófeltételes repetitív jelölése (DOUNTIL,s,c), 25

Tabourier variáns BLOCK IFTHENELSE IFTHEN S 1 S 2 c S 1 S 2 c S 1 WHILEDO CASEOF DOUNTIL c S 1 c S 1 S 2 S n S 1 c 26

BLOCK j=2 DOUNTIL BLOCK S=A[j] BLOCK J>hosszA 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 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 27

Mills variáns WHILE DO C 1 IF THEN ELSE C 1 S 1 BLOCK S 2 S 3 28

Az első r sorra Döntési táblák (IGEN, NEM tipús; <, =, > tipús; 0,1,2,... tipús) Az m eset száma m=n1*n2* nr 0 00 s 1 c 1 0 1 c 2 1 2 0 c 2 1 01 02 00 01 s 2 s 3 s 4 s 5 2 02 3.18.b. ábra Az esetek meghatározása s 6 29

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 t ij = üres ha az Ai akció nem hajtódik végre az Sj esetben A döntési táblák három tipúsúak lehetnek : a) korlátozott bemenettel (minden feltétel az L 2 ={0,1} halmaz elemeiből vesz értéket); b) kiterjesztett bemenettel (vagyis a feltételek értelmezési tartománya L n, n>2 halmaz); c) vegyes bemenettel (egyes feltételek az L 2 n vannak értelmezve mások az L n, n>2. 30

Döntési táblák A feladatok szekvenciája: - döntési tábla feltételeinek megállapítása - szabályok megá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 31

Ismétlő kérdések Milyen esetekben algoritmizáluk A komplexitás definíciója Algoritmusok tulajdonságai és osztályai Mi egy polinomiális és egy 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 32