The Minimum Weighted Crossings with Constraints Problem (MWCCP) is a generalization of the Minimum Crossings Problem.
We are given an undirected weighted bipartite graph
-
Node sets:
-
U = {1, ..., m}
: the first partition. -
V = {m + 1, ..., n}
: the second partition.
-
-
U
andV
are disjoint. -
Edge set:
$E ⊆ U × V$ , consisting of edges between the two partitions. -
Edge weights:
$w_e = w_{u,v}$ for$e = (u, v) ∈ E$ .
Precedence constraints
where
The nodes of the graph
- The first layer contains all nodes in
$U$ , arranged in fixed label order1, ..., m
. - The second layer contains all nodes in
$V$ , arranged in an order to be determined.
The goal is to find an ordering of the nodes in
- The weighted edge crossings are minimized.
- All precedence constraints
$C$ are satisfied.
A candidate solution is represented by a permutation
A solution is feasible if all precedence constraints
where
The objective is to minimize the following function:
The indicator function
-
$1$ , if$pos_π(v) > pos_π(v')$ -
$0$ , otherwise
This formulation ensures that the weighted crossings are minimized while satisfying all precedence constraints.
source
is a folder containing the python code for the different heuristics usedreport_1.pdf
contains a description of the Local Search, VND, GVNS, and GRASP heuristics used, as well as detailed results and analysis of how these techniques perform when applied to different instances of the MWCPPreport_2.pdf
contains a description of the Genetic Algorithm and Ant Colony Optimization metaheuristics used and results and comparisons between them