OKlibrary  0.2.1.6
OKlib::Satisfiability::Interfaces::InputOutput::HypergraphTwoColouring< SetSystem, CLSAdaptor, Int > Class Template Reference

Translating two hypergraphs into a boolean clause-set (as a 2-colouring problem). More...

#include <Colouring.hpp>

List of all members.

Public Types

typedef Int int_type
typedef SetSystem hypergraph_type
typedef hypergraph_type::value_type hyperedge_type
typedef hyperedge_type::value_type vertex_type
typedef CLSAdaptor cls_adaptor_type

Public Member Functions

template<class NameMap >
 HypergraphTwoColouring (const hypergraph_type &G1, const hypergraph_type &G2, const NameMap &M, const int_type n, const std::string &comment, cls_adaptor_type &out)

Detailed Description

template<class SetSystem, class CLSAdaptor, typename Int = int>
class OKlib::Satisfiability::Interfaces::InputOutput::HypergraphTwoColouring< SetSystem, CLSAdaptor, Int >

Translating two hypergraphs into a boolean clause-set (as a 2-colouring problem).

Requirements:

  • Int is promotable to CLSAdaptor::int_type.
  • SetSystem is a sequence of sequences.
  • The hyperedges contain no repetitions.

The vertices of the hypergraphs (more precisely, set-systems) can be arbitrary, while a NameMap must be provided to standardise these names.

The functionality is similar to tcol2sat_stdohg2stdfcl in ComputerAlgebra/Hypergraphs/Lisp/Colouring.mac, but here we can use two hypergraphs (for the positive and the negative part), and the vertices don't need to be already standardised.

Todo:
Handle the range-requirements correctly.
Todo:
Provide the mapping-information in the comments.

Definition at line 55 of file Colouring.hpp.


Member Typedef Documentation

template<class SetSystem, class CLSAdaptor, typename Int = int>
typedef CLSAdaptor OKlib::Satisfiability::Interfaces::InputOutput::HypergraphTwoColouring< SetSystem, CLSAdaptor, Int >::cls_adaptor_type

Definition at line 61 of file Colouring.hpp.

template<class SetSystem, class CLSAdaptor, typename Int = int>
typedef hypergraph_type::value_type OKlib::Satisfiability::Interfaces::InputOutput::HypergraphTwoColouring< SetSystem, CLSAdaptor, Int >::hyperedge_type

Definition at line 59 of file Colouring.hpp.

template<class SetSystem, class CLSAdaptor, typename Int = int>
typedef SetSystem OKlib::Satisfiability::Interfaces::InputOutput::HypergraphTwoColouring< SetSystem, CLSAdaptor, Int >::hypergraph_type

Definition at line 58 of file Colouring.hpp.

template<class SetSystem, class CLSAdaptor, typename Int = int>
typedef Int OKlib::Satisfiability::Interfaces::InputOutput::HypergraphTwoColouring< SetSystem, CLSAdaptor, Int >::int_type

Definition at line 57 of file Colouring.hpp.

template<class SetSystem, class CLSAdaptor, typename Int = int>
typedef hyperedge_type::value_type OKlib::Satisfiability::Interfaces::InputOutput::HypergraphTwoColouring< SetSystem, CLSAdaptor, Int >::vertex_type

Definition at line 60 of file Colouring.hpp.


Constructor & Destructor Documentation

template<class SetSystem, class CLSAdaptor, typename Int = int>
template<class NameMap >
OKlib::Satisfiability::Interfaces::InputOutput::HypergraphTwoColouring< SetSystem, CLSAdaptor, Int >::HypergraphTwoColouring ( const hypergraph_type G1,
const hypergraph_type G2,
const NameMap &  M,
const int_type  n,
const std::string &  comment,
cls_adaptor_type out 
) [inline]

Definition at line 66 of file Colouring.hpp.

References Latex_Handler::begin(), end, and s.


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