|
Limbo 3.5.4
|
#include <ILPColoringLemonCbc.h>
Classes | |
| struct | edge_hash_type |
| hasher class for graph_edge_type More... | |
Public Types | |
| typedef Coloring< GraphType > | base_type |
| typedef GraphType | graph_type |
| typedef boost::graph_traits< graph_type >::vertex_descriptor | graph_vertex_type |
| typedef boost::graph_traits< graph_type >::edge_descriptor | graph_edge_type |
| typedef boost::graph_traits< graph_type >::vertex_iterator | vertex_iterator_type |
| typedef boost::graph_traits< graph_type >::edge_iterator | edge_iterator_type |
| typedef boost::property_traits< typenameboost::property_map< graph_type, boost::edge_weight_t >::const_type >::value_type | edge_weight_type |
| enum | ColorNumType |
| number of colors More... | |
| Public Types inherited from limbo::algorithms::coloring::Coloring< GraphType > | |
| enum | ColorNumType { TWO = 2 , THREE = 3 , FOUR = 4 } |
| number of colors More... | |
| typedef GraphType | graph_type |
| typedef boost::graph_traits< graph_type >::vertex_descriptor | graph_vertex_type |
| typedef boost::graph_traits< graph_type >::edge_descriptor | graph_edge_type |
| typedef boost::graph_traits< graph_type >::vertex_iterator | vertex_iterator_type |
| typedef boost::graph_traits< graph_type >::edge_iterator | edge_iterator_type |
| typedef boost::graph_traits< graph_type >::adjacency_iterator | adjacency_iterator |
| typedef boost::property_traits< typenameboost::property_map< graph_type, boost::edge_weight_t >::const_type >::value_type | edge_weight_type |
| typedef boost::property_traits< typenameboost::property_map< graph_type, boost::edge_index_t >::const_type >::value_type | edge_index_type |
Public Member Functions | |
| ILPColoringLemonCbc (graph_type const &g) | |
| virtual | ~ILPColoringLemonCbc () |
| destructor | |
| Public Member Functions inherited from limbo::algorithms::coloring::Coloring< GraphType > | |
| Coloring (graph_type const &g) | |
| virtual | ~Coloring () |
| destructor | |
| virtual double | operator() () |
| virtual void | color_num (ColorNumType cn) |
| virtual void | color_num (int8_t cn) |
| virtual ColorNumType | color_num () const |
| virtual void | precolor (graph_vertex_type v, int8_t c) |
| virtual bool | has_precolored () const |
| virtual double | stitch_weight () const |
| virtual void | stitch_weight (double w) |
| virtual void | threads (int32_t t) |
| virtual int8_t | color (graph_vertex_type v) const |
| virtual edge_weight_type | edge_weight (graph_edge_type const &e) const |
| virtual edge_weight_type | calc_cost (std::vector< int8_t > const &vColor) const |
| void | check_edge_weight (graph_type const &g, edge_weight_type lb, edge_weight_type ub) const |
| void | print_edge_weight (graph_type const &g) const |
| void | depth_first_search_stitch (graph_vertex_type v, std::vector< int32_t > &stitch_relation_set, std::vector< bool > &visited, uint32_t &stitch_edge_num, int32_t stitch_index) |
| virtual void | write_graph (std::string const &filename) const |
| virtual void | write_graph (std::string const &filename, graph_type const &g, std::vector< int8_t > const &vColor) const |
Protected Member Functions | |
| virtual double | coloring () |
Additional Inherited Members | |
| Protected Attributes inherited from limbo::algorithms::coloring::Coloring< GraphType > | |
| graph_type const & | m_graph |
| initial graph | |
| std::vector< int8_t > | m_vColor |
| coloring solutions | |
| ColorNumType | m_color_num |
| number of colors | |
| double | m_stitch_weight |
| stitch weight | |
| int32_t | m_threads |
| control number of threads for ILP solver | |
| bool | m_has_precolored |
| whether contain precolored vertices | |
| int32_t | m_stitch_index |
| int32_t | m_big_edge_num |
| std::vector< int32_t > | m_stitch_relation_set |
| std::vector< int32_t > | m_edge_index_vector |
ILP coloring algorithm using Cbc as ILP solver and Lemon as API to Cbc, i.e. this class has dependency to Cbc and Lemon. Lemon should be installed with Cbc flag enabled
Edge weight is used to differentiate conflict edge and stitch edge. Non-negative weight implies conflict edge. Negative weight implies stitch edge. Use vertex color to save vertex stitch candidate number.
| GraphType | graph type |
Definition at line 65 of file ILPColoringLemonCbc.h.
| typedef Coloring<GraphType> limbo::algorithms::coloring::ILPColoringLemonCbc< GraphType >::base_type |
Definition at line 69 of file ILPColoringLemonCbc.h.
| typedef boost::graph_traits<graph_type>::edge_iterator limbo::algorithms::coloring::Coloring< GraphType >::edge_iterator_type |
Definition at line 122 of file Coloring.h.
| typedef boost::property_traits<typenameboost::property_map<graph_type,boost::edge_weight_t>::const_type>::value_type limbo::algorithms::coloring::Coloring< GraphType >::edge_weight_type |
Definition at line 125 of file Coloring.h.
| typedef boost::graph_traits<graph_type>::edge_descriptor limbo::algorithms::coloring::Coloring< GraphType >::graph_edge_type |
Definition at line 120 of file Coloring.h.
| typedef GraphType limbo::algorithms::coloring::Coloring< GraphType >::graph_type |
Definition at line 118 of file Coloring.h.
| typedef boost::graph_traits<graph_type>::vertex_descriptor limbo::algorithms::coloring::Coloring< GraphType >::graph_vertex_type |
Definition at line 119 of file Coloring.h.
| typedef boost::graph_traits<graph_type>::vertex_iterator limbo::algorithms::coloring::Coloring< GraphType >::vertex_iterator_type |
Definition at line 121 of file Coloring.h.
| enum limbo::algorithms::coloring::Coloring::ColorNumType |
number of colors
Definition at line 134 of file Coloring.h.
|
inline |
|
inlinevirtual |
destructor
Definition at line 100 of file ILPColoringLemonCbc.h.
|
protectedvirtual |
Implements limbo::algorithms::coloring::Coloring< GraphType >.
Definition at line 108 of file ILPColoringLemonCbc.h.