Programozás nyelvek 3 3. előadás

Hasonló dokumentumok
Adatszerkezetek II. 3. előadás

Programozás nyelvek a közoktatásban 2. előadás

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

2. Visszalépéses keresés

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

22. GRÁFOK ÁBRÁZOLÁSA

Adatszerkezetek II. 2. előadás

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17

8.Előadás Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatszerkezetek II. 1. előadás

Programozás nyelvek a közoktatásban 1. előadás

Algoritmizálás, adatmodellezés 1. előadás

Mesterséges Intelligencia MI

INFORMATIKAI ALAPISMERETEK

Diszkrét matematika 2. estis képzés

GráfRajz fejlesztői dokumentáció

Gráfelméleti alapfogalmak

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

Informatikai tehetséggondozás:

E-tananyag Matematika 9. évfolyam Függvények

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Programozási nyelvek Java

Algoritmusok és adatszerkezetek I. 1. előadás

Kép mátrix. Feladat: Pap Gáborné-Zsakó László: Algoritmizálás, adatmodellezés 2/35

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

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

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Visszalépéses keresés korlátozással

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

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Algoritmuselmélet 7. előadás

Diszkrét matematika 2.C szakirány

Szimulációs technikák

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Az adatbázisrendszerek világa

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

EuroOffice Optimalizáló (Solver)

Az informatika kulcsfogalmai

Diszkrét matematika 2.C szakirány

vizsga (név, kezdőóra, kezdőperc, végóra, végperc). cím (név, város, utca, házszám). könyv (szerző, cím, kód) kölcsönvett (kód, mettől, meddig).

Keresési algoritmusok, optimalizáció

Diszkrét matematika 1. estis képzés

Gráf csúcsainak színezése. The Four-Color Theorem 4 szín tétel Appel és Haken bebizonyították, hogy minden térkép legfeljebb 4 színnel kiszínezhető.

2. Visszalépéses stratégia

Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév

1. tétel - Gráfok alapfogalmai

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

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Hálózati folyamok. Tétel: A maximális folyam értéke megegyezik a minimális vágás értékével.

Algoritmus vizualizáció a tanítási gyakorlatban. Törley Gábor

Neurális hálózatok bemutató

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

Diszkrét matematika 2.C szakirány

Adatszerkezetek I. 1. előadás

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Exact inference in general Bayesian networks

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Diszkrét matematika 2.C szakirány

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

Diszkrét matematika 2. estis képzés

Számítógépes döntéstámogatás. Genetikus algoritmusok

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


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

Grid felhasználás: alkalmazott matematika

Bevezetés a programozásba I.

Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése

Programozási nyelvek 1. előadás

Algoritmusok és adatszerkezetek I. 10. előadás

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Ellenőrző kérdések. 5. Kis dolgozat kérdései. (9-10. előadás)

Elemi adatszerkezetek

Multihalmaz, intervallumhalmaz

Egyszerű programozási tételek

Adatmodellezés. 1. Fogalmi modell

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Algoritmusok és adatszerkezetek gyakorlat 07

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

ABB Teach Pendant programozás segédlet

Algoritmizálás, adatmodellezés 1. előadás

Gondold ki, beszéld meg, osszad meg. Párbeszéd folytatása

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

PROGRAMOZÁSI TÉTELEK

Algoritmusok és adatszerkezetek 2.

Programozás alapjai. 10. előadás

1. Jelölje meg az összes igaz állítást a következők közül!

V. Kétszemélyes játékok

Java programozási nyelv 5. rész Osztályok III.

Adatbázis rendszerek Gy: Algoritmusok C-ben

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére

Logikai programozás ADMINISZTRATÍV KÉRDÉSEK KÖVETELMÉNYRENDSZER FŐBB PONTOK NÉHÁNY BIZTATÓ SZÓ

Home movie database. Specifikáció. Verzió: 1.0. Dátum: Státusz: Released. Készítette: Farkas Róbert. Kulcsár Orsolya.

IPv4 címkiosztó program Hardverközeli programozás 1 Beadandó feladat

Összetett programozási tételek

Programozási alapismeretek 3. előadás

Átírás:

Programozás nyelvek 3 3. előadás

Feladat: ismerünk városok közötti repülőgépjáratokat, amelyek alapján el kellene döntenünk, hogy egy városból eljuthatunk-e egy másik városba, esetleg átszállásokkal. Felhasználható tudás: a repülőgépjáratok oda-vissza közlekednek. 2/15

A térkép tárolása tényekkel és szabályokkal (a szimmetria miatt): út(budapest,varsó). út(budapest,london). út(london,peking). van_út(x,y) ha út(x,y) vagy út(y,x). 3/15

