UNIVERSITETET I OSLO

Like dokumenter
UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Slope-Intercept Formula

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Dynamic Programming Longest Common Subsequence. Class 27

Neural Network. Sensors Sorter

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Call function of two parameters

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Trigonometric Substitution

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Oppgave. føden)? i tråd med

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Mathematics 114Q Integration Practice Problems SOLUTIONS. = 1 8 (x2 +5x) 8 + C. [u = x 2 +5x] = 1 11 (3 x)11 + C. [u =3 x] = 2 (7x + 9)3/2

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Eksamen i emnet Mat131 - Differensiallikningar I Onsdag 25. mai 2016, kl.

EN Skriving for kommunikasjon og tenkning

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Information search for the research protocol in IIC/IID

Databases 1. Extended Relational Algebra

Moving Objects. We need to move our objects in 3D space.

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

UNIVERSITETET I OSLO

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

0:7 0:2 0:1 0:3 0:5 0:2 0:1 0:4 0:5 P = 0:56 0:28 0:16 0:38 0:39 0:23

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Den som gjør godt, er av Gud (Multilingual Edition)

Graphs similar to strongly regular graphs

KROPPEN LEDER STRØM. Sett en finger på hvert av kontaktpunktene på modellen. Da får du et lydsignal.

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Maple Basics. K. Cooper

klassisk angoragenser classic angora sweater

Endelig ikke-røyker for Kvinner! (Norwegian Edition)

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

GYRO MED SYKKELHJUL. Forsøk å tippe og vri på hjulet. Hva kjenner du? Hvorfor oppfører hjulet seg slik, og hva er egentlig en gyro?

Oppgave 1. ( xφ) φ x t, hvis t er substituerbar for x i φ.

Perpetuum (im)mobile

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Besvar tre 3 av følgende fire 4 oppgaver.

EKSAMENSOPPGAVE I SØK 1002 INNFØRING I MIKROØKONOMISK ANALYSE

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

SVM and Complementary Slackness

Exercise 1: Phase Splitter DC Operation

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

EKSAMENSOPPGAVE I BI2014 MOLEKYLÆRBIOLOGI

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

FINAL EXAM IN STA-2001

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

INF Logikk og analysemetoder Forslag til løsning på oppgave fra læreboken

Kartleggingsskjema / Survey

Eksamen ENG1002/1003 Engelsk fellesfag Elevar og privatistar/elever og privatister. Nynorsk/Bokmål

Exam in Quantum Mechanics (phys201), 2010, Allowed: Calculator, standard formula book and up to 5 pages of own handwritten notes.

PATIENCE TÅLMODIGHET. Is the ability to wait for something. Det trenger vi når vi må vente på noe

Eksamen i TFY4230 STATISTISK FYSIKK Onsdag 21. desember, :00 19:00

stjerneponcho for voksne star poncho for grown ups

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

TMA4329 Intro til vitensk. beregn. V2017

The exam consists of 2 problems. Both must be answered. English

SERVICE BULLETINE

Medisinsk statistikk, KLH3004 Dmf, NTNU Styrke- og utvalgsberegning

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet BIOKJEMISK INSTITUTT

Dagens tema: Eksempel Klisjéer (mønstre) Tommelfingerregler

UNIVERSITY OF OSLO. Make sure that your copy of this examination paperis complete before answering.

Oppgåvesettet er på 3 sider med oppgåvene Engelsk omsetjing på sidene 4-6.

Gir vi de resterende 2 oppgavene til én prosess vil alle sitte å vente på de to potensielt tidskrevende prosessene.

HØGSKOLEN I NARVIK - SIVILINGENIØRUTDANNINGEN

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 13. juni 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 10 sider. Vedlegg: Tillatte hjelpemidler: Ingen vedlegg Alle trykte og skrevne Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Oppgavene og deloppgavene kan til en stor grad løses uavhengig av hverandre. Om det er en deloppgave du ikke har løst, så kan du anta at du har løst den og kan prøve å gå videre i settet. Legg vekt på å finne enkle og elegante løsninger! Poengtallene angitt i parentes for hver oppgave er veiledende. Alle svar skal begrunnes godt! Alle hjelpefunksjoner, sorter, etc., du trenger må selvfølgelig defineres fullt ut. English! This exam is given in English after the Norwegian part, from page 6 onwards. (Fortsettes på side 2.)

