org.ddolibscala.example.misp

This package implements the acs, astar and ddo models for the Maximum Independent Set Problem (MISP).

Given a weighted graph 𝐺 = (𝑉,𝐸,𝑀) where 𝑉= {1,...,𝑛} is a set of vertices, 𝐸 \subset 𝑉 ×𝑉 the set of edges connecting those vertices and 𝑀 = {𝑀1,𝑀2,...,𝑀𝑛} is a set of weights s.t. 𝑀𝑖 is the weight of node 𝑖. The problem consists in finding a subset of vertices in a graph such that no edge exists in the graph that connects two of the selected nodes and the sum of the weight of the selected nodes is maximal.

Attributes

Members list

Type members

Classlikes

object MispAstarMain

Example of MISP resolution with A* solver

Example of MISP resolution with A* solver

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object MispDdoMain

Example of MISP resolution with DDO Solver.

Example of MISP resolution with DDO Solver.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
class MispDominance extends Dominance[BitSet]

Implementation of a dominance relation for the Maximum Independent Set Problem (MISP).

Implementation of a dominance relation for the Maximum Independent Set Problem (MISP).

In this context, one state state1 is considered dominated by another state state2 if all vertices selected in state1 are also selected in state2. This allows pruning suboptimal states during the search.

Attributes

Supertypes
trait Dominance[BitSet]
trait Dominance[BitSet]
class Object
trait Matchable
class Any
class MispFlb(problem: MispProblem) extends FastLowerBound[BitSet]

Compute a org.ddolibscala.modeling.FastLowerBound for the Maximum Independent Set Problem (MISP).

Compute a org.ddolibscala.modeling.FastLowerBound for the Maximum Independent Set Problem (MISP).

Value parameters

problem

the associated MISP problem instance

Attributes

Supertypes
trait FastLowerBound[BitSet]
trait FastLowerBound[BitSet]
class Object
trait Matchable
class Any
object MispProblem

Companion object of the MispProblem class.

Companion object of the MispProblem class.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
class MispProblem(nodes: BitSet, val neighbors: Array[BitSet], val weights: Array[Int], _optimal: Option[Double]) extends Problem[BitSet]

Represents an instance of the Maximum Independent Set Problem (MISP) as a org.ddolibscala.modeling.Problem.

Represents an instance of the Maximum Independent Set Problem (MISP) as a org.ddolibscala.modeling.Problem.

The problem is defined on a weighted undirected graph. Each node can either be included in the independent set or not, and selected nodes cannot be adjacent.

The state of the problem is represented by a Set indicating which nodes can still be selected. The solver explores decisions for each node to build an independent set of maximum weight.

Value parameters

_optimal

the value of the optimal solution if known

neighbors

adjacency list for each node

nodes

all the nodes of the graph

weights

weight of each node

Attributes

Companion
object
Supertypes
trait Problem[BitSet]
trait Problem[BitSet]
class Object
trait Matchable
class Any
class MispRanking extends StateRanking[BitSet]

Implements a ranking strategy for states in the Maximum Independent Set Problem (MISP).

Implements a ranking strategy for states in the Maximum Independent Set Problem (MISP).

The ranking is based on the number of remaining nodes in the state: a state with more remaining nodes is considered more promising for exploration in a decision diagram.

Attributes

Supertypes
trait StateRanking[BitSet]
trait StateRanking[BitSet]
trait Comparator[BitSet]
class Object
trait Matchable
class Any
Show all
class MispRelaxation extends Relaxation[BitSet]

Implements a relaxation strategy for the Maximum Independent Set Problem (MISP) to be used in decision diagram optimization (DDO) algorithms.

Implements a relaxation strategy for the Maximum Independent Set Problem (MISP) to be used in decision diagram optimization (DDO) algorithms.

This relaxation defines how to merge multiple states and how to adjust transition costs when exploring the relaxed search space.

In this implementation:

  • The merged state is computed as the union of all given states, meaning all nodes that are available in at least one state are considered available in the merged state.
  • The edge relaxation does not modify the transition cost; it returns the original cost.

Attributes

Supertypes
trait Relaxation[BitSet]
trait Relaxation[BitSet]
class Object
trait Matchable
class Any