The purpose of this project if for me to develop some Haskell experience, as well as exploring the current Haskell SAT/SMT ecosystem.
This is a solution to a variant of the problem specified here using SAT/SMT. This problem was part of the 2016/2017 course on Algorithms for Computational Logic at IST, University of Lisbon. You can find an already existing solution to this problem here using SAT (C++ and MiniSat), SMT (Python3 and Z3) and CSP (Python3 and MiniZinc).
The input files can be found in "./input".
As of now, I have a solution to the problem using the picosat package. In the future I intend to also use ersatz and sbv.
The solution does not assume that "for each VM ν ∈ V , cpu_req(ν) = 1 and ram_req(ν) = 1" as stated at the beginning of page 2 of the spec.