83 lines
2.6 KiB
TeX
83 lines
2.6 KiB
TeX
%************************************************
|
|
\chapter{Experiment Resources}%
|
|
\label{ch:benchmarks}
|
|
%************************************************
|
|
|
|
\noindent{}All experiments included in this thesis were conducted on a dedicated node in a computational cluster.
|
|
The machine operates using a \textbf{Intel Xeon 8260} \gls{cpu}, which has 24 non-hyperthreaded cores, and has access to \textbf{268.55 GB} of \gls{ram}.
|
|
Each experimental test was given exclusive access to a single \gls{cpu} core and access to sufficient \gls{ram}.
|
|
|
|
\section{Software}%
|
|
\label{sec:bench-soft}
|
|
|
|
\subsection{MiniZinc Flattener}
|
|
|
|
In this thesis we use three different versions of the \minizinc\ flattening tool
|
|
|
|
\subsection{MiniZinc Solvers}
|
|
|
|
\paragraph{Gecode}
|
|
\paragraph{Chuffed}
|
|
\paragraph{IBM CPLEX}
|
|
\paragraph{Gurobi}
|
|
|
|
\section{MiniZinc Models}%
|
|
\label{sec:bench-models}
|
|
|
|
\paragraph{QCP-Max} This problem was introduced in by Feydy et al. in the original paper on \gls{half-reif} \autocite{feydy-2011-half-reif}. \jip{...}
|
|
|
|
\begin{mzn}
|
|
include "all_different.mzn";
|
|
|
|
int: n; % size
|
|
array[1..n,1..n] of 0..n: s; % 0 = unfixed 1..n = fixed
|
|
array[1..n,1..n] of var 1..n: q; % qcp array;
|
|
|
|
constraint forall(i,j in 1..n where s[i,j] > 0)(q[i,j] = s[i,j]);
|
|
|
|
solve maximize
|
|
sum(i in 1..n)(all_different([q[i,j] | j in 1..n])) +
|
|
sum(j in 1..n)(all_different([q[i,j] | i in 1..n]));
|
|
\end{mzn}
|
|
|
|
\paragraph{Prize Collecting Path} This problem was introduced in by Feydy et al. in the original paper on \gls{half-reif} \autocite{feydy-2011-half-reif}. \jip{...}
|
|
|
|
\begin{mzn}
|
|
include "alldifferent_except_0.mzn";
|
|
|
|
int: n; % size
|
|
array[1..n,0..n] of int: p; % prize for edge (i,j), p[i,0] = 0
|
|
|
|
array[1..n] of var 0..n: next; % next posn in tour
|
|
array[1..n] of var 0..n: pos; % posn on node i in path, 0=notin
|
|
array[1..n] of var int: prize = [p[i,next[i]] | i in 1..n];
|
|
% prize for outgoing edge
|
|
|
|
constraint forall(i in 1..n)(
|
|
(pos[i] = 0 <-> next[i] = 0) /\
|
|
(next[i] > 1 -> pos[next[i]] = pos[i] + 1)
|
|
);
|
|
|
|
constraint alldifferent_except_0(next) /\ pos[1] = 1;
|
|
|
|
solve minimize sum(i in 1..n)(prize[i]);
|
|
\end{mzn}
|
|
|
|
\begin{mzn}
|
|
include "subcircuit.mzn";
|
|
|
|
int: n; % size
|
|
array[1..n,1..n] of int: p; % prize for edge (i,j), p[i,i] = 0
|
|
|
|
array[1..n] of var 0..n: next; % next posn in tour
|
|
array[1..n] of var int: prize = [p[i,next[i]] | i in 1..n];
|
|
% prize for outgoing edge
|
|
|
|
constraint subcircuit(next);
|
|
|
|
solve minimize sum(i in 1..n)(prize[i]);
|
|
\end{mzn}
|
|
|
|
\section{Benchmark Environments}%
|
|
\label{sec:bench-programs}
|