The weighted s-Plex problem
🔗

The weighted s-Plex problem

Time
📅 2023📍Vienna, Austria 🎓 TU Wien
git
🐱 github
Comment
Heuristic optimisation techniques to solve the wsPlex problem
Tags
python
optimization
heuristic

Context

This project has been conducted in duo with Joan Salvà Soler for a lecture at TU Wien. It might be the most complex problem I approached and its vulgarization isn’t easy.
notion image

Project

The Weighted s-Plex Editing Problem (WsPEP) is a generalisation of the Graph Editing Problem. The idea is to create connected components from an initial graph by cutting or adding edges. Every operation has a cost and the goal is to obtain a valid result at least cost.
formal description of the project (technical)
We consider the Weighted s-Plex Editing Problem (WsPEP), which is a generalization of the s-Plex Editing Problem which in itself is a generalization of the Graph Editing Problem. We are given an undirected graph G=(V,E)G=(VE), a positive integer value ss, and a symmetric weight matrix WW which assigns every (unordered) vertex pair (i,j):i,j∈V,i≠j(ij):ijVi=j a non-negative integer weight wijwij​. An s-Plex of a graph is a subset of vertices S⊆VSV such that each vertex has degree at least ∣S∣−s∣S∣−s and there exist no edges to vertices outside the s-Plex, i.e., i,j∈V,i∈S,j∉S  ⟹  (i,j)∉EijViSj∈/S⟹(ij)∈/E. Note that a clique (complete graph on a vertex subset) is a 1-plex. The goal is to edit the edges of the graph by deleting existing edges and/or inserting new edges such that the edited graph consists only of non-overlapping s-Plexes and such that the sum over all weights of the edited edges is minimal. Let a candidate solution be represented by variables xij∈{0,1},i,j∈V,i<jxij​∈{0,1},ijVi<j, where a value 1 indicates that edge (i,j)(ij) is either inserted (if (i,j)∉E(ij)∈/E) or deleted (if (i,j)∈E(ij)∈E) and a value 0 indicates that the edge is not edited. The objective function is then given by min⁡f(x)=∑(i,j)∈Ewijxijminf(x)=∑(ij)∈Ewijxij​.
In essence, the problem is about adding or removing edges from a graph such that the resulting graph has all its connected components having the s-Plex property. The edges are weighted, so you
 
Example of graph edition, here we obtain 2 fully connected component by cutting 2 (dotted red) edges and creating (red) one
Example of graph edition, here we obtain 2 fully connected component by cutting 2 (dotted red) edges and creating (red) one
This type of problem have many solutions and the challenge is not to find one but to optimize its cost. The project was about using different techniques to find low cost solution. Here is the list of methods:
  • Construction Heuristics: Greedy and Randomized Greedy construction heuristics
  • GRASP: Greedy Randomized Adaptive Search Procedure on top of the Randomized Greedy construction heuristic
  • Local Search: Iterated Local Search with the construction heuristic as the initial solution. The neighborhood structures considered are
    • Swap nodes: Swap two nodes in the solution
    • k-flips: Remove k edges from the solution
    • Move nodes: Move nodes from one s-Plex to another
  • VND: Variable Neighborhood Descent
  • Simulated Annealing: Simulated Annealing with the construction heuristic as the initial solution.
  • BRKGA: Biased Random Key Genetic Algorithm
  • ACO: Ant Colony Optimization