Logikai programozás BEVEZETÉS.

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

Kondicionális Eddig: Boole-konnektívumok ( , ,  ) Ezek igazságkonnektívumok (truth-functional connectives) A megfelelő köznyelvi konnektívumok: nem.
Diagnosztika szabályok felhasználásával, diagnosztikai következtetés Modell alapú diagnosztika diszkrét módszerekkel.
2006. február 17. Valószínűségszámítás és statisztika II. Telefonos feladat Egy kalapban van két korong, az egyiknek mindkét oldala piros, a másiknak.
AMIT FELTÉTLENÜL TUDNI KELL AZ ÉRETTSÉGI VIZSGÁKRÓL 2014.
HELLER ÁGNES: FILOZÓFIA MINT LUXUS
Matematikai logika.
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Adminisztratív kérdések
3. A programozás eszközei, programozás-technikai alapismeretek
É: Pali is, Pista is jól sakkozik. T: Nem igaz. É: Bizonyítsd be. Mi nem igaz? T: Nem igaz, hogy Pali jól sakkozik. Nyertem É: Pali vagy Pista.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Takarmányozástan (Vadgazda mérnöki alapszak)
Programozás.
Barwise-Etchemendy: Language, Proof and Logic
Kétértékűség és kontextusfüggőség Kijelentéseink igazak vagy hamisak (mindig az egyik és csak az egyik) Kijelentés: kijelentő mondat (tartalma), amivel.
Logika Érettségi követelmények:
Halmazok.
A számítógépes nyelvfeldolgozás alapjai
MI 2003/7 - 1 Az egyesítési algoritmus Minden kapitalista kizsákmányoló. Mr. Smith kapitalista. Mr. Smith kizsákmányoló.
Lineáris programozás Modellalkotás Grafikus megoldás Feladattípusok
Logika 5. Logikai állítások Miskolci Egyetem Állam- és Jogtudományi Kar Jogelméleti és Jogszociológiai Tanszék március 10.
Programozás I. Ciklusok
Halmazelmélet és matematikai logika
Bevezetés az orvosi kódrendszerekhez 2. előadás Semmelweis Egyetem Egészségügyi szervező szak II. évf
PROLOG PROGRAMOZÁSI NYELV
III. előadás: Írásbeliség, egyén, társadalom
Programozás. fordító (compiler): a program forrásszövegéből egy gépi kódú, futtatható programot (pl. EXE) állít elő, vagyis a programot lefordítja a gép.
Szintaktikai, szemantikai szabályok
Logika 2. Klasszikus logika Miskolci Egyetem Állam- és Jogtudományi Kar Jogelméleti és Jogszociológiai Tanszék február 17.
Kombinatorikus Programozás TDK vagy Szakdolgozat Téma Készítette: Kusper Gábor Minden jog fenntartva!
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
Atomi mondatok FOL-ban Atomi mondat általában: amiben egy vagy több dolgot megnevezünk, és ezekről állítunk valamit. Pl: „Jóska átadta a pikk dámát Pistának”
Levezetési szabályok kvantorokra  -bevezetés (egzisztenciális általánosítás, EG)  -kiküszöbölés (univerzális megjelenítés, UI)  -kiküszöbölés (EI):
Nem igaz, hogy a kocka vagy tetraéder. Nem igaz, hogy a kicsi és piros. a nem kocka és nem tetraéder. a nem kicsi vagy nem piros. Általában: "  (A  B)
Logika szeminárium Előadó: Máté András docens Demonstrátorok:
(nyelv-családhoz képest!!!
Logikai programozás 6.. Problémafelvetés: diak(jani, 3.3, pecs). diak(laci, 3.7, kaposvar). diak(matyi, 4.1, pecs). diak(kati, 2.3, barcs). diak(jeno,
Programozás III BEVEZETÉS.
Logikai programozás 2..
Logikai programozás 9.. Programok: EGY KIS ISMERET-TÁGÍTÁS – struktura.pl – operatorok.pl, precedencia.pl – útvonaltervezés – send_more_money (smm1.pl,
Logikai programozás 8.. Adatok: ISMÉTLÉS: ADATBÁZISKEZELÉS A külső adatok a hatására bekerülnek a memóriába Lekérdezés: Ahogy eddig – pl.: szereti(jani,
Logikai programozás 5..
Szoftverfejlesztés az Informatikus Szakigazgatási Agrármérnök szakon Bakó Mária Várallyai László DE, Gazdaságtudományi Kar.
Egyágú elágazás Szintaxis: if (feltétel)
Meg tudod különböztetni a színeket?! OK, Akkor nézd meg ezt a képet...
Táblázatkezelés KÉPLETEK.
Az informatika logikai alapjai
Logika szeminárium Előadó: Máté András docens Demonstrátorok:
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
Henkin-Hintikka-játék szabályai, kvantoros formulákra, még egyszer: Aki ‘  xA(x)’ igazságára fogad, annak kell mutatnia egy objektumot, amire az ‘A(x)’
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Programozás alapjai Készítette: Csiszár Nóra Anita
Adatstruktúrák Algoritmusok Objektumok
Logikai programozás 7..
Elemi adattípusok.
Analitikus fa készítése Ruzsa programmal
Gépészeti informatika (BMEGEMIBXGI)
Logika szeminárium Barwise-Etchemendy: Language, Proof and Logic
Compiler illetve interpreter nyelvek
A házi feladatokhoz: 1.5: Azonosság Jelölések a feladatszám alatt:
Atomi mondatok Nevek Predikátum
Programozás C# -ban Elágazások.
Érvelések (helyességének) cáfolata
Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false};
Programozási nyelvek alapfogalmai
A évi kompetenciamérés FIT-jelentéseinek új elemei
ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)
Előadás másolata:

Logikai programozás BEVEZETÉS

ADMINISZTRATÍV KÉRDÉSEK Bármilyen kérdéssel (akár tananyag, akár nem), örömmel, bánattal: achs.agnes@gmail.com (Ha két napon belül nem válaszolok, akkor kérek egy figyelmeztető levelet. ) Ha a kérdés a követelményrendszerre vonatkozik, akkor előbb ld. witch . (De ha mégsem érthető, akkor persze lehet írni.)

KÖVETELMÉNYRENDSZER – FŐBB PONTOK Jót, s jól. Ebben áll a nagy titok. Ezt ha nem érted… Néhány számszerű tudnivaló: Két zh Megajánlott jegy a két zh átlaga alapján: - 50% elégtelen 51 - 65% elégséges 66 - 82% közepes 83 - jó A jelesért vizsgázni kell.

NÉHÁNY BIZTATÓ SZÓ A tárgy „csalóka”, tanuljon!  „Csak akkor értesz valamit, ha be tudod programozni. Te magad és nem valaki más! Ha nem tudod beprogramozni, akkor csak úgy gondolod, hogy érted.” — Gregory Chaitin

„Akár azt hiszed, hogy képes vagy rá, akár azt, hogy nem, igazad lesz” A TANULÁS MOTTÓJA: „Akár azt hiszed, hogy képes vagy rá, akár azt, hogy nem, igazad lesz” Henry Ford

NYELV Lee Whorf szerint (a hopi indiánok nyelvét próbálta tanulmányozni) a nyelv több, mint a gondolatközlés eszköze. A nyelv valójában fontos szerepet játszik a gondolat megformálásában. Sőt, azt is mondhatjuk, hogy az ember oly módon érzékeli az őt körülvevő világot, ahogyan azt az anyanyelve már eleve beprogramozta számára. Hasonló a helyzet a programozási nyelvekkel is.

NYELVEK A középkorban hátrányos helyzetben volt az a diák, aki nem tudott latinul ÉS görögül, mert nem tudta két különböző nézőpontból szemlélni a világot. (írja Patrick Winston cambridge-i professzor Ivan Bratko: Prolog című könyvének előszavában) Hasonló a helyzet a programozási nyelvekkel is.

Brueghel: Bábel tornya NYELVEK Hány nyelvet beszélnek a világon? kb.: 3 – 10 ezer között ebből írott nyelv kb.: 2-300 Brueghel: Bábel tornya

PROGRAMOZÁSI NYELVEK Kb. hány programozási nyelv lehet? Becslések szerint több, mint 4000. Ebből jóval kevesebb a szabványosított.

PROGRAMOZÁSI NYELVEK

PROGRAMOZÁSI NYELVEK Imperatív nyelvek: „Hogyan” oldjuk meg a feladatot – a Turing gép modellen alapszik. Változó: egy memóriarekesz kap nevet és értéket. A program állapota: a változó nevek/értékek és az éppen végrehajtott utasítás. Program: állapotátmenetek sorozata. Imperatív program: állapotok és az őket módosító utasítások. Eljárás: állapotátmenetek bizonyos értelemben jellemző sorozata. Procedurális programozás: imperatív programozási eljárások együttese.

PROGRAMOZÁSI NYELVEK Deklaratív nyelvek: Nem az a kérdés, hogy „hogyan”, hanem, hogy „mi” a megoldandó feladat.  A feladat pontos megfogalmazásán van a hangsúly. Változó: egy érték kap nevet (mint a matematikai változó fogalma). A megoldás megkeresése a futtató környezet dolga.

EGY KIS TÖRTÉNELEM Prolog: Robert Kowalski ötlete Első Prolog megvalósítás: Alain Colmerauer 1972, Marseille-i egyetem Első magyar megvalósítás: Szeredi Péter 1975. Első fordítóprogram D.H.D Warren 1977, (DEC10, WAM, Warren Abstract Machine) 1981: japán 5. generációs elképzelések Magyar Prolog rendszerek: MPROLOG (Szeredi P. és társai), CS-Prolog (Futó Iván) Prolog ISO szabvány: 1995.

LOGIKAI PROGRAMOZÁS – PROLOG (PROgramming in LOGic / PROgrammation en LOGique ) Egy logikai program axiómák (tények) és következtetési szabályok halmaza. A tények bizonyos ismereteket reprezentálnak, melyekből a szabályok segítségével következtethetünk újabb ismeretekre. A program kiértékelése ezen axiómák és szabályok következményeinek meghatározása. Az összes lehetséges következmény halmazát tekintjük a program jelentésének.

A LOGIKAI PROGRAMOZÁS SÉMÁJA Egy Prolog program futási eredménye: yes vagy no (true vagy false).

LOGIKAI PROGRAMOZÁS – PROLOG Axiómák (tények): igaznak tekintett állítások. Amiről állítunk valamit: TERM Amit állítunk: PREDIKÁTUM (prédikálni) Pl.: kék(ég) Másképp: színe(ég, kék)

következmény :- feltétel1, feltétel2, …feltételn. LOGIKAI PROGRAMOZÁS – PROLOG Következtetési szabályok: HA feltétel1 ÉS feltétel2 ÉS … feltételn AKKOR következmény A következményen van a hangsúly, ezért a szabály: következmény HA feltétel1 ÉS feltétel2 ÉS … feltételn. Prolog szintaktikával: következmény :- feltétel1, feltétel2, …feltételn.

LOGIKAI PROGRAMOZÁS – PROLOG Logikai háttér: Implikáció: A  B. Horn klóz: A1  A2  …  An  B. Fordított sorrendben: B  A1  A2  …  An.

LOGIKAI PROGRAMOZÁS – PROLOG Feladatok: Hogyan lehet megfogalmazni azt, hogy 1. olcsó a sör? a/ tényállításként b/ szabállyal (HF) 2. minden diák okos?

LOGIKAI PROGRAMOZÁS – PROLOG A tárgyalandó Prolog: SWI-Prolog http://www.swi-prolog.org Szintaktikai szabályok: – Minden mondat végén pont. (Adatbevitelkor is.) – Nagy kezdőbetű: változó, kis kezdőbetű: konstans. FONTOS: – A paraméter nélküli predikátumnál NINCS üres zárójel! – Predikátumnév és zárójel között NEM LEHET szóköz!

LOGIKAI PROGRAMOZÁS – PROLOG MÉG EGY FONTOS MEGJEGYZÉS: A predikátumok korrekt jelölése: predikátumnév/argumentumszám Minden predikátum kis betűvel kezdődik!!

PÉLDÁK 1. Feladat: Ünnepeljük meg az első Prolog órát, menjünk kocsmázni! Vigyázat, csak virtuálisan ! Vagyis: tudjuk, hogy melyik diák milyen italt szeret. Azt is tudjuk, melyik kocsmában milyen italt árulnak. Kérdés: ki hova megy, ha mindenki olyan helyre jár, ahol mérnek olyan italt, amit ő szeret. Hogyan oldaná meg ugyanezt a feladatot C-ben (vagy C#-ban vagy Java-ban)?

PÉLDÁK 2. Feladat: Valaki sertést, kecskét és juhot vásárolt, összesen 100 db-t, pontosan 100 aranyért. A sertés darabja 3 és fél arany, a kecskéé 1 és egyharmad, a juhoké fél arany. Hány darabot vett az egyes állatokból?