Eksamen i INF 3230, 13. juni 2013 Side 2 Oppgave 1 Subset Sum (27 poeng) I subset sum -problemet har vi gitt et multisett av positive tall, og skal sjekke om det er mulig å plukke ut noen av disse tallene slik at deres sum er lik et ønsket tall. For eksempel, fra multisettet {7, 3, 5, 12} er det mulig å plukke ut en delmengde med sum 7 (bare å plukke det første tallet), og det er mulig å plukke ut en delmengde med sum 15 (plukk de tre første), og så videre. Det finnes ingen delmengde med sum 4, 9 eller 14. Vi har gitt den forventede data typen for slike multisett: sort MSet. subsort NzNat < MSet. op none : -> NzNat [ctor]. op : MSet MSet -> MSet [ctor assoc comm id: none]. 1a Definere Subset Sum (12 poeng) Definér en funksjon op subsetsum : MSet NzNat -> Bool. i Maude slik at subsetsum(s, n) er true hvis og bare man kan plukke ut delmengde av multisettet s med sum n, og er false hvis et slikt utplukk ikke finnes. 1b Subset Sum med gjenbruk av tall (7 poeng) Anta nå at du kan bruke et tall i mengden så mange ganger du ønsker for å oppnå den ønskede summen av utplukket. For eksempel, gitt en mengde {5, 13, 11}, kan du nå plukke ut elementer med totalsum 27 (bruk 5 én gang og 11 to ganger) og 58 (bruk alle elementene to ganger hver), men ikke med totalsum 17 eller 19, for eksempel. Definér en funksjon op multisubsetsum : MSet NzNat -> Bool. i Maude slik at multisubsetsum(s, n) er true hvis og bare man kan plukke ut vilkårlig mange av hvert element i multisettet s slik at totalsummen av elementene i utplukket blir n, og er false hvis et slikt utplukk ikke finnes. 1c Terminering av multisubsetsum (8 poeng) Forklar hvorfor din definisjon av funksjonen multisubsetsum er terminerende ved å forklare at hvert rekursive kall på multisubsetsum minsker en velfundert vekt av argumentene. (Fortsettes på side 3.)

Eksamen i INF 3230, 13. juni 2013 Side 3 Oppgave 2 Terminering (29 poeng) (Husk nok engang på at alle svar skal bevises eller begrunnes meget godt) La S 1 og S 2 være de følgende (forholdsvis like) spesifikasjonene: S 1 = {f(x, g(h(x, y))) = f(h(g(x), y), h(g(x), g(f(x, y))))} og S 2 = {f(x, g(h(x, y))) = f(h(g(x), y), h(g(x), g(f(x, y)))), f(x, z) = h(x, z)}. 2a Forenklingsordninger I (10 poeng) Finnes det en forenklingsordning som kan brukes til å bevise terminering av S 1? 2b Forenklingsordninger II (9 poeng) Finnes det en forenklingsordning som kan brukes til å bevise terminering av S 2? 2c Vektfunksjoner (10 poeng) Finnes det en vektfunksjon som brukes til å bevise at S 1 terminerer? (Med dette mener jeg at det finnes en velfundert partielt ordnet mengde (D, >) og en vektfunksjon w fra grunntermer inn i D slik at hvert steg t u er vektminskende.) Oppgave 3 Tårnene i Hanoi (44 poeng) Tårnene i Hanoi er et klassisk spill hvor man har gitt m pinner og n ringer av ulik størrelse (kun én ring av hver størrelse). Én av pinnene er målpinnen. Initielt er alle ringene satt på ett av tårnene, slik at den største ringen er nederst, den nest største er nest nederst, og så videre, med den minste ringen øverst. Reglene i spillet er som følger: Man kan ta den øverste ringen fra hvilken som helst pinne og sette den på hvilken som helst annen pinne, men slik at man aldri setter en større ring oppå en mindre ring. Målet er at alle ringene skal havne på målpinnen (i riktig størrelses-rekkefølge). For m = 3 finnes det en optimal algoritme for å løse dette problemet; dvs., en algoritme som løser oppgaven med færrest mulige flyttinger. For m = 4 (dvs., for 4 pinner) har man ennå ikke funnet en effektiv optimal algoritme. (I denne oppgaven vil vi faktisk ende opp med generell algoritme som alltid finner det optimale spillet!) Figuren til venstre nedenfor viser en tilstand (som kan være en starttilstand) for m = 3 og n = 10. Figuren til høyre viser en lovlig tilstand midt i spillet for m = 3 og n = 7. (Fortsettes på side 4.)

