Logikprogrammering. KŠnnetecken. Exempel pœ relation. Relationer. Varianter. KŠnnetecken och fšrutsšttningar Prolog

Relevanta dokument
Lšneadministration Handbok

DatortillŠmpningar. Det har hšnt nœgot!

Lšnekostnader i fœmansfšretag

Newtons metod i en och flera variabler

BESITTNINGSBEGREPPET

Social kompetens/všrdegrund

Personuppgifter pœ Internet. Undantag frœn fšrbudet i 33 personuppgiftslagen

WIPO:s tvistlšsningssystem fšr tvister gšllande

Teoretisk Elektroteknik. Repetition i ellšra. Henrik Otterheim. Copyright 2003 Teoretisk Elektroteknik, KTH

MILJ BALKENS EFTERBEHANDLINGSANSVAR FASTIGHETS GARE

not notismœl NUTEK NŠrings- och teknikutvecklingsverket prop proposition ref referat

EgenmŠktighet med barn

Kan man lita pœ fšrvaltningsbeslut?

F R O R D. Stockholm i december Katja KerŠnen. E-post: katja.keranen@swipnet.se

1 Programmering i Java. Program element - Introduktion. Exempel. Exempel. Kapitel 3:

dess fšrhœllande till konkurrensrštten

UtvŠrdering av North Swedens verksamhet Œren

GrŠnsšverskridande konkurser och utlšndska tilllgœngars betydelse vid insolvensbedšmningen

Mobilister och nallar i forskningens tjšnst Jan Einarsson

Samband mellan resurser och resultat

MervŠrdesbeskattning av všrdepappersbolags tjšnster

- Sjuklšneproblematiken fšr smœ fšretag - 1 INLEDNING Bakgrund Problemanalys Problempresentation Problemformulering 5

Störningsupplevelse av buller i klassrum

Fšreningsstyrelsens ansvar

Auktioner pœ Internet

Friskrivningsklausuler En jšmfšrelse av svensk och italiensk rštt

i fœmansbolag - en jšmfšrelse av ršttslšget beskattningsœren 1999 och 2000 med anledning av stopplagstiftningens avskaffande

R 1998 ref 58 I-III ršrande finansiell leasing Ð en analys och kommentar ur inkomstskatteršttsligt perspektiv

Aktiebolagens kapitalvinstbeskattning - sšrskilt om begreppet verklig fšrlust

Temadag på CID Användarcentrerad systemutveckling och kravhantering

Barnets ršttigheter utifrœn barnets rštt att komma till tals

GrŠnsdragningen mellan ršnta och kapitalvinst Mot bakgrund av R 1995 ref 71 och R 1997 ref 44 Per-Arvid Gustafsson

Konkursbos ansvar fšr konkursgšldenšrens miljšfarliga verksamhet

Principskiss av vingbalk

Objekt och klasser - Introduktion. Objekt. Spar_Konto 2. Spar_Konto 1. Konton. Ett objekt har: Ett bankkonto. public void uttag(double belopp)

Beskattning av derivatinstrument inom aktiebolagssektorn

Maj Sofia Kolmodin

SKADEST ND ENLIGT LAG OM OFFENTLIG UPPHANDLING

DD1361 Programmeringsparadigm HT15

UTL MNANDE AV UPPGIFTER UTAN PATIENTENS SAMTYCKE

Bolagsordningen i fšrsvaret mot

Jan Einarsson, Offentlig privathet i nšrradion denna version 2000, Studentlitteratur och fšrfattaren. Offentlig privathet i nšrradion Jan Einarsson

Finansiella rådgivares ansvar

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

Stiftelsernas skattskyldighet

DD1361 Programmeringsparadigm HT17

1 Inledning 2 2 Aktieboken 3

Fakturering Kund & Leverantšrsreskontra. Handbok

a. didoner b. ellipstecken c. gif d. kapitšler e. pica f. rastertšthet g. serif h. spšrra i. stycketecken

I vems intresse? Programmet fšr Juris kandidat-examen/ Fšretags- och Fšrvaltningsjuridisk linje. TillŠmpade studier 10 p.

PROTOKOLL FR N SESAM R DSM TE

Betalningar med e-pengar

F RMEDLARANSVAR INTERNET

DD1361 Programmeringsparadigm HT16

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

Entreprenšrens kvalitetssškringsansvar

