Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
Referencia de la plantilla de la Clase Aleph::Net_Max_Flow_Min_Cost< NodeT, ArcT >

#include <tpl_maxflow_mincost.H>

+ Diagrama de herencias de Aleph::Net_Max_Flow_Min_Cost< NodeT, ArcT >
+ Diagrama de colaboración para Aleph::Net_Max_Flow_Min_Cost< NodeT, ArcT >:

Tipos públicos

typedef Net_Graph< NodeT, ArcT > Net
 
typedef Net::Digraph Digraph
 El tipo de grafo dirigido.
 
typedef Net_Max_Flow_Min_Cost
< NodeT, ArcT > 
Net_MFMC
 
typedef ArcT Arc
 Tipo de arco.
 
typedef NodeT Node
 Tipo de node.
 
typedef Arc::Flow_Type Flow_Type
 Tipo que representa la capacidad y el flujo.
 
typedef Node::Node_Type Node_Type
 Tipo de atributo que almacena un nodo.
 
typedef Arc::Arc_Type Arc_Type
 Tipo de atributo que almacena un arco.
 
- Tipos públicos heredados desde Aleph::Net_Graph< NodeT, ArcT >
typedef Array_Digraph< NodeT,
ArcT > 
Digraph
 
typedef ArcT Arc
 Tipo de arco.
 
typedef NodeT Node
 Tipo de node.
 
typedef Arc::Flow_Type Flow_Type
 Tipo que representa la capacidad y el flujo.
 
typedef Node::Node_Type Node_Type
 Tipo de atributo que almacena un nodo.
 
typedef Arc::Arc_Type Arc_Type
 Tipo de atributo que almacena un arco.
 
- Tipos públicos heredados desde Aleph::Array_Digraph< NodeT, ArcT >
typedef NodeT Node
 
typedef ArcT Arc
 

Métodos públicos

Flow_Typeget_cost (Arc *a)
 Retorna una referencia modificable al coste de un arco.
 
const Flow_Typeflow_cost (Arc *a) const
 Retorna una referencia al coste de un arco:
 
virtual Arcinsert_arc (Node *src_node, Node *tgt_node, const Flow_Type &cap, const Flow_Type &cost)
 
virtual Arcinsert_arc (Node *src_node, Node *tgt_node)
 Usado por algorítmica interna. NO UTILIZAR.
 
virtual Arcinsert_arc (Node *src_node, Node *tgt_node, const Arc_Type &arc_info)
 Usado por algorítmica interna. NO UTILIZAR.
 
Flow_Type compute_flow_cost ()
 Calcula el coste total del flujo circulante por la red.
 
- Métodos públicos heredados desde Aleph::Net_Graph< NodeT, ArcT >
Flow_Type get_in_cap (Node *node) const
 Retorna la capacidad total de entrada del nodo node.
 
Flow_Type get_out_cap (Node *node) const
 Retorna la capacidad total de salida del nodo node.
 
size_t get_in_degree (Node *node) const
 
size_t get_out_degree (Node *node) const
 
Flow_Type get_out_flow (Node *node) const
 Retorna el valor de flujo de salida del nodo.
 
Flow_Type get_in_flow (Node *node) const
 Retorna el valor de flujo de entrada del nodo.
 
bool is_source (Node *node)
 Retorna true si node es fuente.
 
bool is_sink (Node *node)
 Retorna true si node es sumidero.
 
bool is_connected (Node *node) const
 
bool check_node (Node *node)
 
Aleph::set< Node * > & get_src_nodes ()
 Retorna el conjunto de nodos fuente que contiene la red.
 
Aleph::set< Node * > & get_sink_nodes ()
 Retorna el conjunto de nodos sumidero que contiene la red.
 
void make_super_source ()
 
void unmake_super_source ()
 
void make_super_sink ()
 
void unmake_super_sink ()
 
void make_super_nodes ()
 
void unmake_super_nodes ()
 
Nodeget_source ()
 Retorna un nodo fuente de la red.
 
Nodeget_sink ()
 Retorna un nodo sumidero de la red.
 
Nodeinsert_node (const Node_Type &node_info)
 
Nodeinsert_node ()
 
Nodeinsert_node (Node *p)
 
virtual Arcinsert_arc (Node *src_node, Node *tgt_node, const typename Arc::Arc_Type &arc_info, const Flow_Type &cap, const Flow_Type &flow)
 
Arcconnect_arc (Arc *arc)
 
virtual Arcinsert_arc (Node *src_node, Node *tgt_node, const Flow_Type &cap)
 
virtual Arcinsert_arc (Node *src_node, Node *tgt_node, const typename Arc::Arc_Type &arc_info)
 
virtual void remove_arc (Arc *arc)
 Elimina de la red el arco arc.
 
void disconnect_arc (Arc *arc)
 
virtual void remove_node (Node *p)
 Elimina un nodo de una red de flujo junto con todos sus arcos.
 
 Net_Graph (Digraph &digraph)
 
 Net_Graph (Net_Graph &net)
 
void set_cap (Arc *arc, const Flow_Type &cap)
 Coloca valor de capacidad a un arco.
 
void set_flow (Arc *arc, const Flow_Type &flow)
 
const Flow_Typeget_flow (Arc *arc) const
 retorna el valor de capacidad del arco.
 
const Flow_Typeget_cap (Arc *arc) const
 Retorna el valor de flujo de un arco.
 
void reset ()
 
bool check_network ()
 
Flow_Type flow_value ()
 
void insert_residual_arc (Arc *arc)
 
void make_residual_net ()
 
void unmake_residual_net ()
 
bool is_there_residual_net () const
 Retorna true si la red residual está creada; false de lo contrario.
 
Arcget_residual_arc (Arc *a)
 Obtiene el arco residual de a.
 
void increase_out_flow (Node *p, const Flow_Type &flow)
 
void decrease_out_flow (Node *p, const Flow_Type &flow)
 
void increase_in_flow (Node *p, const Flow_Type &flow)
 
void decrease_in_flow (Node *p, const Flow_Type &flow)
 
- Métodos públicos heredados desde Aleph::Array_Digraph< NodeT, ArcT >
 Array_Digraph (const Array_Digraph &dg)
 
 Array_Digraph (Array_Digraph &&dg)
 
Array_Digraphoperator= (const Array_Digraph< Node, Arc > &g)
 
Array_Digraphoperator= (Array_Digraph< Node, Arc > &&g)
 
- Métodos públicos heredados desde Aleph::Array_Graph< NodeT, ArcT >
virtual Node * insert_node (Node *p)
 
void compress ()
 
Arc * connect_arc (Arc *arc)
 
Arc * disconnect_arc (Arc *arc)
 
virtual void remove_arc (Arc *a)
 
virtual void remove_node (Node *p)
 
Node * get_first_node () const
 
Arc * get_first_arc () const
 
Arc * get_first_arc (Node *p) const
 
 Array_Graph (const Array_Graph &g)
 
 Array_Graph (Array_Graph &&g)
 
void swap (Array_Graph &g)
 
Array_Graphoperator= (const Array_Graph &g)
 
Array_Graphoperator= (Array_Graph &&g)
 
void sort_arcs (Compare &)
 
void sort_arcs (Compare &&)
 
 GRAPH_FUNCTIONAL_METHODS (Array_Graph)
 

Otros miembros heredados

- Atributos públicos heredados desde Aleph::Net_Graph< NodeT, ArcT >
Flow_Type Infinity
 
bool with_super_source
 true si a la red se le ha añadido un supra fuente.
 
bool with_super_sink
 true si a la red se le ha añadido un supra sumidero.
 
bool residual_net
 
- Atributos públicos heredados desde Aleph::Array_Graph< NodeT, ArcT >
 GRAPH_ITERATIVE_METHODS
 
 GRAPH_SEARCH_METHODS
 
 GRAPH_INSERTION_METHODS
 

Descripción detallada

template<class NodeT, class ArcT>
class Aleph::Net_Max_Flow_Min_Cost< NodeT, ArcT >

Definición de red capacitada de flujo con costes asociados a los flujos.

Este tipo, derivado de Net_Graph, modeliza una red capacitada en la que a cada arco se le define un coste por unidad de flujo. Este modelo, extensión del de red capacitada, amplía considerablemente la gama de problemas de optimización combinatoria al plantear una optimización tipo max-min. En este caso, el máximo flujo a coste mínimo.

Siendo derivación de Net_Graph, su interfaz es muy similar, con la añadidura de parámetros y métodos para manejar el coste de cada arco.

Ver también
max_flow_min_cost_by_cycle_canceling Max_Flow_Min_Cost

Documentación de los 'Typedef' miembros de la clase

template<class NodeT , class ArcT >
typedef Net_Graph<NodeT, ArcT> Aleph::Net_Max_Flow_Min_Cost< NodeT, ArcT >::Net

El tipo de red de flujo sobre el cual se sustenta este modelo con coste

Documentación de las funciones miembro

template<class NodeT , class ArcT >
virtual Arc* Aleph::Net_Max_Flow_Min_Cost< NodeT, ArcT >::insert_arc ( Node src_node,
Node tgt_node,
const Flow_Type cap,
const Flow_Type cost 
)
inlinevirtual

Crea e inserta un arco en una red de flujo con costes. El arco creado tien valor de flujo cero.

Parámetros
[in]src_nodenodo origen
[in]tgt_nodenodo destino
[in]capvalor de capacidad del arco
[in]costvalor de coste por unidad de flujo del arco
Devuelve
puntero al nuevo arco
Excepciones
bad_allocsi no hay suficiente memoria

Hace referencia a Aleph::Net_Graph< NodeT, ArcT >::insert_arc().

+ Gráfico de llamadas para esta función:


La documentación para esta clase fue generada a partir del siguiente fichero:

Leandro Rabindranath León