Eksamen i INF 3230, 13. juni 2013 Side 4 Vi modellerer spillet med en mengde pinner, hvor hver pinne er på formen peg p hasstack ringer Hver pinne har et tall p som gir pinnen et navn (dette navnet er ellers uinteressant). Vi nummererer pinnene fortløpende fra 1 til m, hvor pinne 1 har alle ringene i initialtilstanden og pinne m er målpinnen. Hver ring modelleres av et tall fra 1 til n, hvor 1 representer den minste ringen, 2 den nest minste ringen, osv., og n representer den største ringen. Vi bruker følgende data typer til å representere tilstandene i spillet: sort ListNat. subsort NzNat < ListNat. op nil : -> ListNat [ctor]. op _::_ : ListNat ListNat -> ListNat [ctor assoc id: nil]. sorts Peg Pegs. subsort Peg < Pegs. op peg_hasstack_ : NzNat ListNat -> Peg [ctor]. op none : -> Pegs [ctor]. op : Pegs Pegs -> Pegs [ctor assoc comm id: none]. Pinnen i midten på figuren til høyre ville for eksempel representeres av termen peg 2 hasstack 6 :: 5 :: 2 :: 1 3a Modellere spillet (10 poeng) Spesifisér i Maude alle mulige trekk som kan gjøres i dette spillet. Viktig: du trenger ikke å modellere det faktum at spillet egentlig skulle stoppe når alle ringene er på målpinnen. Dvs., hvis du ønsker det kan man godt fortsette spillet selv når alle ringene er på målpinnen. (Fortsettes på side 5.)

Eksamen i INF 3230, 13. juni 2013 Side 5 3b Initialtilstand (6 poeng) Definér en funksjon op init : NzNat NzNat -> Pegs. i Maude slik at init(m,n) definerer en initialtilstand av spillet med m pinner og n ringer. 3c Terminering og konfluens (6 poeng) Er regelmengden din terminerende? Er den konfluent? (En eventuell ligningsmengde i din definisjon skal selvsagt være både terminerende og konfluent.) 3d Finne et optimalt spill (8 poeng) Beskriv hvordan du ville bruke Maude til å finne et optimalt spill (d.v.s. færrest mulig steg for å komme fra initialtilstanden til en tilstand hvor alle ringene er på målpinnen) for et spill med 4 pinner og 5 ringer. Eventuelle Maude-kommandoer du bruker må skrives fullt ut. 3e Temporale egenskaper (7 poeng) Gitt følgende tilstandsutsagn: 1. Ingen ring hviler på en mindre ring. 2. Det er minst én ring på to eller flere pinner. 3. Alle ringene er på målpinnen. Hvilke(n) av disse er invariant, garantert, stabilt og/eller oppnåelig med hensyn til initialtilstand init(4,5)? 3f Sjekke invarians (7 poeng) Hvilken Maude-kommando ville du bruke for å analysere hvorvidt den første egenskapen over som er en invariant mht init(4,5) faktisk er en invariant for init(4,5)? Hvilket svar forventer du fra Maude? Lykke til! Peter C. Ölveczky (Fortsettes på side 6.)

Eksamen i INF 3230, 13. juni 2013 Side 6 The Exam in English The exercises can, to a certain degree, be solved independently of each other. If you have not solved an exercise, you may assume that you have solved it and can continue with the other exercises. Emphasize simplicity and elegance in your solutions. All answers should be explained/justified. All auxiliary functions, sorts, etc., that you need must obviously be defined. Exercise 1: Subset Sum (27 points) In the Subset Sum problem we are given a multiset of positive (natural) numbers, and want to check whether it is possible to select a subset of these numbers whose sum equals a desired value. From the multiset {7, 3, 5, 12} we can select a subset with sum 7 (just select the first element), and it is possible to select a subset with sum 15 (select, e.g., the first three elements). However, there is no subset with sum 4, 9, or 14. Our multisets are defined as follows: sort MSet. subsort NzNat < MSet. op none : -> NzNat [ctor]. op : MSet MSet -> MSet [ctor assoc comm id: none]. Exercise 1a: Defining Subset Sum (12 points) Define a function op subsetsum : MSet NzNat -> Bool. in Maude such that subsetsum(s, n) equals true if and only if there is a subset of s whose elements sum is n, and equals false if no such subset exists. Exercise 1b: Subset Sum with Reuse of Elements (7 points) Assume that you can use an element in the (multi)set as many times as you want to get the desired sum of the selection. For example, given a set {5, 13, 11}, we can select elements with sum 27 (use 5 once and 11 twice) and another subset with sum 58 (use each element twice), but we cannot select any subset with sum 17 or 19. Define a function (Fortsettes på side 7.)