Hinder och ŒtgŠrder fšr kvinnans tillgœng till ršttssystemet

Informationsregler pœ Stockholms, Kšpenhamns och Oslos Fondbšrs

TESAURUSKONSTRUKTION I ÄMNET LANDSKAPSPLANERING

m Animering m Bilder m Grafik m Diskret representation -> kontinuerlig m En interpolerande funktion anvšnds fšr att

JŠmfšrelse av reglerna om uppehœllstillstœnd och avvisning fšr EU/EES- och tredjelandsmedborgare

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

kylskåp BRUKSANVISNING ERM

Jan Einarsson, Barns sprœk i klassamhšlle denna version 2000, Studentlitteratur och fšrfattaren. Barns sprœk i klassamhšlle Jan Einarsson

George Blecher Thorstein Veblen och en kavaj av bšsta tweed

SYSTEMUTVECKLING. - en jšmfšrelse mellan teoretiska modeller och ett praktikfall

MŠtningar med Oscilloskop

Lennart Carlssons svenska šversšttning av. Material fšr arbetsseminariet i Stockholm samt

OK 611:3. Kollektiv olycksfallsförsäkring

Teknik - och forskningsparker Industriell förnyelse

1 INLEDNING. 1.1 Problembeskrivning

Tillverkningshemligheter och

Revisorns funktion och ansvar vid revision i aktiebolag

HushŒllens finansiella tillgœngar, skulder, nettofšrmšgenhet och nysparande. Det bundna sparandets (fšrsškringssparande) andel av sparportfšljen

SŠkerhetsaspekter och systemkonstruktion

Göteborgsmodellen för ägarstyrning av kommunal verksamhet

ISBN Artikelnr

Investeringsbedömning

Enkšping-HŒbo TrŠdgŒrdssŠllskap Hšsten 2013 PROGRAM H STEN Enkšping-HŒbo TrŠdgŒrdssŠllskap

Vad tyckte du om grundutbildningen?

1 INLEDNING BAKGRUND SYFTE PROBLEMFORMULERING METOD OCH MATERIAL INKOMSTSKATTELAGEN DISPOSITION...

2 GLOBALISERINGSPROJEKT...

Kabel-TV-distributionen i Sverige ur ett yttrandefrihetsperspektiv InnehŒllsfšrteckning

Examensarbete, ytprofilmštning

VILKEN ROLL SPELAR L SNING F R PATIENTER P SJUKHUS?

Att fšrlšnga en ensamposition. HANDELSH GSKOLAN Vid Gšteborgs universitet JURIDISKA INSTITUTIONEN STRATEGIER INOM L KEMEDELSBRANSCHEN

Öka säkerheten med hjälp av olycksfall

VerksamhetsberŠttelse

Grundläggande logik och modellteori

ISO/IEC Riktlinje 22 och EN Owa 3-chome, Suwa-shi, Nagano-ken 392- Japan

HISNANDE HISTORIER: FRÅN BELLMAN TILL BATMAN.

Vem bär skulden? Förhållande mellan U-hjälp och skuldåterbetalning till IMF: Genomsnitt i de fattigaste länderna: 2,77 ggr (1998)

First Office. Redovisning. Ekonomisystem fšr Macintosh och Windows

Implementeringen av artikel 11, om bestšllning, i e-handelsdirektivet till svensk rštt.

Jan Einarsson, Gud och attityd. Ett perspektiv pœ sprœk och kšn denna version 2000, Studentlitteratur och fšrfattaren.

EG-rŠttens diskrimineringsfšrbud och dess inverkan pœ den direkta beskattningen

Utbildning via Internet

Buren utrustnings, sšrskilt kroppsskyddets, effekt pœ soldatens belastning och prestation.

Unga mäns och kvinnors arbetssituation

Transkript:

Logikprogrammering KŠnnetecken och fšrutsšttningar Prolog FšrtjŠnster BegrŠnsningar Praktiska tillšmpningar KŠnnetecken Hšg abstraktionsnivœ Deklarativt, ej proceduralt Specificerar šnskade resultat snarare Šn hur de ska produceras Bygger pœ formell logik, relationer 1 2 Relationer MŒnga-till-mŒnga relation Jfr avbildningar, mœnga-till-en Ð AlltsŒ ett všrde x i S till ett y i T Men relationer, x till flera y i T Exempel pœ relation S=[1,2,3], T=[4,5,6], rel=ó<ó 1<4, 1<5, 1<6 2<4, 2<5, 2<6 3<4, 3<5, 3<6 3 4 FšrfrŒgningar r R(a,b) sann? Fšr vilka y Šr R(a,y) sann? Fšr vilka x Šr R(x,b) sann? Fšr vilka x,y Šr R(x,y) sann? Varianter Unary (unšr) R(x) Binary (binšr) R(x,y) Ternary (ternšr) R(x,y,z) FlervŠrda 6

Exempel Logik och logikprogrammering unšr: mamma(lena) binšr: fšršlder(lena,victor) ternšr (trevšrd): tregenerationer(kjell,lena,victor) - MŒnga relationer som enkelt ÒrymsÓ inom logiken kan inte implementeras, logikprogrammering klarar inte att uttrycka den matematiska logiken i dess fulla kraft. - Horn-klausuler Šr lšsningen 9 Hornklausuler (forts.) A 0 if A 1 and... and A n Varje A i har formen R i (...) dšr R i Šr namnet pœ en relation Betyder att om A 1...A n Šr sann sœ Šr A 0 sann Om nœgon A i Šr falsk innebšr det ej att A 0 Šr falsk Specialfall nšr n = 0 A 0 Ð A 0 Šr ovillkorligen sann Logikprogram Ett logikprogram bestœr av en samling Hornklausuler BerŠkningen av ett program bestœr i att testa ett givet antagande/mœl (A) Ð Om vi kan hšrleda ur programmet att A Šr sann, sšger vi att A lyckas (succeeds), annars misslyckas vi (fail) Ð Om vi misslyckas innebšr det inte att A Šr falsk Hur hšrledningen gœr till exakt Šr ej definierat i generell logikprogrammering Resolution Resolution Šr ett sštt att hšrleda svar ur ett logikprogram (resolution=upplšsning; sšnderdelning) Hornklausuler och resolution Ð Gšr logikprogram implementerbara Ð TillŒter implementationen att bli tšmligen effektiv Resolution HŠrled A Det existerar en klausul A 0 som matchar A => A Šr sann Det existerar en klausul A 0 if A 1 and... and A n sœdan att A 0 matchar A => Ð fortsštter hšrleda A 1 till A n som separata delmœl Ð Om alla lyckas drar vi slutsatsen att A Šr sann Ð Om nœgot A i misslyckas mœste vi backa (backtrack), d v s ge upp den klausulen och testa nšsta Om inga klausuler matchar A har vi misslyckats

