Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost Graph Library: Bellman Ford Visitor

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

C++ Boost

(Python)Bellman Ford Visitor Concept

This concept defines the visitor interface for bellman_ford_shortest_paths(). Users can define a class with the Bellman Ford Visitor interface and pass and object of the class to bellman_ford_shortest_paths(), thereby augmenting the actions taken during the graph search.

Refinement of

Copy Constructible (copying a visitor should be a lightweight operation).

Notation

V Это модель компании Bellman Ford Visitor.
Вис Объект типаВ.
G Тип, который является моделью графа.
г Объект типаG.
е Объект типаboost::graph_traits::edge_descriptor.
s,u Объект типаboost::graph_traits::vertex_descriptor.

Associated Types

none

Valid Expressions

NameExpressionReturn TypeDescription
Проверить Edge vis.examine_edge(e, g) пустота На каждом краю графаnum_vertices(g)раз.
Edge расслабился vis.edge_relaxed(e, g) пустота При осмотре, если следующее условие удерживает, то край расслаблен (его расстояние уменьшено), и этот метод вызывается.
tie(u,v) = incident(e, g);
D d_u = get(d, u), d_v = get(d, v);
W w_e = get(w, e);
assert(compare(combine(d_u, w_e), d_v));
Edge не расслабляется edge_not_relaxed(e, g) пустота При осмотре, если край не расслаблен (см. выше), то этот метод вызывается.
Край минимизирован vis.edge_minimized(e, g) пустота После того, какnum_vertices(g)итерации через краевой набор графа завершены, производится одна последняя итерация для проверки того, было ли каждое краевое значение сведено к минимуму. Если край сведен к минимуму, то эта функция вызывается.
Край не минимизирован edge_not_minimized(e, g) пустота Если край не сведен к минимуму, эта функция вызывается. Это происходит при отрицательном цикле на графике.

Models

Python

To implement a model of the BellmanFordVisitor concept in Python, create a new class that derives from the BellmanFordVisitor type of the graph, which will be named GraphType.BellmanFordVisitor. The events and syntax are the same as with visitors in C++. Here is an example for the Python bgl.Graph graph type:
class count_tree_edges_bellman_ford_visitor(bgl.Graph.BellmanFordVisitor):
  def __init__(self, name_map):
    bgl.Graph.BellmanFordVisitor.__init__(self)
    self.name_map = name_map
  def edge_relaxed(self, e, g):
    (u, v) = (g.source(e), g.target(e))
    print "Relaxed edge ",
    print self.name_map[u],
    print " -> ",
    print self.name_map[v]


Copyright © 2000-2001Джереми Сик, Университет Индианыjsiek@osl.iu.edu]
Ли-Куан Ли, Университет Индианыllee@cs.indiana.edu]
Эндрю Лумсдейн, Университет Индианыlums@osl.iu.edu

Статья Boost Graph Library: Bellman Ford Visitor раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 15:25:25/0.0033550262451172/0