Drake
Drake C++ Documentation
Loading...
Searching...
No Matches
MaxCliqueSolverViaMip Class Referencefinal

Detailed Description

Solves the maximum clique problem to global optimality by solving the mixed-integer program.

Maximize ∑ᵢ xᵢ subject to xᵢ + xⱼ ≤ 1 if (i,j) is not in the edge xᵢ ∈ {0,1}.

Note: This solver requires the availability of a Mixed-Integer Linear Programming solver (e.g. Gurobi and/or Mosek). We recommend enabling those solvers if possible (https://drake.mit.edu/bazel.html#proprietary_solvers).

Exceptions
std::exceptionif no Mixed-Integer Linear Programming solver is available.
std::exceptionif the initial guess has the wrong size for the provided adjacency matrix.

#include <drake/planning/graph_algorithms/max_clique_solver_via_mip.h>

Public Member Functions

 MaxCliqueSolverViaMip ()=default
 MaxCliqueSolverViaMip (const std::optional< Eigen::VectorXd > &initial_guess, const solvers::SolverOptions &solver_options)
void SetSolverOptions (const solvers::SolverOptions &solver_options)
solvers::SolverOptions GetSolverOptions () const
void SetInitialGuess (const std::optional< Eigen::VectorXd > &initial_guess)
std::optional< Eigen::VectorXd > GetInitialGuess () const
Implements CopyConstructible, CopyAssignable, MoveConstructible, MoveAssignable
 MaxCliqueSolverViaMip (const MaxCliqueSolverViaMip &)=default
MaxCliqueSolverViaMipoperator= (const MaxCliqueSolverViaMip &)=default
 MaxCliqueSolverViaMip (MaxCliqueSolverViaMip &&)=default
MaxCliqueSolverViaMipoperator= (MaxCliqueSolverViaMip &&)=default
Public Member Functions inherited from MaxCliqueSolverBase
virtual ~MaxCliqueSolverBase ()
VectorX< bool > SolveMaxClique (const Eigen::SparseMatrix< bool > &adjacency_matrix) const
 Given the adjacency matrix of an undirected graph, find the maximum clique within the graph.

Additional Inherited Members

Protected Member Functions inherited from MaxCliqueSolverBase
 MaxCliqueSolverBase ()=default
 MaxCliqueSolverBase (const MaxCliqueSolverBase &)=default
MaxCliqueSolverBaseoperator= (const MaxCliqueSolverBase &)=default
 MaxCliqueSolverBase (MaxCliqueSolverBase &&)=default
MaxCliqueSolverBaseoperator= (MaxCliqueSolverBase &&)=default

Constructor & Destructor Documentation

◆ MaxCliqueSolverViaMip() [1/4]

MaxCliqueSolverViaMip ( const MaxCliqueSolverViaMip & )
default

◆ MaxCliqueSolverViaMip() [2/4]

MaxCliqueSolverViaMip ( MaxCliqueSolverViaMip && )
default

◆ MaxCliqueSolverViaMip() [3/4]

MaxCliqueSolverViaMip ( )
default

◆ MaxCliqueSolverViaMip() [4/4]

MaxCliqueSolverViaMip ( const std::optional< Eigen::VectorXd > & initial_guess,
const solvers::SolverOptions & solver_options )

Member Function Documentation

◆ GetInitialGuess()

std::optional< Eigen::VectorXd > GetInitialGuess ( ) const
nodiscard

◆ GetSolverOptions()

solvers::SolverOptions GetSolverOptions ( ) const
nodiscard

◆ operator=() [1/2]

MaxCliqueSolverViaMip & operator= ( const MaxCliqueSolverViaMip & )
default

◆ operator=() [2/2]

MaxCliqueSolverViaMip & operator= ( MaxCliqueSolverViaMip && )
default

◆ SetInitialGuess()

void SetInitialGuess ( const std::optional< Eigen::VectorXd > & initial_guess)

◆ SetSolverOptions()

void SetSolverOptions ( const solvers::SolverOptions & solver_options)

The documentation for this class was generated from the following file: