Maak automatisch een geschikte configuratie van een softwaresysteem;

Maat: px
Weergave met pagina beginnen:

Download "Maak automatisch een geschikte configuratie van een softwaresysteem;"

Transcriptie

1 Joost Vennekens Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal voorwaarden voldoet; Stel een productieplanning op waarmee een aantal artikelen tijdig geproduceerd kunnen worden; Maak automatisch een geschikte configuratie van een softwaresysteem; Al deze problemen hebben een gelijkaardige vorm: het is de bedoeling om een (= lessenrooster, productieplanning, configuratie, ) te berekenen die voldoet aan een aantal. Er bestaan verschillende algoritmes waarmee dergelijke problemen kunnen worden opgelost. Een nadeel van deze algoritmes is dat ze in elke specifieke context (deels) opnieuw geïmplementeerd moeten worden: je hebt een ander programma nodig om lessenroosters te berekenen dan om software te configureren. De bedoeling van het IDP systeem om een generieke oplossingsmethode voor dergelijke problemen aan te bieden. Je geeft het IDP systeem als invoer een beschrijving van welke toestanden berekend moeten worden en aan welke voorwaarden deze toestanden moeten voldoen, en het systeem berekent dan zelf de oplossing. We gebruiken het oplossen van Sudoku puzzels als een eenvoudig voorbeeld. De toestanden die hier berekend moeten worden zijn 9x9 roosters van cijfers tussen 1 en 9. Vooraleer we in de volgende sectie bekijken hoe we de van Sudoku (= de voorwaarden waaraan deze roosters moeten voldoen) kunnen voorstellen, bekijken we in deze sectie hoe we de structuur van deze roosters zélf aan IDP kunnen duidelijk maken. Hierbij moeten we een onderscheid maken tussen twee verschillende stukken informatie: We moeten IDP vertellen hoe we Sudoku puzzels in het algemeen kunnen voorstellen; Daarna moeten we IDP ook één specifieke opgave kunnen geven, als concrete van het algemene probleem. Om het eerste klaar te spelen, moeten we een declareren. Het tweede zullen we dan kunnen doen door een specifieke voor dit vocabularium op te stellen. 1

2 Een vocabularium bepaalt welke symbolen we gaan gebruiken om het probleem te beschrijven. We onderscheiden drie soorten symbolen: bepalen over welke soorten van objecten we zullen spreken; leggen verbanden tussen een aantal van deze objecten; beelden tuples van deze objecten af op een ander object. In de voorstelling van Sudoku die wij zullen gebruiken, hebben we twee types nodig: een type waarmee we de kolom en rij indices van het rooster zullen voorstellen en een type waarmee we de cijfers zullen voorstellen die kunnen worden ingevuld. We noteren dit in IDP syntax heel eenvoudig als: type Index isa int type Waarde isa int De isa int uitdrukkingen geven aan dat deze twee types allebei overerven van het ingebouwde type int. Het netto effect hiervan is dat het mogelijk zal zijn om rekenkundige operaties (+,, /, ) te gebruiken op de elementen van deze types. Aangezien we een vakje van het rooster dus zullen voorstellen door een paar (i, j) waarbij i, j Index, zal het eenvoudig zijn om te zien wanneer twee zo n vakjes in dezelfde rij of kolom liggen. Daarnaast zullen we ook nog moeten weten wanneer ze in hetzelfde kleine 3x3 vierkant liggen. Hiervoor introduceren we de relatie InZelf degroep, die dus een verband zal leggen tussen bepaalde vakjes (i, j) en (i, j ), waarbij i, j, i, j Index. Deze relatie legt dus eigenlijk een verband tussen vier indices. We zeggen dat de relatie vier argumenten heeft, en dat elk van deze argumenten van het type Index is. In IDP syntax schrijven we dit zo: InZelfdeGroep(Index,Index,Index,Index) Tot slot moeten we ook nog weten welke cijfers in welke vakjes staan ingevuld. Dit doen we door middel van een functie die een cel (dwz. een paar van indices) afbeeldt op een waarde. We noteren dit zo: Inhoud(Index,Index) : Waarde Ons vocabularium is nu volledig. We kunnen dit als volgt aan IDP geven: vocabulary SudokuVoc { type Index isa int type Waarde isa int InZelfdeGroep(Index,Index,Index,Index) Inhoud(Index,Index) : Waarde Hierbij we hebben we ons vocabularium ook een naam moeten geven in dit geval: SudokuV oc. 2

3 Het vocabularium dat we net hebben opgesteld, laat ons toe om eender welke Sudoku voor te stellen. Om nu één concrete Sudoku aan IDP te geven, moeten we een zogenaamde maken voor dit vocabularium. We gaan om te beginnen nog geen Sudoku s oplossen, maar we beperken ons tot het eenvoudigere probleem van controleren of een gegeven oplossing wel degelijk correct is. De structuur die we gaan maken zal dus geen opgave beschrijven, maar wel een oplossing. Een structuur voor een vocabularium maak je door aan elk symbool uit dit vocabularium een te geven. Wat deze interpretatie juist is, hangt ervan af over welk soort symbool het gaat: Voor elk geef je een opsomming van alle waarden die tot dit type behoren; Voor elke geef je een opsomming van alle tupels waarvoor deze relatie geldt; Voor elke geef je voor elke mogelijke combinatie van argumenten de functiewaarde. Aan de twee types geven we de volgende invulling: Index = { 0..8 Waarde = { De notatie { is hierbij gewoon een afkorting voor de verzameling { 0,1,2,3,4,5,6,7,8. Voor de relatie InZelfdeGroup moeten we alle 4-tupels (i, j, i, j ) opsommen, waarvoor geldt dat cel (i, j) in hetzelfde 3x3 rooster ligt als cel (i, j ). Dit resulteert natuurlijk in een nogal lange opsomming. (Later in deze tekst gaan we zien dat dit ook op een kortere manier kan.) De verschillende tupels van de opsomming worden van elkaar gescheiden door puntkomma s, terwijl verschillende elementen van één tupel van elkaar gescheiden worden door komma s. InZelfdeGroup = { 0,0,0,0; 0,0,0,1; 0,0,0,2; 0,1,0,0; 0,1,0,1; 0,1,0,2;... Tot slot moeten we ook de functie Inhoud opsommen: Inhoud = { 0,0 -> 6; 0,1 -> 4; 0,2 -> 3;... Al deze informatie samen komt nu terecht in een structuur, die we een naam geven (Sudoku1) en waarbij we moeten verwijzen naar het vocabularium dat we eerder gedeclareerd hebben. structure Sudoku1 : SudokuVoc { Index = {

4 Waarde = { InZelfdeGroep = { 0,0,0,0; 0,0,0,1; 0,0,0,2; 0,1,0,0; 0,1,0,1; 0,1,0,2;... Inhoud = { 0,0 -> 6; 0,1 -> 4; 0,2 -> 3;... Nu we een ingevuld Sudokurooster kunnen voorstellen in IDP, kunnen we gaan controleren of dit rooster aan de vereiste voorwaarden voldoet. Deze voorwaarden worden in IDP voorgesteld door. Een verzameling van dergelijke formules wordt een genoemd. Vooraleer we de echte Sudoku voorwaarden beschouwen, beginnen we met enkele eenvoudigere voorbeeldjes. De eenvoudigste soort formules die we kunnen schrijven, zijn atomaire formules. Hiermee kunnen we bijvoorbeeld uitdrukken dat een bepaald tupel tot een relatie moet behoren, of dat een functie voor een bepaald tupel een bepaalde waarde moet hebben. Een is bijvoorbeeld InZelfdeGroep(0, 0, 0, 1). Deze atomaire formule drukt uit dat het tupel (0, 0, 0, 1) tot de relatie InZelfdeGroep behoort (maw. de cel (0, 0) en de cel (0, 1) zitten in hetzelfde 3x3 vierkant). Een is bijvoorbeeld Inhoud(0, 0) = 1. Deze atomaire formule drukt uit dat de functiewaarde van de functie Inhoud op het tupel (0, 0) gelijk is 1 (maw. de cel (0, 0) bevatde waarde 1). Aan een atomaire formule kunnen we een waarheidswaarde (waar/onwaar) toekennen in elke structuur voor een vocabularium dat de symbolen uit de atomaire formule bevat. Voor een atomaire relatie-formule is dat gewoon een kwestie van op te zoeken of het tupel in kwestie voorkomt in de interpretatie van de relatie. Voor een atomaire functie-formule moeten we nakijken of de functiewaarde van het tupel in de interpretatie van de functie dezelfde is als de opgegeven waarde. Om aan te geven dat een formule F de waarheidswaarde waar heeft in een structuur S, gebruiken we ook wel de notatie S = F. Als dit niet zo is (en F dus onwaar is in S), schrijven we S = F. 4

5 Met onze voorbeeldstructuur Sudoku1 uit de vorige sectie, is het dan bijvoorbeeld zo dat: Sudoku1 = InZelf degroep(0, 0, 0, 1) Sudoku1 = Inhoud(0, 0) = 6 We kunnen ingewikkeldere formules construeren door atomaire formules te combineren door middel van de gekende booleaanse operatoren en, of en niet. Onderstaande tabel toont voor deze operatoren de notatie die in IDP gebruikt wordt, samen met hun wiskundige notatie: Operator IDP Wiskunde niet en & of Een voorbeeld is de formule: InZelfdeGroep(0,0,0,1) & ~Inhoud(0,0) = 6 InZelfdeGroep(0,0,8,8) De verschillende operatoren staan in bovenstaande tabel gerangschikt van hoge prioriteit naar lage, wat betekent dat bovenstaande formule dezelfde is als: (InZelfdeGroep(0,0,0,1) & (~Inhoud(0,0) = 6)) InZelfdeGroep(0,0,8,8) Aangezien we voor elk van de atomaire formules een waarheidswaarde kunnen bepalen in een gegeven structuur, kunnen we ook voor deze hele formule eenvoudig een waarheidswaarde bepalen. Dit gebeurt aan de hand van de gekende waarheidstabellen voor de booleaanse operatoren: F G F & G waar waar waar waar onwaar onwaar onwaar waar onwaar onwaar onwaar onwaar Voor bovenstaande formule zien we dus dat: F G F G waar waar waar waar onwaar waar onwaar waar waar onwaar onwaar onwaar F waar onwaar F onwaar waar Sudoku1 = InZelfdeGroep(0, 0, 0, 1) & Inhoud(0, 0) = 6 InZelfdeGroep(0, 0, 8, 8). aangezien: waar & ~onwaar onwaar reduceert tot waar. In deze formule komt de negatie van een gelijkheid voor. In plaats hiervan kunnen we ook de ongelijkheidsoperator ~= gebruiken: ~Inhoud(0,0) = 6 is hetzelfde als Inhoud(0,0) ~= 6. Uit deze drie booleaanse operatoren worden ook nog volgende operatoren afgeleid: Operator Notatie Betekenis als, dan F => G ~F G als en slechts als F <=> G F & G ~F & ~G 5

6 Ook hier staan deze operatoren in volgorde van dalende prioriteit en hun prioriteit is beide lager dan die van de of. De als, dan operator drukt uit dat als F waar is, ook G waar is. De enige manier waarop een formule F => G ooit onwaar kan zijn, is als F waar is, maar G niet. (Merk op dat als F niet waar is, de waarheidswaarde van G dus irrelevant is: F => G is dan sowieso waar.) De als en slechts als operator drukt uit dat F waar is als en slechts als G waar is. Een formule F <=> G is dus waar als en slechts als F en G dezelfde waarheidswaarde hebben. Om interessantere formules te kunnen uitdrukken, moeten we in staat zijn om niet enkel dingen te zeggen over bv. één specifieke cel, maar zouden we iets moeten kunnen zeggen over alle cellen. Hiervoor dienen de : Operator IDP Wiskunde Voor alle! Er bestaat? We illustreren het gebruik van de voor alle kwantor door volgende eigenschap uit te drukken: Voor elk viertal (i, j, i, j ) zodat cellen (i, j) en (i, j ) tot dezelfde groep behoren, geldt dat de inhoud van cel (i, j) verschillend moet zijn van de inhoud van cel (i, j ). IDP kent een aantal verschillende varianten van de voor alle kwantor. We kunnen elk van deze varianten gebruiken om bovenstaande eigenschap uit te drukken.! x[type]: Voor alle objecten van een bepaald type!i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) => Inhoud(i,j) ~= Inhoud(i2,j2).! (x,y) in Relatie: Voor alle (tuples van) objecten uit een bepaalde relatie! (i,j,i2,j2) in InZelfdeGroep: Inhoud(i,j) ~= Inhoud(i2,j2).! (x,y) sat Relatie(x,y): Voor alle (tuples van) objecten die voldoen aan een bepaalde voorwaarde! (i,j,i2,j2) sat InZelfdeGroep(i,j,i2,j2): Inhoud(i,j) ~= Inhoud(i2,j2). Merk op dat we in het eerste item gebruik maken van de als, dan operator om ervoor te zorgen dat de voorwaarde Inhoud(i,j) ~= Inhoud(i2,j2) enkel maar wordt toegepast op die tupels (i,j,i2,j2) waarvoor InZelfdeGroep(i,j,i2,j2) voldaan is. Voor de andere tuples is de als, dan -uitdrukking immers sowieso voldaan, onafhankelijk van de waarheidswaarde van de ongelijkheid Inhoud(i,j) ~= Inhoud(i2,j2). Dit is een vaak voorkomend patroon. De er bestaat kwantor kent dezelfde varianten. We illustreren dit, gebruikmakend van volgende eigenschap: Er bestaat een viertal (i, j, i, j ) zodat cellen (i, j) en (i, j ) tot dezelfde groep behoren de inhoud van cel (i, j) gelijk is aan de inhoud van cel (i, j ). 6

7 ? x[type]: Er bestaan objecten van een bepaald type?i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) & Inhoud(i,j) = Inhoud(i2,j2).? (x,y) in Relatie: Er bestaat een (tuple van) object(en) uit een bepaalde relatie? (i,j,i2,j2) in InZelfdeGroep: Inhoud(i,j) = Inhoud(i2,j2).? (x,y) sat Relatie(x,y): Er bestaat een (tuple van) object(en) dat voldoet aan een bepaalde voorwaarde? (i,j,i2,j2) sat InZelfdeGroep(i,j,i2,j2): Inhoud(i,j) = Inhoud(i2,j2). Nu maken we in het eerste item niet langer gebruik van de als, dan, maar wel van de en. Dit is logisch, aangezien de Nederlandse zin die we proberen voor te stellen op die plaats ook het woord en gebruikt. De combinatie van een er bestaat met een en is eveneens een veel voorkomend patroon. De aandachtige lezer heeft misschien al opgemerkt dat het voorbeeld dat we gebruikt hebben voor de er bestaat eigenlijk precies het omgekeerde zegt van het voorbeeld dat we bij de voor alle gebruikt hebben. Een andere manier om het tweede voorbeeld uit te drukken is dus door gewoon de negatie van het eerste voorbeeld te nemen (of andersom):!i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) => Inhoud(i,j) ~= Inhoud(i2,j2). = ~(?i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) & Inhoud(i,j) = Inhoud(i2,j2)). Deze eigenschap lijkt heel erg op één van de spelregels van Sudoku, maar is er toch geen goede voorstelling van. We kunnen door IDP laten berekenen of deze formule bv. voldaan is in de structuur Sudoko1. Om dit te doen, moeten we eerst de formule in een theorie omvatten, waarbij we ook moeten aangeven in welk vocabularium deze theorie geschreven is (zodat IDP kan nagaan dat dit wel degelijk hetzelfde is als het vocabularium van onze structuur). theory SudRegel: SudokuVoc {!i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) => Inhoud(i,j) ~= Inhoud(i2,j2). Merk op dat formules in IDP altijd beëindigd worden door een punt. Het IDP-systeem kan theorieën en structuren gebruiken om verschillende dingen mee te doen. Wat we juist willen dat IDP doet, moeten we programmeren in een procedure met de naam main. Om IDP te laten controleren of een bepaalde formule voldaan is in een bepaalde structuur gebruiken we volgende main procedure: 7

8 procedure main() { print(sat(sudregel,sudoku1)); De functie sat berekent hier of de gegeven theorie (dwz. voldaan) is in de gegeven structuur. Je kan het resultaat van deze berekening zelf eens bekijken door op Run te klikken in de online IDP IDE: http: //dtai.cs.kuleuven.be/krr/idp-ide/?src=67562f95dd9170d5665d269b87d7a7b9 Is het resultaat hier wat je verwacht? Om het resultaat te begrijpen, kan je IDP ook eens laten berekenen voor welke viertallen (i, j, i2, j2) de regel in kwestie niet voldaan is. Dit doe je door hiervoor een te definiëren: query Q: SudokuVoc { { i j i2 j2 : InZelfdeGroep(i,j,i2,j2) & Inhoud(i,j) = Inhoud(i2,j2) Een query beschrijft dus een verzameling van tuples in dit geval de verzameling van alle tuples (i, j, i2, j2) waarvoor geldt dat (i, j) en (i2, j2) in dezelfde groep zitten en de inhoud van (i, j) gelijk is aan dit van (i2, j2). Het is duidelijk dat als er zo n tuples bestaan, onze theorie SudRegel niet voldaan kan zijn. Om IDP deze verzameling van tuples te laten berekenen in de context van een gegeven structuur, gebruiken we volgende main procedure: procedure main() { print(query(q,sudoku1)); Probeer dit eens uit in de online IDP IDE en bekijk of je nu beter begrijpt waarom de theorie SudRegel niet voldaan was. Kan je de formule in deze theorie aanpassen, zodat dit probleem opgelost wordt? We hebben tot dusver enkel nog maar gekeken naar de Sudoku spelregel aangaande de 3x3 vierkanten. Er zijn natuurlijk ook nog beperkingen die gaan over de rijen en de kolommen. De beperking ivm. de rijen ziet er zo uit:! x[index] y[index] z[index]: z ~= y => Inhoud(x,y) ~= Inhoud(x,z). Hoe ziet de gelijkaardige beperking ivm. de kolommen er juist uit? Tot dusver hebben we enkel gekeken hoe we een gegeven Sudoku oplossing kunnen controleren op correctheid. Het is natuurlijk interessanter om ook Sudoku s te kunnen oplossen. Om dit te kunnen doen, moeten we ons vocabularium aanpassen: tot dusver spraken we enkel maar over 8

9 de Inhoud van de cellen, maar nu zullen we zowel over de inhoud als over de inhoud moeten spreken. We passen ons vocabularium als volgt aan: vocabulary SudokuVoc { type Index isa int type Waarde isa int InZelfdeGroep(Index,Index,Index,Index) Opgave(Index,Index) : Waarde Oplossing(Index,Index): Waarde Net zoals wiskundige functies, zijn functies in IDP normaalgezien, dwz. dat ze een functiewaarde produceren voor elk element in hun domein. Voor de functie Opgave geeft dit een probleem: deze functie heeft voor sommige paren (i, j) natuurlijk geen waarde. We kunnen dit probleem op verschillende manieren oplossen. Een eenvoudige oplossing is om het type W aarde een extra element te geven (bv. het cijfer 0, zodat Waarde = {0..9) en dit te gebruiken als inhoud van de lege vakjes. Hieronder zie je een opgave met de bijhorende interpretatie voor de functie Opgave Opgave = { 0,0->0; 0,1->0; 0,2->0; 0,3->0; 0,4->7; 0,5->0; 0,6->0; 0,7->2; 0,8->0; 1,0->8; 1,1->0; 1,2->0; 1,3->0; 1,4->0; 1,5->0; 1,6->0; 1,7->0; 1,8->6; 2,0->0; 2,1->1; 2,2->0; 2,3->2; 2,4->0; 2,5->5; 2,6->0; 2,7->0; 2,8->0; 3,0->9; 3,1->0; 3,2->5; 3,3->4; 3,4->0; 3,5->0; 3,6->0; 3,7->0; 3,8->8; 4,0->0; 4,1->0; 4,2->0; 4,3->0; 4,4->0; 4,5->0; 4,6->0; 4,7->0; 4,8->0; 5,0->3; 5,1->0; 5,2->0; 5,3->0; 5,4->0; 5,5->8; 5,6->5; 5,7->0; 5,8->1; 6,0->0; 6,1->0; 6,2->0; 6,3->3; 6,4->0; 6,5->2; 6,6->0; 6,7->8; 6,8->0; 7,0->4; 7,1->0; 7,2->0; 7,3->0; 7,4->0; 7,5->0; 7,6->0; 7,7->0; 7,8->9; 8,0->0; 8,1->7; 8,2->0; 8,3->0; 8,4->6; 8,5->0; 8,6->0; 8,7->0; 8,8->0 De oplossing van deze Sudoku ziet er als volgt uit:

10 Dit komt overeen met de volgende interpretatie voor de functie Oplossing: Oplossing = { 0,0->5; 0,1->9; 0,2->4; 0,3->8; 0,4->7; 0,5->6; 0,6->1; 0,7->2; 0,8->3; 1,0->8; 1,1->2; 1,2->3; 1,3->9; 1,4->1; 1,5->4; 1,6->7; 1,7->5; 1,8->6; 2,0->6; 2,1->1; 2,2->7; 2,3->2; 2,4->3; 2,5->5; 2,6->8; 2,7->9; 2,8->4; 3,0->9; 3,1->6; 3,2->5; 3,3->4; 3,4->2; 3,5->1; 3,6->3; 3,7->7; 3,8->8; 4,0->7; 4,1->8; 4,2->1; 4,3->6; 4,4->5; 4,5->3; 4,6->9; 4,7->4; 4,8->2; 5,0->3; 5,1->4; 5,2->2; 5,3->7; 5,4->9; 5,5->8; 5,6->5; 5,7->6; 5,8->1; 6,0->1; 6,1->5; 6,2->9; 6,3->3; 6,4->4; 6,5->2; 6,6->6; 6,7->8; 6,8->7; 7,0->4; 7,1->3; 7,2->6; 7,3->5; 7,4->8; 7,5->7; 7,6->2; 7,7->1; 7,8->9; 8,0->2; 8,1->7; 8,2->8; 8,3->1; 8,4->6; 8,5->9; 8,6->4; 8,7->3; 8,8->5 Deze interpretatie gaan we nu echter niet geven aan IDP, maar we gaan IDP deze zelf laten berekenen. Hiervoor gebruiken we de inferentietaak van. Deze taak is als volgt gedefinieerd: : Een vocabularium V, een theorie T in dit vocabularium V, een structuur S die het vocabularium V interpreteert : Een structuur S voor het volledige vocabularium V die een uitbreiding vormt van de structuur S (dwz. dat elk symbool dat al geïnterpreteerd werd door S ook op dezelfde manier geïnterpreteerd wordt door S ), zodat de theorie T voldaan is in S. Deze inferentietaak kunnen we uitvoeren met volgende main procedure: procedure main() { stdoptions.nbmodels = 1 printmodels(modelexpand(sudregels,sudoku1)) Deze code berekent één mogelijke modelexpansie van de gegeven structuur. Door stdoptions.nbmodels gelijk te stellen aan 0, laat je alle mogelijke modelexpansies berekenen. De theorie die we hiervoor nodig hebben, moet volgende beperkingen uitdrukken: Twee verschillende cellen in dezelfde rij hebben een verschillende inhoud in de oplossing; Twee verschillende cellen in hetzelfde 3x3 vierkant hebben een verschillende inhoud in de oplossing; Twee verschillende cellen in dezelfde kolom hebben een verschillende inhoud in de oplossing; In de oplossing heeft elke cel een waarde verschillend van 0; 10

11 Voor alle cellen waarvoor de opgave een inhoud heeft die verschillend is van 0, is de inhoud in de opgave en de inhoud in de oplossing dezelfde. Op deze URL: http: //dtai.cs.kuleuven.be/krr/idp-ide/?src=742ed49c9a0651f23d749b24fb59a09f vind je een IDP programma dat alle nodige componenten bevat, maar waarin de theorie alleen nog maar de eerste beperking uit bovenstaande lijst bevat. Voeg de andere beperkingen toe en ga na dat de correcte oplossing (en alleen maar deze) geproduceerd wordt. In plaats van de relatie InZelfdeGroep op te sommen in de structuur, kan je deze ook laten berekenen door IDP. Hiervoor moet je dan een geschikte formule toevoegen aan de theorie. Deze formule moet uitdrukken dat een viertal (i, j, i2, j2) tot de relatie InZelfdeGroep behoort als en slechts als er aan een bepaalde voorwaarde tussen i en i2, en j en j2 voldaan is. Probeer deze formule op te stellen. : Om deze formule te kunnen opschrijven, moet je gebruik maken van gehele deling (zodat bv. 7/2 = 3). Deze operator zit echter niet ingebouwd in IDP. De gehele deling van x door y schrijf je in IDP als (x x%y)/y (de % operator berekent de rest bij gehele deling). De volledige Sudoku oplosser in IDP ziet er nu zo uit: 11

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

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit.

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit. Labo IDP In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. K L A XOR N B XOR P M D AND Q AND C O OR E R R Tuesday 15 December 2009 Figuur 1: Een logisch circuit. Veronderstel

Nadere informatie

Opgave Constraint Processing

Opgave Constraint Processing Opgave Constraint Processing De deadline voor het indienen van je verslag is woensdag 9 december, 12u. We verwachten je verslag op papier in de studentenbrievenbus in 200A. In dit project zullen we een

Nadere informatie

II. ZELFGEDEFINIEERDE FUNCTIES

II. ZELFGEDEFINIEERDE FUNCTIES II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual

Nadere informatie

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens Info-books HA40c Toegepaste Informatica Handleiding Deel 40c : Gegevensbeheer en algoritmen in Access Jos Gils Erik Goossens Veldlengte Het maximale aantal tekens dat in een veld kan ingevoerd worden.

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

Modelleren en Programmeren voor KI

Modelleren en Programmeren voor KI Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver Tomas Klos Het SAT probleem Parvulae Logicales: Propositielogica, Hoofdstuk 6 (Semantiek), p. 62: Het SAT probleem Ik geef je een propositielogische

Nadere informatie

PYTHON REEKS 1: BASICS. Mathias Polfliet

PYTHON REEKS 1: BASICS. Mathias Polfliet PYTHON REEKS 1: BASICS Mathias Polfliet mpolflie@etrovub.be EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte

Nadere informatie

5. Functies. In deze module leert u:

5. Functies. In deze module leert u: 5. Functies In deze module leert u: - Wat functies zijn; - Functies uitvoeren; - De verschillende functies van Calc kennen. - Naar een ander werkblad verwijzen. U kunt eenvoudige berekeningen, zoals aftrekken,

Nadere informatie

Labo IDP 1. April 22, 2010

Labo IDP 1. April 22, 2010 Labo IDP April, 00 Inleiding Download het bestand http://telescript.denayer.wenk.be/ jve/blokken.idp naar je eigen home directory en open het in een teksteditor. Dit bestand zou er als volgt moeten uitzien:

Nadere informatie

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object. een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers

Nadere informatie

IDP: Labo 2. Given: type int Octaal = {1;2;3;4;5;6;7;8} type int Octaal = {1..4;5;6..8}

IDP: Labo 2. Given: type int Octaal = {1;2;3;4;5;6;7;8} type int Octaal = {1..4;5;6..8} IDP: Labo 2 1 Integer types Een integer type in IDP is niets anders dan een enumaratietype waarop bepaalde arithmetische bewerkingen (+,,, /, %) gedefiniëerd zijn. Bijvoorbeeld, het volgende programma

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

Excel voor beginners (3) Handleiding van Helpmij.nl

Excel voor beginners (3) Handleiding van Helpmij.nl Excel voor beginners (3) Handleiding van Auteur: Corverm Mei 2008 Excel voor beginners deel 3. Vorige delen: Deel 1 Deel 2 In het vorige deel hebben we beloofd om iets te gaan maken i.v.m. het EK voetbal,

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

Spreadsheets (Excel 2003)

Spreadsheets (Excel 2003) Spreadsheets (Excel 2003) 14 Toevoegen paragraaf 14.5 14.5 Subtotalen, draaitabellen en ALS In deze paragraaf bespreken we een aantal aanvullende functies in Excel. We beginnen met de subtotalen. Een subtotaal

Nadere informatie

Informatica: C# WPO 13

Informatica: C# WPO 13 Informatica: C# WPO 13 1. Inhoud Bestanden uitlezen, bestanden schrijven en data toevoegen aan een bestand, csv-bestanden 2. Oefeningen Demo 1: Notepad Demo 2: Read CSV-file Demo 3: Write CSV-file A: Plot

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

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 3

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 3 woensdag /3/4² - Diepenbeek OPGAVEN CAT 3 Ladderspel Opgave Het Ladderspel (Snakes and Ladders) is een gezelschapsspel dat gespeeld wordt op een vierkant bord van N N vakjes, genummerd van 1 tot N. Het

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

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

Informatica: C# WPO 12

Informatica: C# WPO 12 Informatica: C# WPO 12 1. Inhoud Datacontainers, bestanden uitlezen, bestanden schrijven en data toevoegen aan en bestand, csv-bestanden 2. Oefeningen Demo 1: Point2D Demo 2: Notepad Demo 3: Read CSV-file

Nadere informatie

Relatieve en Absolute adressering

Relatieve en Absolute adressering Klik op ENTER om je formule te bevestigen Relatieve en Absolute adressering Relatieve adressering Typ het volgend voorbeeld nu: Wanneer je de formule sleept met de vulgreep, dan zie je dat de formule zich

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

Een formule is een berekening die jij zelf maakt in Excel. Een formule begint met het isgelijkteken en bevat celverwijzingen.

Een formule is een berekening die jij zelf maakt in Excel. Een formule begint met het isgelijkteken en bevat celverwijzingen. Formules Een formule is een berekening die jij zelf maakt in Excel. Een formule begint met het isgelijkteken en bevat celverwijzingen. Figuur 1. Elke formule begint met = Stappen bij het maken van een

Nadere informatie

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 4

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 4 woensdag /3/4² - Diepenbeek OPGAVEN CAT 4 Food truck festival De laatste jaren zijn food trucks erg populair geworden: het zijn combi s of aanhangwagens waarin gerechten gemaakt worden, en die worden dan

Nadere informatie

Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven.

Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven. Formules functies verticaal en horizontaal zoeken Excel Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven. Opbouw van de functie Verticaal

Nadere informatie

LESVELDGEV(extra eigenschap) + LESVELDGEV(lesverzameling,extra eigenschap)

LESVELDGEV(extra eigenschap) + LESVELDGEV(lesverzameling,extra eigenschap) UDM In deze paragraaf passeren de volgende formules de revue: LLN(lesverz, tijdv) LLNVELD(extra eigenschap) + LLNVELD(extra eigenschap, lesverz) LESVELDGEV(extra eigenschap) + LESVELDGEV(lesverzameling,extra

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

Goed aan wiskunde doen

Goed aan wiskunde doen Goed aan wiskunde doen Enkele tips Associatie K.U.Leuven Tim Neijens Katrien D haeseleer Annemie Vermeyen Maart 2011 Waarom? Dit document somt de belangrijkste aandachtspunten op als je een wiskundeopgave

Nadere informatie

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

Inleiding Logica voor CKI, 2013/14

Inleiding Logica voor CKI, 2013/14 Inleiding Logica voor CKI, 2013/14 Albert Visser Department of Philosophy, Faculty Humanities, Utrecht University 14 oktober, 2013 1 Overview 2 Overview 2 Overview 2 Overview 2 Overview 2 Overview 3 Wegens

Nadere informatie

Calcudoku. Vakantie Puzzelboek. door Patrick Min

Calcudoku. Vakantie Puzzelboek. door Patrick Min Calcudoku Vakantie Puzzelboek door Patrick Min Calcudoku, Vakantie Puzzelboek c 2016 Patrick Min. Alle rechten voorbehouden. ISBN 978-9-4021-4740-7 Inhoud 1 Inleiding 5 1.1 Regels........................................

Nadere informatie

Oplossingen oefeningen logica en eindige automaten 12 december Het bestand oplnoef12dec.zip bevat de.sen en.fa bestanden met de oplossingen.

Oplossingen oefeningen logica en eindige automaten 12 december Het bestand oplnoef12dec.zip bevat de.sen en.fa bestanden met de oplossingen. Oplossingen oefeningen logica en eindige automaten 12 december 2003 Het bestand oplnoef12dec.zip bevat de.sen en.fa bestanden met de oplossingen. Oefening 1 Deel 1: Logica Vertaal de volgende zinnen in

Nadere informatie

Examen VWO - Compex. wiskunde A1

Examen VWO - Compex. wiskunde A1 wiskunde A1 Examen VWO - Compex Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Woensdag 25 mei totale examentijd 3 uur 20 05 Vragen 14 tot en met 21 In dit deel staan de vragen waarbij de computer

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

Elementaire rekenvaardigheden

Elementaire rekenvaardigheden Hoofdstuk 1 Elementaire rekenvaardigheden De dingen die je niet durft te vragen, maar toch echt moet weten Je moet kunnen optellen en aftrekken om de gegevens van de patiënt nauwkeurig bij te kunnen houden.

Nadere informatie

Rekenen aan wortels Werkblad =

Rekenen aan wortels Werkblad = Rekenen aan wortels Werkblad 546121 = Vooraf De vragen en opdrachten in dit werkblad die vooraf gegaan worden door, moeten schriftelijk worden beantwoord. Daarbij moet altijd duidelijk zijn hoe de antwoorden

Nadere informatie

DATABASEBEHEER IN EXCEL

DATABASEBEHEER IN EXCEL DATABASEBEHEER IN EXCEL 1. LIJSTEN Een lijst is een reeks van rijen met gelijksoortige gegevens waarvan de eerste rij de labels (veldnamen) bevat. Een voorbeeld: Je kunt een lijst beschouwen als een eenvoudige

Nadere informatie

Workshop DisWis, De Start 13/06/2007 Bladzijde 1 van 7. Sudoku. Sudoku

Workshop DisWis, De Start 13/06/2007 Bladzijde 1 van 7. Sudoku. Sudoku DisWis DisWis is een lessenserie discrete wiskunde die De Praktijk vorig jaar in samenwerking met prof.dr. Alexander Schrijver heeft opgezet. Gedurende vier weken komt een wiskundestudent twee blokuren

Nadere informatie

Ontwerp van Algoritmen: opgaven weken 3 en 4

Ontwerp van Algoritmen: opgaven weken 3 en 4 0 Ontwerp van Algoritmen: opgaven weken 3 en 4 Voor alle volgende opgaven over programmaatjes geldt de spelregel: formuleer altijd eerst alle bewijsverplichtingen. selectie 45. (tail distribution)(prima

Nadere informatie

ALS-functie in Calc. ALS-functie maken

ALS-functie in Calc. ALS-functie maken ALS-functie in Calc Het deel van de ALS-functie tussen de haakjes bestaat uit 3 argumenten, gescheiden door puntkomma s. Eerst geef je de voorwaarde aan, waar de waarde in de cel aan moet voldoen (1).

Nadere informatie

Getaltheorie I. c = c 1 = 1 c (1)

Getaltheorie I. c = c 1 = 1 c (1) Lesbrief 1 Getaltheorie I De getaltheorie houdt zich bezig met het onderzoek van eigenschappen van gehele getallen, en meer in het bijzonder, van natuurlijke getallen. In de getaltheorie is het gebruikelijk

Nadere informatie

Examen G0U13 Bewijzen en Redeneren Bachelor 1ste fase Wiskunde. vrijdag 31 januari 2014, 8:30 12:30. Auditorium L.00.07

Examen G0U13 Bewijzen en Redeneren Bachelor 1ste fase Wiskunde. vrijdag 31 januari 2014, 8:30 12:30. Auditorium L.00.07 Examen G0U13 Bewijzen en Redeneren Bachelor 1ste fase Wiskunde vrijdag 31 januari 2014, 8:30 12:30 Auditorium L.00.07 Geef uw antwoorden in volledige, goed lopende zinnen. Het examen bestaat uit 5 vragen.

Nadere informatie

1. Open de Bibliotheek verkenner. Dit kunt u in de Lint modus doen via View, de groep Toon, Bibliotheek Verkenner.

1. Open de Bibliotheek verkenner. Dit kunt u in de Lint modus doen via View, de groep Toon, Bibliotheek Verkenner. Eenvoudige formules Een gedeelte van deze nieuwsbrief gaat over eenvoudige formules. Met behulp van Formules is het mogelijk om Tabelkolommen te bewerken. Een aantal bewerkingen lijken op acties die u

Nadere informatie

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0. REKENEN VIJFDE KLAS en/of ZESDE KLAS Luc Cielen 1. REGELS VAN DEELBAARHEID. Luc Cielen: Regels van deelbaarheid, grootste gemene deler en kleinste gemeen veelvoud 1 Deelbaarheid door 10, 100, 1000. Door

Nadere informatie

Instellen Finchline Topics & Booleaans zoeken

Instellen Finchline Topics & Booleaans zoeken Instellen Finchline Topics & Booleaans zoeken Versie 3.0 Introductie In deze handleiding wordt uitgelegd hoe je in Finchline topics kunt instellen. Een topic is een zoekactie naar een bepaald onderwerp.

Nadere informatie

Een functie is een kant en klare formule. Via de knop Som in de groep Bewerken van het tabblad Start kun je een aantal veelgebruikte functies kiezen:

Een functie is een kant en klare formule. Via de knop Som in de groep Bewerken van het tabblad Start kun je een aantal veelgebruikte functies kiezen: SAMENVATTING HOOFDSTUK 6 De functies Gemiddelde en Afronding Een functie is een kant en klare formule. Via de knop Som in de groep Bewerken van het tabblad Start kun je een aantal veelgebruikte functies

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

Verzamelingen. Hoofdstuk 5

Verzamelingen. Hoofdstuk 5 Hoofdstuk 5 Verzamelingen In de meest uiteenlopende omstandigheden kan het handig zijn om een stel objecten, elementen, of wat dan ook, samen een naam te geven. Het resultaat noemen we dan een verzameling.

Nadere informatie

Excel tips. Handleiding van Helpmij.nl. Auteur: CorVerm

Excel tips. Handleiding van Helpmij.nl. Auteur: CorVerm Excel tips Handleiding van Helpmij.nl Auteur: CorVerm februari 2016 Autocorrectie Stel dat je vaak tijden in moet voeren. Doe je dat vanaf het numerieke deel van het toetsenbord dan is het omslachtig om

Nadere informatie

5. Geavanceerde formules

5. Geavanceerde formules 151 5. Geavanceerde formules Excel is in eerste instantie een programma om berekeningen in te maken. Het doet dat uiterst efficiënt met, afhankelijk van de geheugencapaciteit van de computer, een enorm

Nadere informatie

Module Limieten van de berekenbaarheid : antwoorden

Module Limieten van de berekenbaarheid : antwoorden Module Limieten van de berekenbaarheid : antwoorden Gilles Coremans 2018 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. Dit werk is gebaseerd

Nadere informatie

Basiskennis lineaire algebra

Basiskennis lineaire algebra Basiskennis lineaire algebra Lineaire algebra is belangrijk als achtergrond voor lineaire programmering, omdat we het probleem kunnen tekenen in de n-dimensionale ruimte, waarbij n gelijk is aan het aantal

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

(iii) Enkel deze bundel afgeven; geen bladen toevoegen, deze worden toch niet gelezen!

(iii) Enkel deze bundel afgeven; geen bladen toevoegen, deze worden toch niet gelezen! Examen Wiskundige Basistechniek, reeks A 12 oktober 2013, 13:30 uur Naam en Voornaam: Lees eerst dit: (i) Naam en voornaam hierboven invullen. (ii) Nietje niet losmaken. (iii) Enkel deze bundel afgeven;

Nadere informatie

Samenvatting. Bijlage B

Samenvatting. Bijlage B Bijlage B In dit proefschrift stellen we ons het doel de besluitvorming van agenten en de communicatie tussen deze agenten te beschrijven en te formaliseren opdat de agenten rechtvaardigbare opvattingen

Nadere informatie

Hoofdstuk 16: Zoek- en verwijzingsfuncties

Hoofdstuk 16: Zoek- en verwijzingsfuncties Hoofdstuk 16: Zoek- en verwijzingsfuncties 16.0 Inleiding Eén van de belangrijkste functies binnen Excel is de mogelijkheid om te zoeken naar een specifieke waarde binnen een groot aantal cellen met gegevens.

Nadere informatie

Hoofdstuk 17: Logische & Informatiefuncties en operatoren

Hoofdstuk 17: Logische & Informatiefuncties en operatoren Hoofdstuk 17: Logische & Informatiefuncties en operatoren 17.0 Inleiding Logische formules testen of een conditie waar is (het resultaat van de formule zal dan de waarde WAAR hebben) of onwaar (in dit

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

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

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

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003

Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003 Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003 I Doelstelling en testcase In deze programmeeropgave zullen we een drietal numerieke integratiemethoden

Nadere informatie

Werken met leerpaden. Inleiding. Handleiding Zermelo. Copyright 2018, Zermelo Software BV - pagina 1. Op deze pagina PORTAL 1.20.

Werken met leerpaden. Inleiding. Handleiding Zermelo. Copyright 2018, Zermelo Software BV - pagina 1. Op deze pagina PORTAL 1.20. Werken met leerpaden Inleiding PORTAL 20 Bij een leerling kan per afdelingsdeelname een leerpad bepaald worden. Een leerpad omschrijft het overkoepelende programma wat de leerling volgt, wat vaak een combinatie

Nadere informatie

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector Les 3 Matrix product We hebben gezien hoe we matrices kunnen gebruiken om lineaire afbeeldingen te beschrijven. Om het beeld van een vector onder een afbeelding te bepalen hebben we al een soort product

Nadere informatie

LOPUC. Een manier om problemen aan te pakken

LOPUC. Een manier om problemen aan te pakken LOPUC Een manier om problemen aan te pakken LOPUC Lees de opgave goed, zodat je precies weet wat er gevraagd wordt. Zoek naar grootheden en eenheden. Schrijf de gegevens die je nodig denkt te hebben overzichtelijk

Nadere informatie

Magidoku s en verborgen symmetrieën

Magidoku s en verborgen symmetrieën Uitwerking Puzzel 92-6 Magidoku s en verborgen symmetrieën Wobien Doyer Lieke de Rooij Een Latijns vierkant van orde n, is een vierkante matrix, gevuld met n verschillende symbolen waarvan elk precies

Nadere informatie

3 De duale vectorruimte

3 De duale vectorruimte 3 De duale vectorruimte We brengen de volgende definitie in de herinnering. Definitie 3.1 (hom K (V, W )) Gegeven twee vectorruimtes (V, K) en (W, K) over K noteren we de verzameling van alle lineaire

Nadere informatie

Cursus Excel voor beginners (6) Functies.

Cursus Excel voor beginners (6) Functies. Cursus Excel voor beginners (6) Functies. Handleiding van Auteur: CorVerm September 2008 Functies in Excel. Laten we eerst even kijken wat een functie is. Een functie bestaat uit een aantal argumenten

Nadere informatie

Praktische toepassing van functies

Praktische toepassing van functies Excellerend Heemraadweg 21 2741 NC Waddinxveen 06 5115 97 46 richard@excellerend.nl BTW: NL0021459225 ABN/AMRO: NL72ABNA0536825491 KVK: 24389967 Praktische toepassing van functies De laatste twee functies

Nadere informatie

Hoofdstuk 20: Wiskundige functies

Hoofdstuk 20: Wiskundige functies Hoofdstuk 20: Wiskundige functies 20.0 Introductie Er is een uitgebreid aanbod aan wiskundige functies in Excel, variërend van het simpele + teken tot de esoterische statistiek functies voor een correlatie

Nadere informatie

Excel opdracht: Belkosten

Excel opdracht: Belkosten Excel opdracht: Belkosten In deze opdracht gaan we Excel gebruiken om uit te vinden wat het meest geschikte mobiele telefoon abonnement voor ons is. Hierbij willen we kijken wat een aantal verschillende

Nadere informatie

5) Accepteer de licentievoorwaarden. Volgende. Handleiding HotPotatoes (downloaden)

5) Accepteer de licentievoorwaarden. Volgende. Handleiding HotPotatoes (downloaden) Handleiding HotPotatoes (downloaden) 5) Accepteer de licentievoorwaarden. Volgende. 1) Ga naar de website http://hotpot.uvic.ca 2) Downloads: klik de gewenste versie aan. 3) Selecteer de gewenste taal.

Nadere informatie

III.2 De ordening op R en ongelijkheden

III.2 De ordening op R en ongelijkheden III.2 De ordening op R en ongelijkheden In de vorige paragraaf hebben we axioma s gegeven voor de optelling en vermenigvuldiging in R, maar om R vast te leggen moeten we ook ongelijkheden in R beschouwen.

Nadere informatie

Invoer tijdschriftabonnement

Invoer tijdschriftabonnement Invoer tijdschriftabonnement Met dit voorbeeld willen we een tijdschriftabonnement invoeren, dat 6x per jaar verschijnt, in de even maanden. Na het openen van de abonnemententak zie je dit scherm : Klik

Nadere informatie

Informatica: C# WPO 10

Informatica: C# WPO 10 Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante

Nadere informatie

Handleiding Japanse puzzels

Handleiding Japanse puzzels Handleiding Japanse puzzels versie : 1.0 wijziging : 26-4-2010 Inhoud 1.Japanse puzzel...4 1.1.Speler...4 1.2.Kleur...4 1.3.Groep...4 1.4.Favoriet...4 1.5.Puzzel...4 1.6.Prima...5 1.7.Spel...5 1.8.Stap

Nadere informatie

1 Rekenen met gehele getallen

1 Rekenen met gehele getallen 1 Inhoudsopgave 1 Rekenen met gehele getallen... 1.1 De gehele getallen... 1. Optellen... 1. Opgaven... 1. Aftrekken... 1. Opgaven... 1. Vermenigvuldigen... 1. Opgaven... 1.8 Delen... 9 1.9 Opgaven...9

Nadere informatie

Bespreking Examen Analyse 1 (Augustus 2007)

Bespreking Examen Analyse 1 (Augustus 2007) Bespreking Examen Analyse 1 (Augustus 2007) Vooraf: Zoals het stilletjes aan een traditie is geworden, geef ik hier bedenkingen bij het examen van deze septemberzittijd. Ik zorg ervoor dat deze tekst op

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

Handleiding voor de DWO-auteursomgeving voor het maken van eigen opdrachten

Handleiding voor de DWO-auteursomgeving voor het maken van eigen opdrachten Handleiding voor de DWO-auteursomgeving voor het maken van eigen opdrachten 1 Inhoud Inleiding 3 Voorbereiding 3 Een bestaande activiteit aanpassen 4 Een volledig nieuwe activiteit ontwerpen 5 Berekeningen,

Nadere informatie

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN Vakcode: 8D2. Datum: dinsdag 29 april 28. Tijd: 14: 17:. Lees dit vóórdat je begint! Maak iedere opgave op een apart vel. Schrijf je naam en studentnummer

Nadere informatie

1. Orthogonale Hyperbolen

1. Orthogonale Hyperbolen . Orthogonale Hyperbolen a + b In dit hoofdstuk wordt de grafiek van functies van de vorm y besproken. Functies c + d van deze vorm noemen we gebroken lineaire functies. De grafieken van dit soort functies

Nadere informatie

VBA voor Doe het Zelvers deel 20

VBA voor Doe het Zelvers deel 20 VBA voor Doe het Zelvers deel 20 Handleiding van Auteur: leofact Augustus 2015 handleiding: VBA voor Doe het Zelvers deel 20 Vorige aflevering In het vorige deel werd besproken hoe je de structuur en vensteropbouw

Nadere informatie

Inhoudsopgave Voorwoord 5 Nieuwsbrief 5 Introductie Visual Steps 6 Wat heeft u nodig? 6 Voorkennis 7 Hoe werkt u met dit boek?

Inhoudsopgave Voorwoord 5 Nieuwsbrief 5 Introductie Visual Steps 6 Wat heeft u nodig? 6 Voorkennis 7 Hoe werkt u met dit boek? Inhoudsopgave Voorwoord... 5 Nieuwsbrief... 5 Introductie Visual Steps... 6 Wat heeft u nodig?... 6 Voorkennis... 7 Hoe werkt u met dit boek?... 7 De website bij het boek... 8 Toets uw kennis... 8 Voor

Nadere informatie

3 Wat is een stelsel lineaire vergelijkingen?

3 Wat is een stelsel lineaire vergelijkingen? In deze les bekijken we de situatie waarin er mogelijk meerdere vergelijkingen zijn ( stelsels ) en meerdere variabelen, maar waarin elke vergelijking er relatief eenvoudig uitziet, namelijk lineair is.

Nadere informatie

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter Voorbereidende opgaven VWO Examencursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk hem dan

Nadere informatie

Projectieve Vlakken en Codes

Projectieve Vlakken en Codes Projectieve Vlakken en Codes 1. De Fanocode Foutdetecterende en foutverbeterende codes. Anna en Bart doen mee aan een spelprogramma voor koppels. De ene helft van de deelnemers krijgt elk een kaart waarop

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

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

Excel voor de beginner (4) Handleiding van Helpmij.nl

Excel voor de beginner (4) Handleiding van Helpmij.nl Excel voor de beginner (4) Handleiding van Auteur: CorVerm Juni 2008 Excel voor beginners deel 4. Zoals we in deel drie hebben beloofd gaan we het in deze ronde hebben over het geven van namen aan (een)

Nadere informatie

Basistechnieken Microsoft Excel in 15 minuten

Basistechnieken Microsoft Excel in 15 minuten Basistechnieken Microsoft Excel in 15 minuten Microsoft Excel is een rekenprogramma. Je kan het echter ook heel goed gebruiken voor het maken van overzichten, grafieken, planningen, lijsten en scenario's.

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

Mastermind met acht kleuren

Mastermind met acht kleuren Geschreven voor het vak: Wiskunde gedoceerd door H. Mommaerts Onderzoekscompetentie Mastermind met acht kleuren Auteurs: Tom Demeulemeester Pieter Van Walleghem Thibaut Winters 6LWIi 22 april 2014 1 Inleiding

Nadere informatie

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Koen Rutten, Aris van Dijk 30 mei 2007 Inhoudsopgave 1 Verzamelingen 2 1.1 Definitie................................ 2 1.2 Eigenschappen............................

Nadere informatie

Lights Out. 1 Inleiding

Lights Out. 1 Inleiding Lights Out 1 Inleiding Het spel Lights Out is een elektronisch spel dat gelanceerd werd in 1995 door Tiger Electronics. Het originele spel heeft een bord met 25 lampjes in een rooster van 5 rijen en 5

Nadere informatie

2E HUISWERKOPDRACHT CONTINUE WISKUNDE

2E HUISWERKOPDRACHT CONTINUE WISKUNDE 2E HUISWERKOPDRACHT CONTINUE WISKUNDE Inleverdatum maandag 8 oktober 2017 voor het college Niet losse velletjes aan elkaar vast. Je moet de hele uitwerking opschrijven en niet alleen het antwoord geven.

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie