From 8e32acecac66ad7de8666ff492b62cc9b9c7dd38 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Fri, 23 Oct 2015 09:43:54 +0200 Subject: [PATCH] cleaned up old directory --- ar/assignments/.gitignore | 1 - ar/assignments/1.tex | 114 --------------------------------- ar/assignments/2.tex | 121 ------------------------------------ ar/assignments/3.tex | 76 ---------------------- ar/assignments/4.tex | 112 --------------------------------- ar/assignments/Makefile | 18 ------ ar/assignments/a.tex | 22 ------- ar/assignments/ar.tex | 21 ------- ar/assignments/preamble.tex | 30 --------- ar/assignments/prnijm.pdf | Bin 58998 -> 0 bytes ar/assignments/s2.png | Bin 14250 -> 0 bytes ar/assignments/s3.png | Bin 7129 -> 0 bytes ar/assignments/src/a1.bash | 5 -- ar/assignments/src/a1.smt | 60 ------------------ ar/assignments/src/a2.bash | 1 - ar/assignments/src/a2.py | 71 --------------------- ar/assignments/src/a3.bash | 5 -- ar/assignments/src/a3.py | 47 -------------- ar/assignments/src/a4.bash | 5 -- ar/assignments/src/a4.py | 60 ------------------ 20 files changed, 769 deletions(-) delete mode 100644 ar/assignments/.gitignore delete mode 100644 ar/assignments/1.tex delete mode 100644 ar/assignments/2.tex delete mode 100644 ar/assignments/3.tex delete mode 100644 ar/assignments/4.tex delete mode 100644 ar/assignments/Makefile delete mode 100644 ar/assignments/a.tex delete mode 100644 ar/assignments/ar.tex delete mode 100644 ar/assignments/preamble.tex delete mode 100644 ar/assignments/prnijm.pdf delete mode 100644 ar/assignments/s2.png delete mode 100644 ar/assignments/s3.png delete mode 100644 ar/assignments/src/a1.bash delete mode 100644 ar/assignments/src/a1.smt delete mode 100644 ar/assignments/src/a2.bash delete mode 100644 ar/assignments/src/a2.py delete mode 100644 ar/assignments/src/a3.bash delete mode 100644 ar/assignments/src/a3.py delete mode 100644 ar/assignments/src/a4.bash delete mode 100644 ar/assignments/src/a4.py diff --git a/ar/assignments/.gitignore b/ar/assignments/.gitignore deleted file mode 100644 index 9aa6a64..0000000 --- a/ar/assignments/.gitignore +++ /dev/null @@ -1 +0,0 @@ -output.log diff --git a/ar/assignments/1.tex b/ar/assignments/1.tex deleted file mode 100644 index 8506da9..0000000 --- a/ar/assignments/1.tex +++ /dev/null @@ -1,114 +0,0 @@ -\section{Problem 1} -{\em -Six trucks have to deliver pallets of obscure building blocks to a magic -factory. Every truck has a capacity of 7800 kg and can carry at most -eight pallets. In total, the following has to be delivered: -\begin{itemize} - \item Four pallets of nuzzles, each of weight 700 kg. - \item A number of pallets of prittles, each of weight 800 kg. - \item Eight pallets of skipples, each of weight 1000 kg. - \item Ten pallets of crottles, each of weight 1500 kg. - \item Five pallets of dupples, each of weight 100 kg. -\end{itemize} -Prittles and crottles are an explosive combination: they are not allowed to be -put in the same truck. - -Skipples need to be cooled; only two of the six trucks have facility for -cooling skipples. Dupples are very valuable; to distribute the risk of loss no -two pallets of dupples may be in the same truck. - -Investigate what is the maximum number of pallets of prittles that can be -delivered, and show how for that number all pallets may be divided over the six -trucks. -} - -\newpage -\subsection{Formal definition} -For every truck $t_i$ for $i\in T$ where $T=\{1,\ldots,6\}$ in combination with -every nuzzle $n$, prittle $p$, skipple $s$, crottle $c$ and dupple $d$ we -declare a variable that holds the amount of that type of building block in that -truck. We group all pallets $r\in P$ where $P=\{n,p,s,c,d\}$. We also -define function $w(r)$ that defines the weight of the pallet and $n(r)$ that -defines the number of pallets needed. - -This leads to the following formalization where we maximize $n(p)$. - -\begin{align} - \bigwedge^{T}_{i=1}\Biggl( - & \bigwedge_{r\in P}t_{i}r\geq0\\ - & \wedge \sum_{r\in P}t_{i}r\leq8\\ - & \wedge \left(\sum_{r\in P}t_{i}r\cdot w(r)\right)\leq7800)\\ - & \wedge (t_{i}p=0\vee t_{i}c=0)\\ - & \wedge t_{i}d\leq1\\ - & \wedge (t_{i}=t_{1} \vee t_{i}=t_{2} \vee t_{i}s=0)\Biggr)\wedge\\ - \bigwedge_{r\in P}\Biggl( - & \left(\sum^{T}_{i=1}t_{i}r\right)=n(r)\Biggr) -\end{align} - -Every numbered subformula describes a constraint from the problem description. -We can separated the subformulas in formulas going over all trucks and formulas -going over all pallets. - -\begin{itemize} - \item \textbf{Trucks} - \begin{enumerate} - \item Makes sure you can not have a negative number of pallets - in a truck by stating that the number of pallets in a - truck is not smaller then $0$. - \item Makes sure you can not have more then $8$ pallets in a - truck by stating that the sum of all pallets in a truck - is not bigger then $8$. - \item Makes sure the weight will never go over the maximum - weight per truck by stating that all the pallets times - their weight in a truck will not go over $7800$kg. - \item Makes sure prittles and crottles are never together in a - truck by stating that either the number of prittles is - zero or the number of crottles is zero in a truck. - \item Makes sure that skipples are only in the first two cooled - trucks by stating that if the truck number not one or - two the number of skipples is zero. - \end{enumerate} - \item \textbf{Pallets} - \begin{enumerate} - \setcounter{enumi}{6} - \item Makes sure that all mandatory pallets are transported by - summing over all trucks and assuring the number of the - pallets of that type is exactly $n(r)$. - \end{enumerate} -\end{itemize} - -\subsection{SMT format solution} -The formula is easily convertable to SMT format and is listed in -Listing~\ref{listing:a1.smt}. The maximization is done by incrementing a -special variable called \texttt{} which is an instantiation of $n(p)$. -When the iteration yields unsat we know that the current number minus one is -the maximum amount of prittles the trucks can carry. The maximization is done -with a bash script shown in Listing~\ref{listing:1.bash}. - -\lstinputlisting[language=bash, - caption={Iteratively find the largest solution for problem 1}, - label={listing:1.bash}]{src/a1.bash} - -\subsection{Solution} -The bash script finds and shows the maximal solution of $18$ prittles. Finding -this solution takes less then $0.12$ seconds and is shown in Table~\ref{tab:s1}. - -\begin{table}[H] - \begin{tabular}{|l|lllll|l|l|} - \hline - Truck & Nuzzles & Prittles & Skipples & Crottles & Dupples & - Weight & Pallets\\ - \hline - 1 & 0 & 0 & 4 & 2 & 1 & 7100 & 7\\ - 2 & 0 & 3 & 4 & 0 & 1 & 6500 & 8\\ - 3 & 0 & 8 & 0 & 0 & 0 & 6400 & 7\\ - 4 & 0 & 7 & 0 & 0 & 1 & 5700 & 8\\ - 5 & 0 & 0 & 0 & 5 & 1 & 7600 & 6\\ - 6 & 4 & 0 & 0 & 3 & 1 & 7400 & 8\\ - \hline - total & 4 & 18 & 8 & 10 & 5 & &\\ - \hline - \end{tabular} - \caption{Solution visualization for problem 1} -\label{tab:s1} -\end{table} diff --git a/ar/assignments/2.tex b/ar/assignments/2.tex deleted file mode 100644 index 7fd4047..0000000 --- a/ar/assignments/2.tex +++ /dev/null @@ -1,121 +0,0 @@ -\section{Problem 2} -{\em - Give a chip design containing three power components and eight regular -components satisfying the following constraints: - -\begin{itemize} - \item The width of the chip is 29 and the height is 22. - \item All power components have width 4 and height 2. - \item The sizes of the eight regular components are $9\times7$, - $12\times6,$ $10\times7,$ $18\times5,$ $20\times4,$ - $10\times6,$ $8\times6$ and $10\times8$ respectively. - \item All components may be turned 90, but may not overlap. - \item In order to get power, all regular components should directly be - connected to a power component, that is, an edge of the - component should have at least one point in common with an edge - of the power component. - \item Due to limits on heat production the power components should be - not too close: their centres should differ at least $17$ in - either the $x$ direction or the $y$ direction (or both). -\end{itemize} -} - -\newpage -\subsection{Formal definition} -For every component $c_{i}$ for $i\in PC\cup RC$ where $PC=\{1,\ldots,3\}$ and -$RC=\{4,\ldots,11\}$ we define a width, a height, an $x$ and a $y$ variables -$c_{i}w$, $c_{i}h$, $c_{i}x$ and $c_{i}y$. $c_ih$ does not necessarily have the -specified height of the components since the components may be rotated. For the -specified width and height we introduce the functions $h(c)$ and $w(c)$ that -return the specified width and height. - -This leads to the following formalization. - -\begin{align} - \bigwedge_{i\in PC\cup RC}\Biggl( - & (c_{i}h=h(i)\vee c_{i}h=w(i))\wedge(c_{i}w=w(i)\vee c_{i}w=h(i))\\ - & \wedge 29-c_{i}w\geq c_{i}x>0\wedge 22-c_{i}h\geq c_{i}y>0\\ - & \wedge \bigwedge_{j\in PC\cup RC}\Bigl(j\geq i\\ - \nonumber & \qquad\qquad\qquad \vee c_{i}x>c_{j}x+c_{j}w\\ - \nonumber & \qquad\qquad\qquad \vee c_{i}x+c_{j}wc_{j}y+c_{j}h\\ - \nonumber & \qquad\qquad\qquad - \vee c_{i}y+c_{j}h17\\ - \nonumber & \vee c_{j}x+\nicefrac{c_{j}w}{2}- - c_{i}x+\nicefrac{c_{i}w}{2}>17\\ - \nonumber & \vee c_{i}y+\nicefrac{c_{i}h}{2}- - c_{j}y+\nicefrac{c_{j}h}{2}>17\\ - \nonumber & \vee c_{j}y+\nicefrac{c_{j}h}{2}- - c_{i}y+\nicefrac{c_{i}h}{2}>17\Biggr)\wedge\\ - \bigwedge_{i\in RC}\bigvee_{j\in PC}\neg\Biggl( - & (c_{i}x-1>c_{j}x+c_{j}w\\ - \nonumber & \vee c_{i}x+1+c_{j}wc_{j}y+c_{j}h\\ - \nonumber & \vee c_{i}y+1+c_{j}h0\wedge j_{i}+ij_{k}+k\Biggr)\\ - & \wedge \bigwedge_{i\in J'}\bigwedge_{k\in J'} - i=j\vee j_{i}>j_{k}+k \vee j_{i}+i50$ and some other -$a_i= a_j\wedge i\neq j$ for all $i$. This is expressed in -Equation~\ref{eq:4pst} - -\begin{equation}\label{eq:4pst} - \bigvee_{k=2}^{I-1}\left( - (i_Na_k >= 50)\wedge - \left(\bigvee_{j=2}^{I-1}(i_Na_k=i_Na_j)\wedge(k\neq j)\right) - \right) -\end{equation} - -\paragraph{Total} -To tie this all together we just put $\wedge$ in between and that results in: -$$\text{precondition }\wedge\text{ program }\wedge\text{ postcondition}$$ - -\subsection{SMT format solution} -Naming the precondition, program and postcondition respectively $p_1, p_2, p_3$ -we can easily convert it to a SMT format. The converting is tedious and takes a -lot of time and therefore an automatization script has been created that is -visible in the appendices in Listing~\ref{listing:4.py}. The script -automatically assumes $11$ iterations and $7$ $a_i$ variables but via command -line arguments this is easily extendable. To determine the minimal number of -iterations a simple bash script can be made that iteratively increases the -iterations as shown in Listing~\ref{listing:4bash}. The shortest solution with -length $11$ is found in around $30$ seconds. Finding the smallest solution -length incrementally takes around $75$ seconds. - -\begin{lstlisting}[language=bash, - caption={Iteratively find the shortest solution},label={listing:4bash}] -i=1 -while [ "$(python a4.py $i | yices-smt)" = "unsat" ] -do - echo $((++i)); -done -\end{lstlisting} - -\subsection{Solution} -The iterative solution terminates with $i=11$ so the minimum number of steps -required is $11$. When we rerun the solution with $11$ steps and the -\texttt{-m} flag we can see the solution as in Table~\ref{tab:s4}. -The bold cells represent the $a_i$ after applying the function. After ten -iterations cell $a_2$ and $a_6$ both hold $54$ thus satisfying the problem -specification. -\begin{table}[H] - \begin{tabular}{c|c|ccccc} - \# & $i$ & $a_2$ & $a_3$ & $a_4$ & $a_5$ & $a_6$\\ - \hline - $0$ & - & $2$ & $3$ & $4$ & $5$ & $6$\\ - $1$ & $4$ & $2$ & $3$ & $\bm{8}$ & $5$ & $6$\\ - $2$ & $5$ & $2$ & $3$ & $8$ & $\bm{14}$ & $6$\\ - $3$ & $2$ & $\bm{4}$ & $3$ & $8$ & $14$ & $6$\\ - $4$ & $4$ & $4$ & $3$ & $\bm{17}$ & $14$ & $6$\\ - $5$ & $5$ & $4$ & $3$ & $17$ & $\bm{23}$ & $6$\\ - $6$ & $6$ & $4$ & $3$ & $17$ & $23$ & $\bm{30}$\\ - $7$ & $5$ & $4$ & $3$ & $17$ & $\bm{47}$ & $30$\\ - $8$ & $4$ & $4$ & $3$ & $\bm{50}$ & $47$ & $30$\\ - $9$ & $3$ & $4$ & $\bm{54}$ & $50$ & $47$ & $30$\\ - $10$ & $6$ & $4$ & $54$ & $50$ & $47$ & $\bm{54}$ - \end{tabular} -\caption{Solution table for problem 4} -\label{tab:s4} -\end{table} diff --git a/ar/assignments/Makefile b/ar/assignments/Makefile deleted file mode 100644 index 4cfb119..0000000 --- a/ar/assignments/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -LATEX:=pdflatex - -DOCUMENT:=ar -SOURCES:=$(filter-out preamble.tex,$(shell ls *.tex)) - -.SECONDARY: $(addsuffix .fmt,$(DOCUMENT)) - -all: $(DOCUMENT).pdf - -%.pdf: %.tex %.fmt $(SOURCES) - $(LATEX) $(basename $@) - $(LATEX) $(basename $@) - -%.fmt: preamble.tex - $(LATEX) -ini -jobname="$(basename $@)" "&$(LATEX) $<\dump" - -clean: - $(RM) -v $(addprefix $(DOCUMENT).,fmt aux bbl blg dvi log out toc pdf) diff --git a/ar/assignments/a.tex b/ar/assignments/a.tex deleted file mode 100644 index e0ac8a3..0000000 --- a/ar/assignments/a.tex +++ /dev/null @@ -1,22 +0,0 @@ -\section{Appendix} -\begin{lstlisting}[caption={Benchmark system}] -OS: Linux 3.16.0-4-amd64 #1 SMP Debian 3.16 x86_64 GNU/Linux -CPU: 3600MHz AMD FX(tm)-4100 Quad-Core Processor -RAM: 8GB -\end{lstlisting} - -\newpage -\lstinputlisting[language=lisp,caption={a1.smt}, - label={listing:a1.smt}]{src/a1.smt} - -\newpage -\lstinputlisting[language=python,caption={a2.py}, - label={listing:a2.py}]{src/a2.py} - -\newpage -\lstinputlisting[language=python,caption={a3.py}, - label={listing:a3.py}]{src/a3.py} - -\newpage -\lstinputlisting[language=python,caption={a4.py}, - label={listing:a4.py}]{src/a4.py} diff --git a/ar/assignments/ar.tex b/ar/assignments/ar.tex deleted file mode 100644 index 94e25f9..0000000 --- a/ar/assignments/ar.tex +++ /dev/null @@ -1,21 +0,0 @@ -%&ar -\begin{document} -\maketitle -\tableofcontents - -\newpage -\input{1.tex} - -\newpage -\input{2.tex} - -\newpage -\input{3.tex} - -\newpage -\input{4.tex} - -\newpage -\input{a.tex} - -\end{document} diff --git a/ar/assignments/preamble.tex b/ar/assignments/preamble.tex deleted file mode 100644 index a401ca6..0000000 --- a/ar/assignments/preamble.tex +++ /dev/null @@ -1,30 +0,0 @@ -\documentclass{article} - -\usepackage{hyperref} -\usepackage{a4wide} -\usepackage{bm} -\usepackage{float} -\usepackage{graphicx} -\usepackage{amsmath} -\usepackage{listings} -\usepackage{nicefrac} - -\everymath{\displaystyle\allowdisplaybreaks} - -\lstset{% - basicstyle=\scriptsize, - breakatwhitespace=true, - breaklines=true, - keepspaces=true, - numbers=left, - numberstyle=\tiny, - frame=L, - showspaces=false, - showstringspaces=false, - showtabs=false, - tabsize=2 -} - -\author{Mart Lubbers (s4109503)} -\title{Automated reasoning Assignment 1} -\date{\today} diff --git a/ar/assignments/prnijm.pdf b/ar/assignments/prnijm.pdf deleted file mode 100644 index a65fb821045f134ac0ed36d858ef031d180f2602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58998 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

&zwEh!~5wOeD8o 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 VQTNV)|9pp`DECaZ;K}oM{|_>%Lw5iG diff --git a/ar/assignments/s3.png b/ar/assignments/s3.png deleted file mode 100644 index 46e9e75473c821dd72d7d33544b800db2f477c2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7129 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/$i/g" a1.smt | yices-smt) = "sat" ]; do - i=$((i+1)) -done -sed "s//$((i-1))/g" a1.smt | yices-smt -m diff --git a/ar/assignments/src/a1.smt b/ar/assignments/src/a1.smt deleted file mode 100644 index cf5342e..0000000 --- a/ar/assignments/src/a1.smt +++ /dev/null @@ -1,60 +0,0 @@ -(benchmark a1.smt -:logic QF_UFLIA -:extrafuns ( - (t1p Int) (t1n Int) (t1s Int) (t1c Int) (t1d Int) - (t2p Int) (t2n Int) (t2s Int) (t2c Int) (t2d Int) - (t3p Int) (t3n Int) (t3s Int) (t3c Int) (t3d Int) - (t4p Int) (t4n Int) (t4s Int) (t4c Int) (t4d Int) - (t5p Int) (t5n Int) (t5s Int) (t5c Int) (t5d Int) - (t6p Int) (t6n Int) (t6s Int) (t6c Int) (t6d Int) -) -:formula -(and - (>= t1p 0) (>= t1n 0) (>= t1s 0) (>= t1c 0) (>= t1d 0) - (>= t2p 0) (>= t2n 0) (>= t2s 0) (>= t2c 0) (>= t2d 0) - (>= t3p 0) (>= t3n 0) (>= t3s 0) (>= t3c 0) (>= t3d 0) - (>= t4p 0) (>= t4n 0) (>= t4s 0) (>= t4c 0) (>= t4d 0) - (>= t5p 0) (>= t5n 0) (>= t5s 0) (>= t5c 0) (>= t5d 0) - (>= t6p 0) (>= t6n 0) (>= t6s 0) (>= t6c 0) (>= t6d 0) - - (<= (+ t1p t1n t1s t1c t1d) 8) - (<= (+ t2p t2n t2s t2c t2d) 8) - (<= (+ t3p t3n t3s t3c t3d) 8) - (<= (+ t4p t4n t4s t4c t4d) 8) - (<= (+ t5p t5n t5s t5c t5d) 8) - (<= (+ t6p t6n t6s t6c t6d) 8) - - (<= (+ (* t1n 700) (* t1p 800) (* t1s 1000) (* t1c 1500) (* t1d 100)) 7800) - (<= (+ (* t2n 700) (* t2p 800) (* t2s 1000) (* t2c 1500) (* t2d 100)) 7800) - (<= (+ (* t3n 700) (* t3p 800) (* t3s 1000) (* t3c 1500) (* t3d 100)) 7800) - (<= (+ (* t4n 700) (* t4p 800) (* t4s 1000) (* t4c 1500) (* t4d 100)) 7800) - (<= (+ (* t5n 700) (* t5p 800) (* t5s 1000) (* t5c 1500) (* t5d 100)) 7800) - (<= (+ (* t6n 700) (* t6p 800) (* t6s 1000) (* t6c 1600) (* t6d 100)) 7800) - - (or (= 0 t1p) (= 0 t1c)) - (or (= 0 t2p) (= 0 t2c)) - (or (= 0 t3p) (= 0 t3c)) - (or (= 0 t4p) (= 0 t4c)) - (or (= 0 t5p) (= 0 t5c)) - (or (= 0 t6p) (= 0 t6c)) - - (<= t1d 1) - (<= t2d 1) - (<= t3d 1) - (<= t4d 1) - (<= t5d 1) - (<= t6d 1) - - (= t3s 0) - (= t4s 0) - (= t5s 0) - (= t6s 0) - - (= (+ t1n t2n t3n t4n t5n t6n) 4) - (= (+ t1s t2s t3s t4s t5s t6s) 8) - (= (+ t1c t2c t3c t4c t5c t6c) 10) - (= (+ t1d t2d t3d t4d t5d t6d) 5) - - (>= (+ t1p t2p t3p t4p t5p t6p) ) -) -) diff --git a/ar/assignments/src/a2.bash b/ar/assignments/src/a2.bash deleted file mode 100644 index 5462573..0000000 --- a/ar/assignments/src/a2.bash +++ /dev/null @@ -1 +0,0 @@ -python3 a2.py | yices-smt -m diff --git a/ar/assignments/src/a2.py b/ar/assignments/src/a2.py deleted file mode 100644 index e5852e6..0000000 --- a/ar/assignments/src/a2.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env python3 -pc = [(4, 2), (4, 2), (4, 2)] -rc = [(9, 7), (12, 6), (10, 7), (18, 5), (20, 4), (10, 6), (8, 6), (10, 8)] -mx = 29 -my = 22 -pd = 17 - -# Print preamble -print("(benchmark a4.smt") -print(":logic QF_UFLIA") - -# Print variables -print(":extrafuns (") -for i, (w, h) in enumerate(pc+rc, 1): - print("(c{:02d}x Int)".format(i), end=' ') - print("(c{:02d}y Int)".format(i), end=' ') - print("(c{:02d}w Int)".format(i), end=' ') - print("(c{:02d}h Int)".format(i)) -print(")") - -print(":formula") -print("(and") - -# Print the PC and RC subformulas -for i, (w, h) in enumerate(pc+rc, 1): - # Print the width and height - print(( - '(or ' - '(and (= c{0:02d}w {1}) (= c{0:02d}h {2})) ' - '(and (= c{0:02d}w {2}) (= c{0:02d}h {1})))').format(i, w-1, h-1)) - - # Print the bounds of the coordinates - print(( - '(> c{0:02d}x 0) (> c{0:02d}y 0)' - '(<= (+ c{0:02d}x c{0:02d}w) {1}) (<= (+ c{0:02d}y c{0:02d}h) {2})' - ).format(i, mx, my)) - - # Print the non overlap with others - for j in range(1, 1+len(pc+rc)): - if i != j: - print(( - '(or ' - '(> c{0:02d}x (+ c{1:02d}x c{1:02d}w)) (< (+ c{0:02d}x c{0:02d}w) c{1:02d}x) ' - '(> c{0:02d}y (+ c{1:02d}y c{1:02d}h)) (< (+ c{0:02d}y c{0:02d}h) c{1:02d}y)' - ')').format(i, j)) - - # Print the PC distance to eachother -for i, _ in enumerate(pc, 1): - for j, _ in enumerate(pc, 1): - if i != j: - print(( - '(or ' - '(> (- (+ c{0:02d}x (/ c{0:02d}w 2) ) (+ c{1:02d}x (/ c{1:02d}w 2) ) ) {2} ) ' - '(> (- (+ c{1:02d}x (/ c{1:02d}w 2)) (+ c{0:02d}x (/ c{0:02d}w 2))) {2}) ' - '(> (- (+ c{0:02d}y (/ c{0:02d}h 2)) (+ c{1:02d}y (/ c{1:02d}h 2))) {2}) ' - '(> (- (+ c{1:02d}y (/ c{1:02d}h 2)) (+ c{0:02d}y (/ c{0:02d}h 2))) {2})' - ')').format(i, j, pd)) - - # Print the constraint that they have to be connected to a ps -for i, _ in enumerate(rc, 1+len(pc)): - print('(or') - for j, _ in enumerate(pc, 1): - print(( - '(not (or ' - '(> c{0:02d}x (+ c{1:02d}x 1 c{1:02d}w)) (< (+ c{0:02d}x c{0:02d}w) (- c{1:02d}x 1)) ' - '(> c{0:02d}y (+ c{1:02d}y 1 c{1:02d}h)) (< (+ c{0:02d}y c{0:02d}h) (- c{1:02d}y 1))' - '))').format(i, j)) - print(')') - -# Close the and,benchmark parenthesis -print("))") diff --git a/ar/assignments/src/a3.bash b/ar/assignments/src/a3.bash deleted file mode 100644 index 115f1fd..0000000 --- a/ar/assignments/src/a3.bash +++ /dev/null @@ -1,5 +0,0 @@ -i=1 -while [ $(python3 a3.py $i | yices-smt) = "unsat" ]; do - i=$((i+1)) -done -python3 a3.py $i | yices-smt -m diff --git a/ar/assignments/src/a3.py b/ar/assignments/src/a3.py deleted file mode 100644 index a295c8d..0000000 --- a/ar/assignments/src/a3.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python3 -import sys - -if len(sys.argv) != 2: - print("usage: {} maxjobstart".format(sys.argv[0])) - exit() - -maxjobstart = sys.argv[1] -jobs = 12 -J = range(1, jobs+1) -Jprime = {5, 7, 10} -pi = { - 3: {1,2}, - 5: {3,4}, - 7: {3,4,6}, - 9: {5,8}, - 11: {10}, - 12: {9,11} -} - -# Print preamble -print("(benchmark a4.smt") -print(":logic QF_UFLIA") - -# Print variables -print(":extrafuns (") -for i in J: - print("(j{} Int)".format(i), end=' ') -print("\n)") - -print(":formula") -print("(and") -for i in J: - # Make sure the times are positive and within the bound - print("(> j{0} 0) (<= (+ j{0} {0}) {1})".format(i, maxjobstart)) - # Make sure the dependencies are done when a task is scheduled - for k in pi.get(i, {}): - print("(>= j{0} (+ j{1} {1}))".format(i, k)) -# Make sure the shared resources are not used by two tasks at once -for i in Jprime: - for k in Jprime: - if i != k: - print("(or (>= j{0} (+ j{1} {1}))".format(i,k), end=' ') - print("(<= (+ j{0} {0}) j{1}))".format(i,k)) - -# Close the and,benchmark parenthesis -print("))") diff --git a/ar/assignments/src/a4.bash b/ar/assignments/src/a4.bash deleted file mode 100644 index 569e152..0000000 --- a/ar/assignments/src/a4.bash +++ /dev/null @@ -1,5 +0,0 @@ -i=1 -while [ $(python3 a4.py $i | yices-smt) = "unsat" ]; do - i=$((i+1)) -done -python3 a3.py $i | yices-smt -m diff --git a/ar/assignments/src/a4.py b/ar/assignments/src/a4.py deleted file mode 100644 index 51d5347..0000000 --- a/ar/assignments/src/a4.py +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env python3 -import sys -iterations = int(sys.argv[1]) if len(sys.argv) > 1 else 11 -numa = int(sys.argv[2]) if len(sys.argv) > 2 else 7 - -##Print preamble -print("(benchmark a4.smt") -print(":logic QF_UFLIA") - -##Print variables -print(":extrafuns (") -print("(a{} Int)".format(1)) -print("(a{} Int)".format(numa)) -for i in range(iterations): - for v in range(2,numa): - print("(i{}a{} Int) ".format(i,v)) - print("(c{} Int)".format(i)) -print(")") - -##Print preconditions -print(":formula") -print("(and") -print("(= c0 0)") -print("(= a1 1)") -print("(= a{0} {0})".format(numa, numa)) -for i in range(2,numa): - print("(= i0a{0} {0})".format(i)) - -##Print iterations -for i in range(1, iterations): - print("(or") - for v in range(2, numa): - print("(and") - print("(= c{} {})".format(i, v)) - for ov in [k for k in range(2, numa) if k != v]: - print("(= i{0}a{1} i{2}a{1})".format(i, ov, i-1)) - im1 = 'a1' if v == 2 else 'i{}a{}'.format(i, v-1) - ip1 = 'a{}'.format(numa) if v == numa-1 else 'i{}a{}'.format(i-1, v+1) - print("(= i{}a{} (+ {} {}))".format(i, v, im1, ip1)) - print(")") - print("(and") - print("(= c{} 0)".format(i)) - for ov in range(2, numa): - print("(= i{0}a{1} i{2}a{1})".format(i, ov, i-1)) - print(")") - print(")") - - -## Post conditions -print("(or") -for v in range(2, numa): - print("(and (>= i{}a{} 50)".format(iterations-1, v)) - print("(or") - for ov in [k for k in range(2, numa) if k != v]: - print("(= i{0}a{1} i{0}a{2})".format(iterations-1, v, ov)) - print("))") -print(")") - -## Close the and,benchmark parenthesis -print("))") -- 2.20.1