Modelleren en Programmeren voor KI

Maat: px
Weergave met pagina beginnen:

Download "Modelleren en Programmeren voor KI"

Transcriptie

1 Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver Tomas Klos

2 Het SAT probleem

3 Parvulae Logicales: Propositielogica, Hoofdstuk 6 (Semantiek), p. 62:

4 Het SAT probleem Ik geef je een propositielogische formule F, jij moet zeggen of hij vervulbaar (SATisfiable) is. Hoe kun je daar achter komen? Hoe kun je dat zien aan de waarheidstabel van F? Is er (tenminste) één rij in de waarheidstabel van F, waar een 1 staat onder het hoofdvoegteken van F? Bijvoorbeeld: is deze formule vervulbaar? (( (p (q r)) s) t)

5 Waarom is SAT belangrijk?

6 Waarom is SAT belangrijk? Het SAT probleem modelleert vele praktijkproblemen Vrachtwagens routeren Treinroostering Productieplanning Zalenroostering Order picking in magazijnen Onderhoudsactiviteiten in werkplaatsen plannen Algemeen: Dit zijn allemaal (NP-)moelijke problemen Oplossingen zijn toekenningen van waarden aan variabelen

7 Aanpak (moeilijke) problemen Modelleren als propositielogische formule SAT solver ontwerpen en programmeren Is de formule vervulbaar (SATisfiable)? Ja, vervulbaar: zo n valuatie is een oplossing voor het probleem Nee, niet vervulbaar: er is geen oplossing Het SAT probleem is NP-compleet (d.w.z. hoogstwaarschijnlijk heel moeilijk: we weten niks wezenlijk beters dan alle mogelijkheden proberen)