Megoldási ötlet: vagy van közvetlen járat, vagy megpróbálunk átszállással eljutni (mint az őse szabálynál). mehetünk(x,y) ha van_út(x,y) vagy van_út(x,z) és mehetünk(z,y). Probléma: végtelen ciklusba kerülünk. Az oka: a repülőgép hálózatot leíró gráf irányítatlan. (Az ősöket leíró gráf irányított és körmentes volt.) Megoldás: kellenének változók azon városok tárolására, ahol már jártunk. 4/15

Megoldási elv: a Prolog program képes futás közben változtatni önmagán, új tényeket, szabályokat vehetünk fel, korábbiakat törölhetünk. Az ehhez kapcsolódó műveletek: assert(tény vagy szabály). asserta(tény vagy szabály). assertz(tény vagy szabály). retract(tény vagy szabály feje). retractall(tény vagy szabály feje). 5/15

Megoldási ötlet: vagy van közvetlen járat, vagy megpróbálunk átszállással eljutni (mint az őse szabálynál). mehetünk(x,y) ha van_út(x,y) vagy van_út(x,z) és szabad(z) és mehetünk(z,y). szabad(z) ha voltunk(z) és! és fail vagy asserta(voltunk(z)). Ha az adatbázisban már van voltunk(z) tény, akkor oda ne menjünk még egyszer; ha nincs, akkor vegyük fel és menjünk is el oda! 6/15

Újabb problémák: A "varsói" kitérőt megtesszük. Másodszori kérdésre nem kapunk választ. Megoldás egy főprogram, amely kitakarítja a korábbi információkat és a kezdő városba visszalépést nem engedi: kérdés(x,y) ha retractall(voltunk(_)) és assert(voltunk(x)) és mehetünk(x,y). 7/15

Adott tények megszámolása (gyerekek száma): szülője(anna,antal). szülője(anna,andrea). szülője(andrea,andrás). darab(x,a) ha szülője(x,b) és szabad(b) és darab(x,c) és A=C+1 vagy A=0. szabad(b) ha volt(b) és! és fail vagy asserta(volt(b)). Ez csak akkor működik, ha a gyerekek neve különböző! Egyes Prolog verziókban: A is C+1 8/15

Adott tények összegzése (termékek árát tároljuk): ára(kávé,1000). ára(tea,800). ára(kakaó,1000). összeg(a) ha ára(x,b) és szabad(x) és összeg(c) és A=C+B vagy A=0. szabad(x) ha volt(x) és! és fail vagy asserta(volt(x)). Ez csak akkor működik, ha a termékek neve különböző! Egyes Prolog verziókban: A is C+B 9/15

Adott tények számának maximuma (legtöbb gyerekes szülő): szülője(anna,antal). szülője(anna,andrea). szülője(andrea,andrás). darab(x,a) ha szülője(x,b) és szabad(b) és darab(x,c) és A=C+1 vagy A=0. szabad(b) ha volt(b) és! és fail vagy asserta(volt(b)). legtöbb(x) ha darab(x,a) és nem(vantöbb(a)). vantöbb(a) ha darab(_,b) és B>A. Egyes Prolog verziókban: A is C+1 10/15

Beszélgetés tanulással egy párbeszéd: Ki vagy?anna Mi a nemed (N/F)?N Hány éves vagy, Anna?15 Hogy köszöntselek?szia Szia, Anna! Ki vagy?andrea Mi a nemed (N/F)?N Hány éves vagy, Andrea?35 Hogy köszöntselek? Jó napot, hölgyem! Ki vagy?anna Szia, Anna! 11/15

Beszélgetés tanulással: párbeszéd ha write("ki vagy?") és readln(név) és Név<>"" és beszélget(név) és párbeszéd vagy write("vége") and nl. beszélget(név) ha személy(név,nem,kor) és válasz(név,nem) vagy kivagy(név,nem,kor) és asserta(személy(név,nem,kor)) és válasz(név,nem). 12/15

Beszélgetés tanulással: válasz(név,nem) ha köszönés(név,kösz) és üdvözöl(név,nem,kösz) és! vagy write("hogy köszöntselek?") és readln(így) és asserta(köszönés(név,így)) és válasz(név,nem). üdvözöl(név,nem,üdv) ha Üdv="" és mit(nem,mi) és write("jó napot, ",Mi,"!") és nl vagy write(üdv,", ",Név,"!") és nl. 13/15

Beszélgetés tanulással: mit("f","uram"). mit("n","hölgyem"). kivagy(név,nem,kor) ha write("mi a nemed (N/F)?") és readln(nem) és write("hány éves vagy, ",Név,"?") és readint(kor) és nl. 14/15

Programozás nyelvek 3 3. előadás vége