Exempel Man gšr en fšrfrœgan: kvinna(lena) I databasen hittar vi: mamma(lena) kvinna(x) ( mamma(x) Backtracking Relationer i logiksprœk har samma betydelse som funktioner och procedurer i andra sprœk Men det Šr backtracking som ger logiksprœk deras stora uttrycksfullhet och kraftfullhet Ð Men det kostar i tid och minneskrav Exempel TŠnk fšljande mœl: male(x) parent(x, lotta) Man hittar: male(mikael) och gœr vidare fšr att hitta parent(mikael, lotta) Om detta inte lyckas blir backtracking aktuellt, och ny matchning med l (X) sškes osv Prolog Prolog utvecklades gradvis under 70- talet och ett flertal dialekter uppstod Ð Numera Šr Edinburgh-dialekten accepterad som standard Ett Prologprogram bestœr av en samling Hornklausuler som definierar relationer VŠrden Prologs všrden Šr tal, atomer och strukturer Atomer Ð Atomer har inga andra egenskaper Šn att de gœr att skilja frœn varandra. Ex ršd, lisa, kroton... Strukturer Ð Strukturer Šr taggade tuppler, t ex data(2000,jan,1) Ð Taggen anvšnds fšr att skilja strukturer frœn varandra, som representerar olika data men har samma všrden, t ex point(2,3), rational(2,3). Listor och stršngar Listor Ð En delmšngd till strukturer dšr [] representerar tomma listan och '.' Šr strukturtaggen: [1,2,3,4] =.(1,.(2,.(3,.(4,[])))) [x xs] =.(x,xs) StrŠngar Ð Listor av heltal Ð Varje bokstav representeras av heltal, "Olof" = [79, 108, 111, 102]

Typer Prolog Šr otypat Tal, atomer och strukturer kan anvšndas om varandra De kan jšmfšras med varandra m h a Ò=Ò Ð ger ÒfalseÓ om de Šr inte Šr lika Endast aritmetiska operationer Šr typade Termer och variabler Term Ð En term Šr en variabel, en numerisk literal, en atom eller strukturaggregat Ð Termer Šr argument till relationerna R(T 1,...,T n ) dšr T 1... T n Šr termer Variabler Ð Prologs variabler betecknar ett fixt men okšnt všrde Ð Bšrjar alltid pœ stor bokstav fšr att skiljas frœn strukturer och atomer. Ð En variabel deklareras implicit genom att dess fšrekomst i klausuler och dess ršckvidd Šr just Klausuler och relationer Klausuler A 0 :- A 1, A 2,..., A n. Ð ":-" stœr fšr if och "," stœr fšr and Ð A 0 matchar ett pœstœende A om det existerar en substitution av termer fšr variabler sœdan att A 0 och A blir lika Ð age(p,y) matchar age("david",42) under {P = "David",Y = 42} age(p,y) matchar age("olof",a) under {P = "Olof", Y = A} RŠckvidden fšr varje relation Šr hela programmet Exempel Ð star(sun). star(sirius). star(betelgeuse).?- star(sun). Yes?- star(jupiter). False orbits(mercury,sun). orbits(venus,sun). Exempel (forts.)...?- orbits(venus,sun). Yes?- orbits(b,sun). B = mercury B = venus

Exempel (forts.) Exempel (forts.)... planet(b) :- orbit(b,sun).?- planet(venus). Yes?- planet(b). B = mercury B = venus... satellite(b) :- orbits(b,p),planet(p). solar(sun). solar(p) :- planet(p). solar(b) :- satellite(b). solar(sun). solar(moon). Exempel (forts.)... solar(b). B = sun, mercury, venus,...,moon... FrŒga: existerar det instanser sœ att frœgan blir sann Klausuler: A 0 Šr sant fšr alla variabler A 1...A n som Šr sanna Rekursiva klausuler: member(x,[x Ys]). member(x,[y Ys]) :- member(x,ys). ÓSluten všrldó-antagande Prolog utgœr frœn att alla relevanta fakta finns i programmet Ett pœstœende misslyckas om vi inte kan hšrleda att det Šr sant Det innebšr inte att det Šr falskt utan kan ocksœ innebšra att det Šr okšnt Detta innebšr att Prolog inte skiljer pœ falsk och okšnt Det medfšr att negationen av okšnt blir t Kontroll I princip ska den ordning i vilken resolutionen gšrs inte spela nœgon roll fšr resultatet, endast ordningen pœ resultaten I Prolog Šr ordningen fšr resolutionen av avgšrande betydelse dels fšr att šverhuvudtaget fœ resultat men Šven fšr effektiviteten

Exempel neighbor(a,b) :- neighbor(b,a). neighbor(a,b) :- planet(a),orbits(b,a). Om det icke rekursiva fallet anvšnds fšrst hela tiden uppstœr inga problem Om det rekursiva fallet anvšnds fšrst uppstœr ošndlig rekursion Ordningen fšr resolutionen Beteendet hos Prologprogram beror pœ ordningen fšr resolutionen I Prolog testas hšgerledet frœn všnster till hšger i klausulerna och om det finns flera klausuler fšr en relation testas de i ordning frœn fšrsta till sista Det gšr att Prologprogram Šr deterministiska, Šven ordningen fšr resultaten Šr bestšmd Ett sštt fšr programmeraren att styra ordningen Šr med cut (!) som skšr av mšjligheten till backtracking Det kan ge effektivare program, men ocksœ fšršndra betydelsen, anvšnds med fšrstœnd FšrtjŠnster BegrŠnsningar Hšg abstraktionsnivœ Logik - en bra grund fšr všlstrukturerade program, leder till fšrre fel i programmen och dšrmed mindre underhœllsbehov Ger stšd fšr parallellitet Kompakta program LŒngsamt Risk fšr ošndliga loopar Man kan inte vara sšker pœ att nœgot Šr falskt Negationsproblemet Praktiska tillšmpningar RDBMS (Relational Database Management Systems) Expertsystem Naturligt sprœk Utbildning