To prepare the execution environment, you can simply issue the command
pip install -r requirements.txt
from this folder.
VLSI (Very Large Scale Integration) refers to the problem of integrating circuits into silicon chips. Given a fixed-width plate and a list of rectangular circuits, decide how to place them on the plate so that the length of the final plate is minimized. We will address two variants of the problem; in the first each circuit must be placed in a fixed orientation with respect to the others, while in the second case each circuit could be also rotated by 90° degrees.
The problem were addressed following four different approaches:
- CP (Constraint Programming)
- SAT (Boolean Satisfiability problem)
- SMT (Satisfiability Modulo Theories)
- MIP (Mixed Integer Linear Programming)
The data/instances/
folder contains 40 instances of the problem. They are in the format:
w
n
dx_1 dy_1
.
.
.
dx_n dy_n
where w
is the maximum width of the plate, n
is the number of circuits and dx_i
and dy_i
are the sizes of the i
th circuit.
You can find the results that I obtained over all the provided instances in the results/
folder inside each folder associated with the used approach
In the 'docs/' folder of each approach's folder, you can find the PDF report containing all the information regarding the modelling strategies.