UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 4231 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 12. juni 2014 Tid for eksamen: 9.00 13.00 Oppgavesettet er på 9 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 4231, 12. juni 2014 Side 2 Oppgave 1 Terminering (24 poeng) 1. Finnes det en forenklingsordning som kan brukes til å bevise at spesifikasjonen { g(g(x)) = f(g(h(x))) } terminerer? Bevis (eller begrunn godt) ditt svar. 2. Finnes det en forenklingsordning som kan brukes til å bevise at spesifikasjonen { f(x, h(b)) = f(x, g(x)) } terminerer? Bevis (eller begrunn godt) ditt svar. 3. Finnes det en forenklingsordning som kan brukes til å bevise at spesifikasjonen { g(g(x)) = f(g(h(x))), f(h(g(x))) = g(h(x)) } terminerer? Bevis (eller begrunn godt) ditt svar. Oppgave 2 Konfluens (26 poeng) Gi et eksempel på en likhetsspesifikasjon som er lokalt konfluent, men som ikke er (globalt) konfluent. Oppgave 3 Travel Salgsmann (52 poeng) Et klassisk problem innen informatikk er travel salgsmann-problemet ( traveling salesman på engelsk). Her er det gitt en mengde byer, og en kostnad for hvert par av byer som sier hvor mye det koster å reise (direkte) mellom disse byene. Den travle salgsmannen må starte fra hjembyen og må så besøke alle de andre byene før han vender hjem til hjembyen. Men av ymse grunner (f. eks. borgerkrig) får salgsmannen ikke besøke samme by to ganger (hvis man ser bort fra at han starter og slutter i samme by). Byene representeres av en datatype sorts City Cities. subsort City < Cities. op none : -> Cities [ctor]. op _;_ : Cities Cities -> Cities [ctor assoc comm id: none]. op cities : -> Cities. hvor cities er en konstant som gir alle byene i systemet. Vi antar også at det er gitt en funksjon op cost : City City -> Nat [comm]. som angir kostnaden av en (direkte) reise mellom to byer. Et eksempel på en definisjon av cities og cost er følgende: (Fortsettes på side 3.)
Eksamen i INF 4231, 12. juni 2014 Side 3 ops PhnomPenh SiemReap Sisophon Battambang KompongSom : -> City [ctor]. eq cities = PhnomPenh ; SiemReap ; Sisophon ; Battambang ; KompongSom. eq cost(phnompenh, SiemReap) = 2. eq cost(phnompenh, KompongSom) = 4. eq cost(phnompenh, Sisophon) = 9. eq cost(phnompenh, Battambang) = 6. eq cost(siemreap, Sisophon) = 3. eq cost(siemreap, Battambang) = 1. eq cost(siemreap, KompongSom) = 3. eq cost(sisophon, Battambang) = 3. eq cost(sisophon, KompongSom) = 7. eq cost(battambang, KompongSom) = 9. En travel-salgsmann-reise som starter og slutter i PhnomPenh og er innom alle byene én gang kunne for eksempel vært oppgavestillerens tur i 1993: PhnomPenh SiemReap Sisophon Battambang KompongSom PhnomPenh. Total kostnad for denne turen er 2 + 3 + 3 + 9 + 4 = 21. Merk forøvrig at den direkte turen mellom PhnomPenh og Sisophon har kostnad 9, mens turen PhnomPenh SiemReap Sisophon koster 2 + 3 = 5. I denne oppgaven skal vi modellere alle mulige reiser som den travle salgsmannen kan foreta. Merk: Du kan anta at enhver tur må innom minst tre byer dersom du ønsker det. Følgende datatype skal benyttes for å representere reiser (som ikke trenger å være avsluttet): sort Trip. subsort City < Trip. op _-->_ : Trip Trip -> Trip [ctor assoc]. 3a Kostnad av en reise (4 poeng) Definér en funksjon op cost : Trip -> Nat. som finner totalkostnaden av en reise (som kan være en ferdig tur eller en uferdig tur). 3b Initialtilstand (4 poeng) Definér en sort State for tilstandene i systemet og definér en funksjon op init : City -> State. som definerer en passende initialtilstand for en travel salgsmann som starter sin reise i den gitte byen. (Det kan lønne seg å løse denne deloppgaven etter å ha løst neste deloppgave.) Enhver tilstand skal inneholde reisen som er foretatt så langt. (Fortsettes på side 4.)
Eksamen i INF 4231, 12. juni 2014 Side 4 3c Modellere alle mulige reiser (13 poeng) Modellér alle mulige oppførslene til en travel salgsmann som et omskrivningssystem i Maude. 3d Finne kort tur (4 poeng) Hvordan kan du bruke Maude til å finne ut om det finnes en (komplett) reise fra init(phnompenh) med totalkostnad mindre enn 21? Enhver Maude-kommando du bruker må skrives fullt ut. 3e Temporallogikk I (4 poeng) Vi ønsker nå å bruke Maude s temporallogikk-modellsjekker til å resonnere om hvorvidt vår modell tilfredsstiller egenskaper uttrykt vha. temporallogikk. Definér i Maude et parametrisk tilstandsutsagn currentlyin, som tar en by som parameter, slik at currentlyin(by) holder i en tilstand hvis og bare hvis den travle handelsreisende er i byen by for øyeblikket. 3f Temporallogikk II (12 poeng) Hvilke(n) av følgende temporallogiske formler holder i vårt system når initialtilstanden er init(phnompenh)? (Husk at alle svar må begrunnes.) 1. currentlyin(phnompenh) 2. currentlyin(sisophon) 3. currentlyin(siemreap) 4. currentlyin(battambang) 5. currentlyin(battambang) 6. currentlyin(phnompenh) 7. currentlyin(sisophon) 3g En ny variant av problemet (11 poeng) Det virker for dumt ikke å kunne besøke samme by flere ganger. For eksempel ville det hjulpet veldig, i tilfelle man var i Sisophon og hadde besøkt alle byene og skulle hjem til PhnomPenh, om man kunne reist hjem via SiemReap i stedet for å ta den dyrere direkteruten mellom Sisophon og PhnomPenh. Man skal selvsagt ikke ta en direktereise fra byen man er i til samme by, men kan ellers besøke hver by så ofte man vil (helt til reisen er ferdig; da må den avsluttes). Modellér den nye versjonen av systemet. Inkludér også en (re)definisjon av funksjonen init. (Fortsettes på side 5.)
Eksamen i INF 4231, 12. juni 2014 Side 5 Lykke til! Peter C. Ölveczky (Fortsettes på side 6.)
Eksamen i INF 4231, 12. juni 2014 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: Termination (24 points) 1. Does there exist a simplification ordering that can be used to prove that the specification { g(g(x)) = f(g(h(x))) } is terminating? Prove/justify your answer. 2. Does there exist a simplification ordering that can be used to prove that the specification { f(x, h(b)) = f(x, g(x)) } is terminating? Prove/justify your answer. 3. Does there exist a simplification ordering that can be used to prove that the specification { g(g(x)) = f(g(h(x))), f(h(g(x))) = g(h(x)) } is terminating? Prove/justify your answer. Exercise 2: Confluence (26 points) Define an equational specification that is locally confluent, but that is not (globally) confluent. Exercise 3: The Traveling Salesman (52 points) In the classic traveling salesman problem, we are given a set of cities that a salesman needs to visit, and a cost for traveling between any pair of cities. The salesman starts his travel in his home town, and must then visit every other city exactly once before finally coming back to his home town. That is, he cannot visit a city twice (apart, obviously, from starting and ending his journey in his home town). Cities are represented by the following data type: sorts City Cities. subsort City < Cities. op none : -> Cities [ctor]. op _;_ : Cities Cities -> Cities [ctor assoc comm id: none]. op cities : -> Cities. (Fortsettes på side 7.)
Eksamen i INF 4231, 12. juni 2014 Side 7 where cities is a constant denoting all the cities that must be visited. A function op cost : City City -> Nat [comm]. defines the cost of traveling (directly) between two cities. In this exercise, we use the following definition of cities and cost: ops PhnomPenh SiemReap Sisophon Battambang KompongSom : -> City [ctor]. eq cities = PhnomPenh ; SiemReap ; Sisophon ; Battambang ; KompongSom. eq cost(phnompenh, SiemReap) = 2. eq cost(phnompenh, KompongSom) = 4. eq cost(phnompenh, Sisophon) = 9. eq cost(phnompenh, Battambang) = 6. eq cost(siemreap, Sisophon) = 3. eq cost(siemreap, Battambang) = 1. eq cost(siemreap, KompongSom) = 3. eq cost(sisophon, Battambang) = 3. eq cost(sisophon, KompongSom) = 7. eq cost(battambang, KompongSom) = 9. A (completed) traveling salesman journey that starts and ends in PhnomPenh and visits each other city exactly once could be the author s 1993 journey: PhnomPenh SiemReap Sisophon Battambang KompongSom PhnomPenh. The total cost of this trip is 2 + 3 + 3 + 9 + 4 = 21. Notice that the direct journey between PhnomPenh and Sisophon has cost 9, whereas the trip PhnomPenh SiemReap Sisophon has cost 2 + 3 = 5. In this exercise we will model and analyze all possible behaviors of a traveling salesman in Maude. Note: You may assume that each trip must visit at least three cities, if you like. The following data type must be used to represent a journey (that may or may not be completed): sort Trip. subsort City < Trip. op _-->_ : Trip Trip -> Trip [ctor assoc]. Exercise 3a: The Cost of a Trip (4 points) Define a function op cost : Trip -> Nat. that gives the total cost of a journey (that may be finished or unfinished). (Fortsettes på side 8.)
Eksamen i INF 4231, 12. juni 2014 Side 8 Exercise 3b: Initial States (4 points) Define a sort State for the states in your system, and define a function op init : City -> State. that defines a suitable initial state for a salesman that starts his journey in the given city. (You might want to solve the next exercise before solving this one.) Each state must contain the journey undertaken so far. Exercise 3c: Modeling All Possible Traveling Salesman Behaviors (13 points) Model all possible behaviors of a traveling salesman as a rewriting logic specification in Maude. Exercise 3d: Finding a Short Trip (4 points) How can you use Maude to find out whether there is a (complete) journey from init(phnompenh) with total cost less than 21? Any Maude command must be given in full. Exercise 3e: Temporal Logic I (4 points) We now wish to use Maude s temporal logic model checker to analyze our model. Define in Maude a parametric state proposition currentlyin, which takes a city as a parameter, such that currentlyin(city) holds in a state if and only if the salesman currently is in the city city. Exercise 3f: Temporal Logic II (12 points) Which of the following temporal logic formulas hold in our system when the initial state is init(phnompenh)? (Remember that all answers must be explained/justified.) 1. currentlyin(phnompenh) 2. currentlyin(sisophon) 3. currentlyin(siemreap) 4. currentlyin(battambang) 5. currentlyin(battambang) 6. currentlyin(phnompenh) 7. currentlyin(sisophon) (Fortsettes på side 9.)
Eksamen i INF 4231, 12. juni 2014 Side 9 Exercise 3g: A New Version of the Traveling Salesman (11 points) It sounds stupid not to be able to visit the same city multiple times, especially if you are standing in Sisophon and need to get back to Phnom Penh after having visited all cities. It seems much more tempting to travel back via Siem Reap instead of doing the costlier direct leg between Sisophon and Phnom Penh. In the new version of the traveling salesman system the salesman can visit any city as often as he wants, until the journey is finished. A salesman should of course not travel directly from a city to the same city. Model the new version of the system. Also include a (re)definition of the function init. Good luck! Peter C. Ölveczky