• Non ci sono risultati.

Formal Method Mod. 1 (Automated Reasoning) Laboratory 6 Giuseppe Spallitta giuseppe.spallitta@unitn.it

N/A
N/A
Protected

Academic year: 2021

Condividi "Formal Method Mod. 1 (Automated Reasoning) Laboratory 6 Giuseppe Spallitta giuseppe.spallitta@unitn.it"

Copied!
26
0
0

Testo completo

(1)

Formal Method Mod. 1 (Automated Reasoning)

Laboratory 6

Giuseppe Spallitta

giuseppe.spallitta@unitn.it

Università degli studi di Trento

April 21, 2021

(2)

Q&A: define-fun using functions

I

We can use define-fun not only to initialize the value of a variable, but also to initialize the value of a function accepting input arguments!

I

Let’s define f (x, y ) as the function computing the remainder between x and y:

(declare-const x Int) (declare-const y Int)

(define-fun f ((x Int) (y Int)) (mod x y))

Giuseppe Spallitta 1/21

(3)

Q&A: generic functions

I

The only way to define generic functions (given a generic input, the output is constrained by a formula) would be using the foall function:

(declare-fun isEven (Int) Bool)

(assert (forall ((y Int)) (= (isEven y) (= 0 (mod y 2)) )))

I

Currently MathSAT does not support it, but other SMT

solvers enable it, such as z3 (try it using this link

https://compsys-tools.ens-lyon.fr/z3/index.php).

Giuseppe Spallitta 2/21

(4)

Outline

1. Introduction on OptiMathSAT

2. OMT exercises

3. Automating SMT encoding

4. Homeworks

(5)

OptiMathSAT

I

OptiMathSAT is an extension of MathSAT 5.

I

OptiMathSAT allows for incremental multi-objective optimization over linear arithmetic objective functions

I

OptiMathSAT supports a wide range of theories (including e.g.

equality and uninterpreted functions, linear arithmetic, bit-vectors, and arrays).

I

More information can be found here:

http://optimathsat.disi.unitn.it/index.html

Giuseppe Spallitta 1. Introduction on OptiMathSAT

3/21

(6)

OptiMathSAT input format: Extended SMT-LIB

I

OptiMathSAT accepts SMT-LIB as input format, enriching it with some additional commands and instructions to enable the optimization tasks.

I

All the available extensions are listed in the following page:

http://optimathsat.disi.unitn.it/pages/

smt2reference.html.

I

OptiMathSAT also accept a second input format, a subset of a constraint programming paradigm called FlatZinc, that we won’t cover in this course.

Giuseppe Spallitta 1. Introduction on OptiMathSAT

4/21

(7)

Outline

1. Introduction on OptiMathSAT 2. OMT exercises

1)

Operational research planning

2)

Shortest path problem

3)

Maximum clique

3. Automating SMT encoding

4. Homeworks

(8)

Selling apples

Exercise 6.1: farming

There are 50 apple trees in an orchard. Each tree produces 800 apples. For each additional tree planted in the orchard, the output per tree drops by 10 apples. How many trees should be added to the existing orchard in order to maximize the total output of trees ?

Giuseppe Spallitta 2. OMT exercises

5/21

(9)

Selling apples: variables

As always, we first define the variables that efficiently describe the problem:

I

We are interested in knowing the number of additional trees we can plant without losing profit. We call this variable n.

I

n should be instanciated as Int.

Giuseppe Spallitta 2. OMT exercises

6/21

(10)

Selling apples: properties

I

The total number of trees we will plant will be 50 + n.

I

For each additional tree planted, each tree will produce fewer apples, following the equation 800 - 10n.

I

The problem should be set as a maximization problem over the total number of produced apples, obtained as the product between the two numbers.

⇒ Remember you could maximize complex cost functions, not only single variables.

Giuseppe Spallitta 2. OMT exercises

7/21

(11)

Calcutating graph properties

Exercise 6.2: shortest path

Use OptiMathSAT to compute the shortest path between G and B.

Giuseppe Spallitta 2. OMT exercises

8/21

(12)

Shortest path: variables

As always, we first define the variables that efficiently describe the problem:

I

For each node we require a variable, storing the value of the current shortest path from node G.

I

Consequently we must declare Int variables.

Giuseppe Spallitta 2. OMT exercises

9/21

(13)

Shortest path: properties

I

The starting point score should be set to 0.

I

For the other nodes we must define the possible constraints to update their score, considering that each edge could modify its score.

I

The problem should be set as a minimization problem over B (but we can also choose the other points).

I

We can extend the encoding to generalize the problem to two generics points, instead of fixing the starting point.

Giuseppe Spallitta 2. OMT exercises

10/21

(14)

Calcutating graph properties

Exercise 6.3: maximum clique

Use OptiMathSAT to compute the maximum clique on the graph. A clique is a subset of vertices of an undirected graph such that every two distinct vertices in the clique are adjacent.

Giuseppe Spallitta 2. OMT exercises

11/21

(15)

Maximum clique: variables

As always, we first define the variables that efficiently describe the problem:

I

For each node we require a variable, storing if they can be used to define a clique.

I

We declare Int variables, using them as 0-1 variables to state their membership to the clique.

I

Why not using Bool? We will define a PseudoBoolean (PB) SMT problem, nut an equivalent PB SAT problem can be instantiated to achieve the same result.

Giuseppe Spallitta 2. OMT exercises

12/21

(16)

Maximum clique: properties

I

The main idea is that if two nodes are not connected by an edge, then we must ensure that not both of them are chosen:

x

i

+ x

j

≤ 1 (1)

I

Now we should find the maximum number of nodes that can satisfy the constraints, thus belonging to the clique

Giuseppe Spallitta 2. OMT exercises

13/21

(17)

Maximum clique: properties

I

We can define a penalty function that increases by 1 every time one variable does not belong to the clique (its value is not 1).

I

Our goal will be minimizing this penalty function: the higher the better.

I

Using MaxSAT will consider this condition: each assertion must be declared as a soft clause, if it is not satisfied by the assignment a penalty (chosen by the user, default is 1) is added to the final penalty score. Just be sure to use the same weight for each soft clause (there is no priority).

Giuseppe Spallitta 2. OMT exercises

14/21

(18)

Outline

1. Introduction on OptiMathSAT 2. OMT exercises

3. Automating SMT encoding

4. Homeworks

(19)

Connect dots

Exercise 6.4: connect dots

Use MathSAT to solve the puzzle shown in the figure. The rules are simple: you must connect dots with the same color with a single line and all cells must be used to generate a valid solution.

Giuseppe Spallitta 3. Automating SMT encoding

15/21

(20)

Connect dots: variables

As always, we first define the variables that efficiently describe the problem:

I

For each cell of the grid a variable

I

Creating an Int-to-Color mapping (thus setting Int as variable type) is enough for our goal.

Giuseppe Spallitta 3. Automating SMT encoding

16/21

(21)

Connect dots: properties (1)

I

For each cell we must ensure their value is in the range of the admitted color. Setting both lower and upper bound is enough.

I

In each line connecting two dots, the following properties always holds:

I The extremes have one neighbor cell with the same color.

I The internal nodes of the lines two neighbor cells with the same color.

Giuseppe Spallitta 3. Automating SMT encoding

17/21

(22)

Connect dots: properties (2)

I

Both conditions can be encoded using respectively AtLeastOne and AtLeastTwo.

I

According to our reasoning we should use ExactlyOne and ExactlyTwo, but the AtLeast operators are sufficient to

correctly constrain the problem in our case (and it is simpler to encode).

I

If you provide the ExactlyOne encodings you’ll obtain the same result, so feel free to implement it.

Giuseppe Spallitta 3. Automating SMT encoding

18/21

(23)

Outline

1. Introduction on OptiMathSAT 2. OMT exercises

3. Automating SMT encoding

4. Homeworks

(24)

Minimum cover set

Homework 6.1: minimum vertex cover

A vertex-cover set of an undirected graph is a subset of vertices such that if an edge belongs to the graph, then at least one of the two nodes linked by this edges belong to the vertex-cover subset. Use OptiMathSAT to compute the minimum vertex-cover set of the graph in figure.

Giuseppe Spallitta 4. Homeworks

19/21

(25)

Homeworks

Homework 6.2: checking professor’s interpolants Find two non-negative numbers x and y so that:

I

Their sum is 9.

I

The product of one number and the square of the other number is a maximum in the range (0, 200).

Giuseppe Spallitta 4. Homeworks

20/21

(26)

Homeworks

Homework 6.3: graph coloring... again

Solve the color graph problem again with the following map of countries (so you must ensure adjacent countries do not have the same color). This time use OMT to retrieve the minimum number of color that satisfy the problem.

Giuseppe Spallitta 4. Homeworks

21/21

Riferimenti

Documenti correlati

I NEGATION is represented as (not <var>) I OR is represented as (or <var1> <var2>) I AND is represented as (and <var1> <var2>) I IF is represented

I To easily retrieve the solution when the solver returns SAT, we can create an additional variable to store the value of y once we reached the end of the loop... Checking

specifies a constraint on the values that a variable can assume in the next state, given the value of variables in the current state. next(<variable>)

I verification: properties must hold only on fair paths I Currently, compassion constraints have some limitations.. (are supported only for BDD-based LTL

I initial state: all animals are on the right side I goal state: all animals are on the left side I rules:. I the ferryman can cross the river with at most one passenger on

I if the robot is in “pos” 0 and the budget is smaller than 100, then the next state is “CHARGE”. I if the budget is 0, then the next state

I ./nuXmv -time -int : start nuXmv interactively and enable commands for timed models. I go_time : process

I URGENT : freeze time: when one of the URGENT conditions is satisfied only discrete transitions are allowed;.. HyComp: input