Eksamen i INF 3230, 13. juni 2013 Side 7 op multisubsetsum : MSet NzNat -> Bool. in Maude such that multisubsetsum(s, n) equals true if and only if one can select any number of each element in s such that the sum of those numbers is n, and equals false if no such subset exists. Exercise 1c: Termination of multisubsetsum (8 points) Explain why your definition of multisubsetsum is terminating by explaining that each recursive call to multisubsetsum decreases a well-founded weight of the arguments of the function. Exercise 2: Termination (29 points) Let S 1 and S 2 be the following specifications (S 2 just adds an equation to S 1 ): S 1 = {f(x, g(h(x, y))) = f(h(g(x), y), h(g(x), g(f(x, y))))} and S 2 = {f(x, g(h(x, y))) = f(h(g(x), y), h(g(x), g(f(x, y)))), f(x, z) = h(x, z)}. (Remember that all answers must be proved or justified very well.) Exercise 2a: Simplification Orderings I (10 points) Is there a simplification ordering that can prove termination of S 1? Exercise 2b: Simplification Orderings II (9 points) Is there a simplification ordering that can prove termination of S 2? Exercise 2c: Weight Functions (10 points) Is there a weight function that can be used to prove termination of S 1? (By this I mean that there is a well-founded partially ordered set (D, >) and a weight function mapping each ground term to an element in D such that each simplification step t u is weight-decreasing.) (Fortsettes på side 8.)

Eksamen i INF 3230, 13. juni 2013 Side 8 Exercise 3: Towers of Hanoi (44 points) The Towers of Hanoi is a classic game where you are given m pegs (or rods ) and n disks of different sizes which can slide onto any peg/rod. The puzzle starts with the disks in a neat stack in ascending order of size on one peg, the smallest at the top, thus making a conical shape. The objective of the puzzle is to move the entire stack to another peg, called the target peg, while obeying the following rules: Only one disk may be moved at a time. Each move consists of taking the upper disk from one of the pegs and sliding it onto some other peg, on top of the other disks that may already be present on that peg. No disk may be placed on top of a smaller disk. For m = 3 there is an optimal algorithm to solve this problem; i.e., an algorithm that solves the problem with the smallest number of moves. For four pegs (m = 4) there is no known (decently fast) algorithm that finds the optimal game. (In this exercise we will end up with a general algorithm that always finds the optimal game!) The figure on the left below shows a state of the game for m = 3 and n = 10; this could be the initial state and the rightmost peg could be the target peg. The figure on the right below shows a legal state in the middle of the game for m = 3 and n = 7. We model the game with a set of pegs, each of which is represented by a term of the form peg p hasstack disks Each peg has a number p identifying the peg; we number the pegs from 1 to m, where the peg 1 has all the disks in the initial state and where peg m is the target peg. Each disk is modeled by a natural number, where the smallest disk is represented by the number 1, the second smallest is represented by the number 2, and so on. We use the following data types to represent the states in the game: (Fortsettes på side 9.)

Eksamen i INF 3230, 13. juni 2013 Side 9 sort ListNat. subsort NzNat < ListNat. op nil : -> ListNat [ctor]. op _::_ : ListNat ListNat -> ListNat [ctor assoc id: nil]. sorts Peg Pegs. subsort Peg < Pegs. op peg_hasstack_ : NzNat ListNat -> Peg [ctor]. op none : -> Pegs [ctor]. op : Pegs Pegs -> Pegs [ctor assoc comm id: none]. The middle peg in the figure on the right would therefore be represented by the term peg 2 hasstack 6 :: 5 :: 2 :: 1 Exercise 3a: Modeling the Game (10 points) Specify all the possible moves that are possible in this game in Maude. Note: You do not need to stop when all the disks are on the target peg. That is, if you want, the player could be allowed to continue to move even after all the disks are on the target peg. Exercise 3b: Defining Initial States (6 points) Define a function op init : NzNat NzNat -> Pegs. in Maude such that init(m, n) defines an initial state with m pegs and n disks. Exercise 3c: Termination and Confluence (6 points) Are your rules terminating? Are they confluent? (Any equations in your specification must of course be terminating and confluent.) Exercise 3d: Finding the Optimal Game (8 points) Explain how you would use Maude to find the optimal game; i.e., the smallest sequence of steps/moves from an initial state to one where all the disks are on the target peg, for a setting with 4 pegs and 5 disks. Any Maude commands used must must be given explicitly. (Fortsettes på side 10.)

Eksamen i INF 3230, 13. juni 2013 Side 10 Exercise 3e: Temporal Properties (7 points) Given the following state propositions: 1. No disk is on top of a smaller disk. 2. There is a disk on two or more pegs. 3. All the disks are on the target peg. For each of these state propositions: is it invariant, guaranteed, stable, and/or reachable w.r.t. initial state init(4,5)? Exercise 3f: Analyze Invariance (7 points) Which Maude command would you use to analyze whether or not the first of the above state properties that actually is invariant w.r.t. initial state init(4,5) indeed is an invariant w.r.t. init(4,5)? What should be the result of the Maude execution? Good luck! Peter C. Ölveczky