8 Assignment problemen Simpel voorbeeld: Graafkleuren: Ken (precies) 1 van 2 kleuren uit {R, B} toe aan elke knoop Kanten zijn `constraints : verbonden knopen moeten verschillende kleur krijgen (Dit is triviaal, maar denk aan het algemene geval.) Q: Hoe kunnen we dit probleem modelleren? A: We gebruiken binaire beslissingsvariabelen Constraints zijn vergelijkingen (formules) Logische connectieven zijn de operatoren in die vergelijkingen Een oplossing is een vervullende toekenning ( model ) 1 2 3

9 Assignment probleem model Modelleren: Welke variabelen gebruiken we? x nc = 1 desda knoop n kleur c heeft Dus: welke variabelen? x 1R, x 1B, x 2R, x 2B, x 3R, x 3B 2 3 1

10 Assignment probleem model Wat zijn de constraints? Elke knoop krijgt een kleur ( r of b ) Geen knoop krijgt meerdere kleuren (niet r en b dus) Verbonden knopen krijgen verschillende kleuren Welke constraints? x 1R x 1B, x 2R x 2B, x 3R x 3B, x 1R x 1B, x 2R x 2B, x 3R x 3B, x 1R x 2R, x 1B x 2B, x 2R x 3R, x 2B x 3B, x 3R x 1R, x 3B x 1B 2 3 1

11 Generaliseren In zaalroostering, bijvoorbeeld: x vzhd = 1 desda vak v is geroosterd in zaal z tijdens uur h van dag d Voorbeeld van constraint: x KI1V13009_KBG-ATLAS_1_V x KI1V13009_KBG-ATLAS_3_V x KI1V13009_KBG-ATLAS_5_V Q: Hoe ziet een oplossing eruit? A: Een toekenning van 0 of 1 aan alle variabelen, die alle constraints vervult.

12 Sudoku Welke variabelen? x ijk = 1 desda in rij i en kolom j getal k staat x 111, x 112, x 113, x 114,..., X 121, x 122, x 123, x 124,...,... x 991, x 992, x 993,..., x 999. Hoeveel zijn dat er? 9 3 = 729.

13 Sudoku constraints Elk 3x3 blok bevat elk getal: x111 x121 x131 x211 x221 x231 x311 x321 x331 x112 x122 x132 x212 x222 x232 x312 x322 x etc. (ook voor de andere 3x3 blokken)

14 Sudoku constraints Elk getal één keer in een blok: (x111 x112) (x111 x113) (x111 x114)... (x112 x113) (x112 x114)... (x331 x332)... (x338 x339) etc. voor de andere 3x3 blokken

15 Sudoku constraints Elk getal in elke rij: x111 x x112 x x211 x x212 x x918 x x919 x etc. (voor de overige rijen, en ook voor de kolommen)

16 Sudoku constraints Dit worden 8829 disjuncties: aire binaire De gehele formule is de conjunctie van al deze disjuncties Wat ontbreekt er nou nog? x112 x133 x159 x196 x x986

17 En nou... oplossen! Nog een keer: hoe bepaal je of een formule vervulbaar is? Onze aanpak: Lees de formule in ( parse ) Verzamel alle variabelen Beschouw de variabelen achter elkaar: x1, x2, x3,... maak ze achtereenvolgens True en als nodig False. Check of de formule waar of onwaar kan zijn Vind je een valuatie die de formule waar maakt? SAT + valuatie Vind je niet zo n valuatie? UNSAT

18 Parsen? Terug naar Logica voor KI

19

20

21 Voorbeeld van een formule Stel dat je dit inleest: (((a\/b)/\(-b\/c))/\-a) Wat is het hoofdvoegwoord? Conjunctie, met deze conjuncten (ook formules!) ((a b) ( b c)) en a Wat weet je dus over een valuatie die deze formule waar maakt (als hij bestaat?) Als a True is kan deze formule niet waar zijn! Zo gaan we het doen: kan een formule nog waar zijn, gegeven de toekenningen die ik al heb gedaan?

22 Voorbeeld van een formule (((a\/b)/\(-b\/c))/\-a) Hoe bepaal je de waarheidswaarde?

23 Voorbeeld van een formule F (((a\/b)/\(-b\/c))/\-a) Hoe bepaal je de waarheidswaarde? V(F) = min(v(((a b) ( b c))), V( a)) De valuatiefunctie is recursief! We weten niet wát voor formules dit zijn, maar wel dát het formules zijn. Welke programmeerconcept gebruiken we dus hiervoor?

24 Interface Formule public interface Formule { // onder andere bijvoorbeeld: int MethodeA(String s); string ToString(); } Schrijf code voor deze methoden in de klassen die deze interface implementeren, bijvoorbeeld: public class Disjunctie : Formule { public MethodeA(String s) { //code voor deze methode hier. } }

25 Handig, zo n interface! Dan kun je in je Main programma dit doen: static Valuatie Vervulbaar(Formule formule) { // bepaal of formule vervulbaar is, zonder dat je weet // welk specifiek type formule dit is! // (negatie, conjunctie,...) }

Practicumopgave 3: SAT-solver

Practicumopgave 3: SAT-solver Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel

Nadere informatie

Mededelingen. TI1300: Redeneren en Logica. Metavariabelen Logica, p Minder connectieven nodig

Mededelingen. TI1300: Redeneren en Logica. Metavariabelen Logica, p Minder connectieven nodig Mededelingen TI1300: Redeneren en Logica College 5: Semantiek van de Propositielogica Tomas Klos Algoritmiek Groep Tip: Als ik je vraag de recursieve definitie van een functie over PROP op te schrijven,

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

Nadere informatie

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven Mededelingen TI1300: Redeneren en Logica College 4: Waarheidstafels, Redeneringen, Syntaxis van PROP Tomas Klos Algoritmiek Groep Voor de Fibonacci getallen geldt f 0 = f 1 = 1 (niet 0) Practicum 1 Practicum

Nadere informatie

Logica voor Informatica

Logica voor Informatica Logica voor Informatica 10 Predikatenlogica Wouter Swierstra University of Utrecht 1 Vorige keer Syntax van predikatenlogica Alfabet Termen Welgevormde formulas (wff) 2 Alfabet van de predikatenlogica

Nadere informatie

Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani

Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani Logica voor Informatica Propositielogica Normaalvormen en Semantische tableaux Mehdi Dastani m.m.dastani@uu.nl Intelligent Systems Utrecht University Literals Een literal is een propositieletter, of de

Nadere informatie

Inleiding logica Inleveropgave 3

Inleiding logica Inleveropgave 3 Inleiding logica Inleveropgave 3 Lientje Maas 30 september 2013 Ik (Rijk) heb verbeteringen in rood vermeld. Deze verbeteringen meegenomen zijn dit correcte uitwerkingen van de derde inleveropgaven. 1

Nadere informatie

Propositielogica. Evert De Nolf Delphine Draelants Kirsten Storms Evelien Weyn. 24 augustus Universiteit Antwerpen

Propositielogica. Evert De Nolf Delphine Draelants Kirsten Storms Evelien Weyn. 24 augustus Universiteit Antwerpen Propositielogica Evert De Nolf Delphine Draelants Kirsten Storms Evelien Weyn Universiteit Antwerpen 24 augustus 2006 Propositionele connectoren Negatie Conjunctie Disjunctie Implicatie Equivalentie Propositionele

Nadere informatie

De Resolutiemethode (Logica, hoofdstuk 15) Robinson (1965) TI1300 Redeneren en Logica

De Resolutiemethode (Logica, hoofdstuk 15) Robinson (1965) TI1300 Redeneren en Logica De Resolutiemethode (Logica, hoofdstuk 15) Robinson (1965) TI1300 Redeneren en Logica College 7: Resolutie Tomas Klos Algoritmiek Groep De Resolutiemethode De resolutiemethode is een methode waarmee je

Nadere informatie

Logic for Computer Science

Logic for Computer Science Logic for Computer Science 06 Normaalvormen en semantische tableaux Wouter Swierstra University of Utrecht 1 Vorige keer Oneindige verzamelingen 2 Vandaag Wanneer zijn twee formules hetzelfde? Zijn er

Nadere informatie

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785) Tegenvoorbeeld TI1300: Redeneren en Logica College 3: Bewijstechnieken & Propositielogica Tomas Klos Definitie (Tegenvoorbeeld) Een situatie waarin alle premissen waar zijn, maar de conclusie niet Algoritmiek

Nadere informatie

Maak automatisch een geschikte configuratie van een softwaresysteem;

Maak automatisch een geschikte configuratie van een softwaresysteem; Joost Vennekens joost.vennekens@kuleuven.be Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is

Nadere informatie

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2 Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2 2.1 Geef de volgende zinnen weer in propositionele notatie: i Als de bus niet komt, komen de tram en de trein We voeren de volgende

Nadere informatie

Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University

Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University Logica voor Informatica Propositielogica Syntax & Semantiek Mehdi Dastani m.m.dastani@uu.nl Intelligent Systems Utrecht University Wat is Logica? Afleiden van conclusies uit aannames Jan Sara Petra Schuldig

Nadere informatie

Caleidoscoop: Logica

Caleidoscoop: Logica Caleidoscoop: Logica Non impeditus ab ulla scientia K. P. Hart Faculteit EWI TU Delft Delft, 3 October, 2007 Overzicht 1 2 Negaties We gaan rekenen met proposities (beweringen). Bedenker: George Boole

Nadere informatie

Elfde college complexiteit. 23 april NP-volledigheid III

Elfde college complexiteit. 23 april NP-volledigheid III college 11 Elfde college complexiteit 23 april 2019 NP-volledigheid III 1 TSP Als voorbeeld bekijken we het Travelling Salesman/person Problem, ofwel het Handelsreizigersprobleem TSP. Hiervoor geldt: TSP

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in

Nadere informatie

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie Kennisrepresentatie & Redeneren Piter Dykstra Instituut voor Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 30 april 2007 INLEIDING Kennisrepresentatie & Redeneren Week1: Introductie

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28 Vandaag Vraag Voor welke problemen

Nadere informatie

Stelling. SAT is NP-compleet.

Stelling. SAT is NP-compleet. Het bewijs van de stelling van Cook Levin zoals gegeven in het boek van Sipser gebruikt niet-deterministische turing machines. Het is inderdaad mogelijk de klasse NP op een alternatieve wijze te definiëren

Nadere informatie

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013 Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag Januari 20 Opgave. Python Gegeven is de volgende (slechte) Python code:. def t(x): 2. def p(y):. return x*y

Nadere informatie

Formeel Denken 2014 Uitwerkingen Tentamen

Formeel Denken 2014 Uitwerkingen Tentamen Formeel Denken 2014 Uitwerkingen Tentamen (29/01/15) 1. Benader de betekenis van de volgende Nederlandse zin zo goed mogelijk (6 punten) door een formule van de propositielogica: Als het regent word ik

Nadere informatie

Hoofdstuk 3. behandeld. In de paragrafen 3.1 en 3.2 worden de noties valuatie, model en

Hoofdstuk 3. behandeld. In de paragrafen 3.1 en 3.2 worden de noties valuatie, model en Hoofdstuk 3 Semantiek van de Propositielogica In dit hoofdstuk wordt de semantiek (betekenistheorie) van de propositielogica behandeld. In de paragrafen 3.1 en 3.2 worden de noties valuatie, model en logisch

Nadere informatie

NP-Volledigheid. Wil zo snel mogelijke algoritmes om problemen op te lossen. De looptijd is polynomiaal: O n k - dat is heel erg mooi

NP-Volledigheid. Wil zo snel mogelijke algoritmes om problemen op te lossen. De looptijd is polynomiaal: O n k - dat is heel erg mooi NP-Volledigheid Wil zo snel mogelijke algoritmes om problemen op te lossen Gezien: selectie [O(n)], DFS [O(n + m)], MaxFlow [O nm n + m ], MST [O(n + m)], etc De looptijd is polynomiaal: O n k - dat is

Nadere informatie

Inleiding Wiskundige Logica

Inleiding Wiskundige Logica Inleiding Wiskundige Logica Yde Venema 2017/2018 c YV 2018 Institute for Logic, Language and Computation, University of Amsterdam, Science Park 904, NL 1098XH Amsterdam E-mail: yvenema@uvanl Voorwoord

Nadere informatie

Semantiek 1 college 10. Jan Koster

Semantiek 1 college 10. Jan Koster Semantiek 1 college 10 Jan Koster 1 Vandaag Vorige keer: conceptuele structuur en semantische decompositie Vandaag: inleiding in de formele semantiek Gebruikt notaties uit formele logica plus de daar gehanteerde

Nadere informatie

Inhoud leereenheid 1. Inleiding. Introductie 13. Leerkern 13. 1.1 Wat is logica? 13 1.2 Logica en informatica 13

Inhoud leereenheid 1. Inleiding. Introductie 13. Leerkern 13. 1.1 Wat is logica? 13 1.2 Logica en informatica 13 Inhoud leereenheid 1 Inleiding Introductie 13 Leerkern 13 1.1 Wat is logica? 13 1.2 Logica en informatica 13 12 Leereenheid 1 Inleiding I N T R O D U C T I E Studeeraanwijzing Deze leereenheid is een leesleereenheid.

Nadere informatie

Propositielogica Het maken van een waarheidstabel

Propositielogica Het maken van een waarheidstabel Informatiekunde naam datum Propositielogica Het maken van een waarheidstabel Eindhoven, 4 juni 2011 De propositielogica Zoekopdrachten met de operatoren AND, OR en zijn zogenaamde Booleaanse expressies.

Nadere informatie

Samenvatting. TI1306 Redeneren & Logica Review Guide 2014 Door: David Alderliesten. Disclaimer

Samenvatting. TI1306 Redeneren & Logica Review Guide 2014 Door: David Alderliesten. Disclaimer Samenvatting TI1306 Redeneren & Logica Review Guide 2014 Door: David Alderliesten Disclaimer De informatie in dit document is afkomstig van derden. W.I.S.V. Christiaan Huygens betracht de grootst mogelijke

Nadere informatie

Logica Les 1 Definities en waarheidstabellen. (Deze les sluit aan bij les 1 van de syllabus Logica WD_online)

Logica Les 1 Definities en waarheidstabellen. (Deze les sluit aan bij les 1 van de syllabus Logica WD_online) Logica Les 1 Definities en waarheidstabellen (Deze les sluit aan bij les 1 van de syllabus Logica WD_online) Definities Een propositie is een bewering die waar of onwaar is (er is geen derde mogelijkheid).

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz Foreach Foreach Speciale versie van for om iets voor alle elementen

Nadere informatie

Propositielogica, waarheid en classificeren

Propositielogica, waarheid en classificeren Logica in actie H O O F D S T U K 2 Propositielogica, waarheid en classificeren We hebben al gezien dat voor een logicus het verhevene heel dicht kan liggen bij het alledaagse. Misschien beter gezegd:

Nadere informatie

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt

Nadere informatie

Voorbeeld. TI1300: Redeneren en Logica. Skolemnormaalvorm. Voorbeeld. Wat is de Skolemnormaalvorm van. College 16: Resolutie en Prolog.

Voorbeeld. TI1300: Redeneren en Logica. Skolemnormaalvorm. Voorbeeld. Wat is de Skolemnormaalvorm van. College 16: Resolutie en Prolog. Wat is de Skolemnormaalvorm van TI1300: Redeneren en Logica College 16: Resolutie en Prolog Tomas Klos Algoritmiek Groep x y u v w zm(x,y,u,v,w,z)? x y u v w zm(x,y,u,v,w,z) y u v w zm(a,y,u,v,w,z) y v

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

Tentamen IN1305-I Fundamentele Informatica 1, deel I: Logica

Tentamen IN1305-I Fundamentele Informatica 1, deel I: Logica TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Tentamen IN1305-I Fundamentele Informatica 1, deel I: Logica 27 oktober 2008, 9.00 12.00 uur Dit tentamen bestaat uit 5

Nadere informatie

Tentamen TI1300 en IN1305-A (Redeneren en) Logica

Tentamen TI1300 en IN1305-A (Redeneren en) Logica TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Tentamen TI1300 en IN1305-A (Redeneren en) Logica 21 Januari 2011, 8.30 11.30 uur LEES DEZE OPMERKINGEN AANDACHTIG DOOR

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Meer oefenen. TI1300: Redeneren en Logica. Vertalen. Meerdere wegen leiden naar Rome

Meer oefenen. TI1300: Redeneren en Logica. Vertalen. Meerdere wegen leiden naar Rome Meer oefenen TI1300: Redeneren en Logica College 13: Synta en Semantiek van de Predicatenlogica Tomas Klos Algoritmiek Groep Vertaal: Niet alle paarden zijn bruin Geef ook je vertaalsleutel (welke predicaten,

Nadere informatie

Formeel Denken 2013 Uitwerkingen Tentamen

Formeel Denken 2013 Uitwerkingen Tentamen Formeel Denken 201 Uitwerkingen Tentamen (29/01/1) 1. Benader de betekenis van de volgende Nederlandse zin zo goed mogelijk (6 punten) door een formule van de propositielogica: Het is koud, maar er ligt

Nadere informatie

Overerving & Polymorfisme

Overerving & Polymorfisme Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

Logica voor AI. Bewijstheorie en natuurlijke deductie. Antje Rumberg. 28 november Kripke Semantiek.

Logica voor AI. Bewijstheorie en natuurlijke deductie. Antje Rumberg. 28 november Kripke Semantiek. Logica voor AI en natuurlijke deductie Antje Rumberg AntjeRumberg@philuunl 28 november 2012 1 De taal L m van de modale propositielogica ::= p Blokje en ruitje : het is noodzakelijk dat : het is mogelijk

Nadere informatie

Propositielogica. Leereenheid 4

Propositielogica. Leereenheid 4 Leereenheid 4 Propositielogica I N T R O D U C T I E Logica Van oudsher is de logica de leer van het correct redeneren. Nog steeds is het herkennen van correcte en incorrecte redeneringen een belangrijke

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));

Nadere informatie

Semantiek 1 college 4. Jan Koster

Semantiek 1 college 4. Jan Koster Semantiek 1 college 4 Jan Koster 1 Uitgangspunt sinds vorige week Semantiek is representationeel (en niet referentieel), gebaseerd op interpretaties van sprekers en hoorders Geen scherpe scheiding tussen

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Logica voor AI. Inleiding modale logica en Kripke semantiek. Antje Rumberg. 14 november 2012

Logica voor AI. Inleiding modale logica en Kripke semantiek. Antje Rumberg. 14 november 2012 Logica voor AI Inleiding modale logica en Kripke semantiek Antje Rumberg Antje.Rumberg@phil.uu.nl 14 november 2012 1 Logica voor AI Deel 1: Modale logica semantiek en syntax van verschillende modale logica

Nadere informatie

NAAM: Programmeren 1 Examen 29/08/2012

NAAM: Programmeren 1 Examen 29/08/2012 Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je

Nadere informatie

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak); Vaknaam: Programmeren I (Java) - Tentamen Module: 2 Datum/Tijd: 17 mrt 2015 / 18.30 20:30 Richting: ICT Code: IC011 Docent: E. Lieuw Boeken en aantekeningen NIET toegestaan. Kladpapier is wel toegestaan.

Nadere informatie

Tentamentips. Tomas Klos. 14 december 2010

Tentamentips. Tomas Klos. 14 december 2010 Tentamentips Tomas Klos 14 december 010 Samenvatting In dit document vind je een aantal tentamen tips. Het gaat om fouten die ik op tentamens veel gemaakt zie worden, en die ik je liever niet zie maken.

Nadere informatie

Wiskundige Analyse I. Hoofdstuk 1. Vraag 1.1 Het beginvoorwaardenprobleem. x 2 y + xy + x 2 y = 0, y(0+) = 1, y (0+) = 0. bezit een unieke oplossing.

Wiskundige Analyse I. Hoofdstuk 1. Vraag 1.1 Het beginvoorwaardenprobleem. x 2 y + xy + x 2 y = 0, y(0+) = 1, y (0+) = 0. bezit een unieke oplossing. Hoofdstuk 1 Wiskundige Analyse I Vraag 1.1 Het beginvoordenprobleem x 2 y + xy + y = 0, y(0+) = 1, y (0+) = 0 bezit een unieke oplossing. vals Vraag 1.2 Het beginvoordenprobleem x 2 y + xy + x 2 y = 0,

Nadere informatie

Logica voor AI. Responsiecollege. Antje Rumberg. 12 december Kripke Semantiek. Geldigheid. De bereikbaarheidsrelatie

Logica voor AI. Responsiecollege. Antje Rumberg. 12 december Kripke Semantiek. Geldigheid. De bereikbaarheidsrelatie Logica voor AI Responsiecollege Antje Rumberg Antje.Rumberg@phil.uu.nl 12 december 2012 1 De taal L m van de modale propositielogica ϕ ::= p ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ Blokje en ruitje ϕ: het is noodzakelijk

Nadere informatie

Logica voor AI. Bisimulatie en niet-karakteriseerbaarheid. Antje Rumberg. 21 november Correspondentie.

Logica voor AI. Bisimulatie en niet-karakteriseerbaarheid. Antje Rumberg. 21 november Correspondentie. Logica voor AI en niet-karakteriseerbaarheid Antje Rumberg Antje.Rumberg@phil.uu.nl 21 november 2012 1 Kripke Semantiek De taal L m van de modale propositielogica ϕ ::= p ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ Blokje en

Nadere informatie

Proeftentamen Digitale technieken

Proeftentamen Digitale technieken Proeftentamen Digitale technieken André Deutz October 17, 2007 De opgaven kunnen uiteraard in willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

Opmerking. TI1300 Redeneren en Logica. Met voorbeelden kun je niks bewijzen. Directe en indirecte bewijzen

Opmerking. TI1300 Redeneren en Logica. Met voorbeelden kun je niks bewijzen. Directe en indirecte bewijzen Opmerking TI1300 Redeneren en Logica College 2: Bewijstechnieken Tomas Klos Algoritmiek Groep Voor alle duidelijkheid: Het is verre van triviaal om definities te leren hanteren, beweringen op te lossen,

Nadere informatie

Toelichting bij geselecteerde opdrachten uit Betekenis en Taalstructuur

Toelichting bij geselecteerde opdrachten uit Betekenis en Taalstructuur Toelichting bij geselecteerde opdrachten uit Betekenis en Taalstructuur Hoofdstuk 2, tot en met pagina 41. Maak opdrachten 1,2,3,4,5,7,9,10,11,15,16 *1 Met "welgevormd" wordt bedoeld dat de formule toegestaan

Nadere informatie

Hoofdstuk 4. In dit hoofdstuk wordt een aantal uiteenlopende eigenschappen van de propositielogica

Hoofdstuk 4. In dit hoofdstuk wordt een aantal uiteenlopende eigenschappen van de propositielogica Hoofdstuk 4 Stellingen over de Propositielogica In dit hoofdstuk wordt een aantal uiteenlopende eigenschappen van de propositielogica behandeld. In x4.1 wordt het begrip meta-stelling gentroduceerd en

Nadere informatie

Wie A zegt moet B zeggen

Wie A zegt moet B zeggen Logica in actie H O O F D S T U K 3 Wie A zegt moet B zeggen Logici ontwerpen niet alleen systemen om bestaande vormen van redeneren te analyseren, ze bestuderen ook de eigenschappen van die systemen op

Nadere informatie

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn. Tweede deeltentamen Gameprogrammeren Vrijdag 18 oktober 2013, 11.00-13.00 uur Naam: Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 10 punten op, opgave 2 levert 6 punten op, en opgave

Nadere informatie

Erdős discrepantieprobleem gaat over patronen in een oneindige rij bestaande uit niets anders dan de getallen +1 en 1, bijvoorbeeld

Erdős discrepantieprobleem gaat over patronen in een oneindige rij bestaande uit niets anders dan de getallen +1 en 1, bijvoorbeeld Paul erdős Aflevering 11 In februari van dit jaar werd een speciaal geval van Erdős discrepantievermoeden bewezen. Voor het immense rekenwerk werd een computer ingezet. Het computerbewijs is zó lang, dat

Nadere informatie

Propositionele logica

Propositionele logica Logic is the beginning of wisdom, not the end. Captain Spock, Star Trek VI (1991) Hoofdstuk 1 ropositionele logica 1.1 Uitspraken Het begrip uitspraak. We geven hier geen definitie van het begrip uitspraak

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Processoren. Marc Seutter & David N. Jansen 12 November 2013

Processoren. Marc Seutter & David N. Jansen 12 November 2013 Processoren Marc Seutter & David N. Jansen 12 November 2013 Leerdoel opbouw van de hardware in een computer je construeert een (eenvoudige) processor je schrijft een (kort) assembly-programma je kunt uitleggen:

Nadere informatie

Credit cards, computationele complexiteit en consistentie uitspraken

Credit cards, computationele complexiteit en consistentie uitspraken Credit cards, computationele complexiteit en consistentie uitspraken Joost J. Joosten 14 december 2005 Praag en bier Sinds enkele maanden werk ik als post-doc aan de Czech Academy of Sciences in Praag.

Nadere informatie

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf

Nadere informatie

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

IMP Uitwerking week 13

IMP Uitwerking week 13 IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het

Nadere informatie

Negende college complexiteit. 9 april NP-volledigheid I: introductie

Negende college complexiteit. 9 april NP-volledigheid I: introductie College 9 Negende college complexiteit 9 april 2019 NP-volledigheid I: introductie 1 Handelbaar/onhandelbaar -1- N 10 50 100 300 1000 log 2 N 3 5 6 8 9 5N 50 250 500 1500 5000 N log 2 N 33 282 665 2469

Nadere informatie

Hoorcollege Logica. Hans-Dieter A. Hiep

Hoorcollege Logica. Hans-Dieter A. Hiep Hoorcollege Logica Hans-Dieter A. Hiep Agenda 1. Horn-formules 2. Vervulbaarheidsprobleem Validiteit en vervulbaarheid Gegeven een formule φ in de (klassieke) propositielogica. Definitie φ is valide voor

Nadere informatie

Boommethode. TI1300: Redeneren en Logica. Oefenen, wat anders? Aanvullende regels (Logica, tabel 11.1, p. 159) A (B C),A C = B

Boommethode. TI1300: Redeneren en Logica. Oefenen, wat anders? Aanvullende regels (Logica, tabel 11.1, p. 159) A (B C),A C = B Boommethode Is deze redenering logisch geldig? TI1300: Redeneren en Logica College 15: Boommethode en Resolutie Tomas Klos Algoritmiek Groep A (B C),A C = B oftewel: is deze verzameling vervulbaar? { A

Nadere informatie

Opdrachten Tarski s World

Opdrachten Tarski s World Opdrachten Tarski s World Logika thema 4 13 april 2004 1 Propositielogika 1.1 Atomaire proposities in Tarski s world Open de wereld, wittgens.sen, en het bestand met beweringen, wittgens.sen 1. Ga van

Nadere informatie

Inhoud casus blok 4. Analyse van een woordspel. Introductie 7

Inhoud casus blok 4. Analyse van een woordspel. Introductie 7 Inhoud casus blok 4 Analyse van een woordspel Introductie 7 1 Iets over het spel... en de knikkers 7 2 Algemene opzet van het computerprogramma 8 3 De delen van het computerprogramma 9 4 Conclusies 13

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2013 Organisatie Docenten Jeroen Bransen Michael Moortgat Docenten Jeroen Bransen Imperatief programmeren (Java) Tot de kerst (ongeveer) Michael Moortgat

Nadere informatie

Technology, Innovation & Society Delft

Technology, Innovation & Society Delft Technology, Innovation & Society Delft VOORBLAD SCHRIFTELIJKE TOETSEN OPLEIDING TOETSCODE GROEP : ELEKTROTECHNIEK : GESPRG-SC1 : EP11, EP12 TOETSDATUM : 22-01-2015 TIJD : 13.00u-14.30u AANTAL PAGINA S

Nadere informatie

LogEX: gebruikershandleiding

LogEX: gebruikershandleiding LogEX: gebruikershandleiding ALGEMENE BESCHRIJVING Met de LogEX-applicatie kunt u drie soorten opgaven oefenen: het herschrijven van een logische expressie naar de disjunctieve normaalvorm In elke volgende

Nadere informatie

Tweede deeltentamen Gameprogrammeren Vrijdag 17 oktober 2014, uur

Tweede deeltentamen Gameprogrammeren Vrijdag 17 oktober 2014, uur Naam: Tweede deeltentamen Gameprogrammeren Vrijdag 17 oktober 2014, 8.30-10.30 uur Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 10 punten op, opgave 2 levert 10 punten op, en opgave

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

College Logica voor CKI

College Logica voor CKI College Logica voor CKI Albert Visser Department of Philosophy, Faculty Humanities, Utrecht University 15 oktober, 2012 1 Overview 2 Overview 2 Overview 2 Overview 3 Syntaxis De eerste ronde: Constanten:

Nadere informatie

Universiteit Utrecht Departement Informatica

Universiteit Utrecht Departement Informatica Universiteit Utrecht Departement Informatica Uitwerking Tussentoets Optimalisering 20 december 206 Opgave. Beschouw het volgende lineair programmeringsprobleem: (P) Minimaliseer z = x 2x 2 + x 3 2x 4 o.v.

Nadere informatie

Honours projecten BSc Informatica: twee voorstellen

Honours projecten BSc Informatica: twee voorstellen Honours projecten BSc Informatica: twee voorstellen mogelijk ook geschikt voor BSc Kunstmatige Intelligentie Alban Ponse section Theory of Computer Science Informatics Institute, University of Amsterdam

Nadere informatie

Veel succes! 1. Gegeven is de volgende klasse:

Veel succes! 1. Gegeven is de volgende klasse: Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Derde deeltentamen

Nadere informatie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes

Nadere informatie

Dynamisch Programmeren. Het Rugzakprobleem

Dynamisch Programmeren. Het Rugzakprobleem INLEIDING Dynamisch Programmeren 1 Dynamisch Programmeren Section Page Inleiding................................................. 1 1 Oplossing................................................ 2 2 Subprobleem.............................................

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd

Nadere informatie

Bij programmeren moet je logisch kunnen denken. Een paar voorbeelden:

Bij programmeren moet je logisch kunnen denken. Een paar voorbeelden: Bij programmeren moet je logisch kunnen denken. Een paar voorbeelden: Workshop EN/OF In een spelletje mag je verder naar het volgende niveau ALS je meer dan 100 punten hebt EN een zwaard hebt veroverd.

Nadere informatie

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, 11.00-13.00 uur 1. Een klasse is niet: (a) het type van een object (b) een groepje methoden (c) een groepje variabelen

Nadere informatie

TI1300: Redeneren en Logica, Practicum 1 Deadline: 17 september 2010, 10:45 uur

TI1300: Redeneren en Logica, Practicum 1 Deadline: 17 september 2010, 10:45 uur TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TI1300: Redeneren en Logica, Practicum 1 Deadline: 17 september 2010, 10:45 uur Introductie In deze practicumopgave komt

Nadere informatie

Bij programmeren moet je logisch kunnen denken. Een paar voorbeelden:

Bij programmeren moet je logisch kunnen denken. Een paar voorbeelden: Bij programmeren moet je logisch kunnen denken. Een paar voorbeelden: Workshop EN/OF In een spelletje mag je verder naar het volgende niveau ALS je meer dan 100 punten hebt EN een zwaard hebt veroverd.

Nadere informatie

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1 Algemene Richtlijnen Programmeren I 26 augustus 2015 Schrijf je naam bovenaan elk antwoordblad en kladblad. Schrijf niet met potlood of in het rood op je antwoordbladen. Gebruik voor elke vraag een afzonderlijk

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Honours projecten BSc Informatica: twee voorstellen

Honours projecten BSc Informatica: twee voorstellen Honours projecten BSc Informatica: twee voorstellen mogelijk ook geschikt voor BSc Kunstmatige Intelligentie Alban Ponse section Theory of Computer Science Informatics Institute, University of Amsterdam

Nadere informatie

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur 1. (2 punten per deelvraag) Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een

Nadere informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Complexiteit van berekeningen

Complexiteit van berekeningen Logica in actie H O O F D S T U K 7 Complexiteit van berekeningen We hebben nu al een paar keer gezien dat logica nauw verbonden is met processen die informatie bewerken en overdragen. Het proces bij uitstek

Nadere informatie

Inleiding Wiskundige Logica

Inleiding Wiskundige Logica Inleiding Wiskundige Logica Yde Venema 2017/2018 c YV 2018 Institute for Logic, Language and Computation, University of Amsterdam, Science Park 904, NL 1098XH Amsterdam E-mail: yvenema@uvanl Voorwoord

Nadere informatie