Compare commits
556 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c1276100ca | |||
| 1ef53b2d50 | |||
| 1a4e9ef4ad | |||
| 33af3494f7 | |||
| a1d6cf2106 | |||
| 4af9462b74 | |||
| 1acdecb32f | |||
| 30d0e0ea2a | |||
| 9a9bd728e7 | |||
| 06c0e7e505 | |||
| 7552f02d05 | |||
| b0e4e9fa01 | |||
| 872308b277 | |||
| d819683bf3 | |||
| dd5da5d657 | |||
| 016779276c | |||
| 93dc2b2c0d | |||
| 43b99f3fbe | |||
| 77b148e6db | |||
| 3d07d486b2 | |||
| ee35a986a7 | |||
| 8b185359ef | |||
| c9ac66d0d8 | |||
| 360e769758 | |||
| c4715738db | |||
| b35856b2f3 | |||
| dafc6fbb2b | |||
| 1a184e4e2e | |||
| f789831ba9 | |||
| dfb88dedb4 | |||
| 686376231a | |||
| 791a5f0e72 | |||
| 863b976726 | |||
| f72b7b9d1d | |||
| bec5451742 | |||
| f8960081b2 | |||
| 186d6baaaa | |||
| e7054fb090 | |||
| e9709979de | |||
| c5bcc31f22 | |||
| 1b46340737 | |||
| 8dd497a9f1 | |||
| 39eda77bb0 | |||
| 0fe3f9f7d7 | |||
| 025ae1f7b1 | |||
| 268d57b5f8 | |||
| 5279b7e743 | |||
| e18f677885 | |||
| 615f47676b | |||
| bdf6e6c832 | |||
| be6033bbb8 | |||
| c2b83032f8 | |||
| f925853bb5 | |||
| 00211e9135 | |||
| 5080ba19df | |||
| 6fd494aec2 | |||
| 72769b9017 | |||
| 71c8ff92a2 | |||
| 31b9be10a4 | |||
| 754f3b92ed | |||
| a1d00ed07b | |||
| c4167010e3 | |||
| 92e58bf5eb | |||
| c9fc501377 | |||
| cf6051cbfe | |||
| 3808741d30 | |||
| 3217880ec2 | |||
| f1c6d7b56f | |||
| 6365853620 | |||
| ebc735f49e | |||
| acfe2b5d90 | |||
| c0baa8282c | |||
| 827270f597 | |||
| da1172f268 | |||
| 21526c830a | |||
| ecdbf602d9 | |||
| c192807ea7 | |||
| 817f324a13 | |||
| c8f3f9b06b | |||
| d119620775 | |||
| 863b23408c | |||
| f6b51a43a2 | |||
| c09fa80aca | |||
| 7ade369d3e | |||
| c6f5a9b984 | |||
| b43a2ff6cc | |||
| e7914b3b7a | |||
| f8f08b8d46 | |||
| 450b60114c | |||
| 534e7f6acd | |||
| 23058f4e1c | |||
| 16e79e3bc5 | |||
| 8e7b8bb95c | |||
| ce04079e62 | |||
| ee18592d0f | |||
| 549db6db29 | |||
| c57722a10f | |||
| a18ee8efa5 | |||
| 6995f7fb7e | |||
| d0aeb0072c | |||
| 5e86165add | |||
| b4b0ec400b | |||
| 2b2061df1d | |||
| 7895ca9e8f | |||
| 9b25481ac8 | |||
| 704e2a0894 | |||
| 01b30ee264 | |||
| 519192a2b8 | |||
| 44a6ffef17 | |||
| a836552002 | |||
| faeb40f7c4 | |||
| f09e7ab08c | |||
| 0d65535a49 | |||
| e674c8b9c7 | |||
| 954100837b | |||
| 809904f268 | |||
| 39ffc159eb | |||
| 0f708da558 | |||
| cbbfe23b81 | |||
| cd2f3a3a5c | |||
| 03532e0d20 | |||
| 0cb233c412 | |||
| 8d4c3cc7d6 | |||
| a2843c2352 | |||
| 1c52b10253 | |||
| 0960281a15 | |||
| 891cf5584c | |||
| 0dfbf04a75 | |||
| 0185fdf67e | |||
| aec4a0f301 | |||
| cdde244b46 | |||
| 63fae9d658 | |||
| 803a8be664 | |||
| 43eed0a3ba | |||
| f1677c439a | |||
| 8803f55af9 | |||
| 3e3b80e5c1 | |||
| bae3f3950a | |||
| c6035b97e6 | |||
| 5b53e4e6e8 | |||
| 7ce44fc213 | |||
| cef7692b91 | |||
| 5a3b472a50 | |||
| eaf4275c61 | |||
| a5a3991c22 | |||
| dd5aff7029 | |||
| 71e23c2304 | |||
| d7e37c7b56 | |||
| 7777457d50 | |||
| 670d4d5029 | |||
| 7a9822f533 | |||
| e26020a782 | |||
| b9d8262153 | |||
| 0767d8a8bb | |||
| 288af2017a | |||
| 6f50bbc49d | |||
| 4358d99cb0 | |||
| 6a7fc39328 | |||
| 4f9ff68348 | |||
| aed5fa9949 | |||
| 77d5bf7b80 | |||
| 6671008f35 | |||
| 0596637103 | |||
| 70d7e52335 | |||
| afa1569043 | |||
| 292aea9404 | |||
| 8a9558f06f | |||
| bac69f84de | |||
| 78b6d375a7 | |||
| 17f6ae8dbb | |||
| 23e75246cb | |||
| 6600277899 | |||
| 4520906847 | |||
| e27b8977b4 | |||
| 2ed4a27395 | |||
| 83e3ee4b6c | |||
| 50fba1d79f | |||
| 9572d48a03 | |||
| 51d8d9f6be | |||
| b0e70a45d0 | |||
| 4b61796e41 | |||
| 4844c47f6a | |||
| 968edbe972 | |||
| 69d72805be | |||
| 1eba2f9cc5 | |||
| 6641c154ac | |||
| 6fdfca7d38 | |||
| 4a3510bbf9 | |||
| 62427b821f | |||
| 4a16dd2717 | |||
| 9a15c9fb1e | |||
| 86fb16b3b8 | |||
| db5bab4b99 | |||
| aff71f6147 | |||
| 275e1cb92b | |||
| a3ee4eb038 | |||
| af7369b6b0 | |||
| 06562ff825 | |||
| 9a6339df8d | |||
| 8c22a6d531 | |||
| b49cda6f03 | |||
| 3fbb14a5cf | |||
| 372c7e5740 | |||
| 70e103d1b9 | |||
| 6b4635c403 | |||
| b2724beb09 | |||
| a6daa83472 | |||
| 7f9306dec9 | |||
| 9ad0c6a23c | |||
| 3fdea479bd | |||
| 4a2994c9d7 | |||
| bc707a8f67 | |||
| 38aa3f34d8 | |||
| 2555c89f91 | |||
| 597d89ead2 | |||
| bafd8ea248 | |||
| 4f9ce0c88d | |||
| 5c899afa22 | |||
| 1562d2b1ab | |||
| 8bde5765ab | |||
| 2fbbd52a0e | |||
| 10d71f2365 | |||
| 7db8d06fbf | |||
| ebde55caab | |||
| 0e63ef5f89 | |||
| a9a49a55b7 | |||
| 71f20dd7b6 | |||
| b267aee59c | |||
| b7a5fe292b | |||
| 33640c6bf3 | |||
| f7585c91af | |||
| 9b902b614d | |||
| 7218c1ba66 | |||
| 19dd79f771 | |||
| e9d6adeab1 | |||
| 3a894a9a5f | |||
| 8cbf7d89aa | |||
| 424e529aba | |||
| d73b792b6c | |||
| b39dd26509 | |||
| 7e088fd0ec | |||
| 415b79eabc | |||
| 3ea25dc783 | |||
| 6d2a97d97c | |||
| f94d5a9530 | |||
| f9dcab79b2 | |||
| 3644e4d51a | |||
| d1ae2658f9 | |||
| ae53d6cbbc | |||
| c6c6be7ae0 | |||
| 1533e730ae | |||
| b98298ab98 | |||
| cf6006d528 | |||
| ccf09ceddf | |||
| bb1977b17a | |||
| 476e8dd7d1 | |||
| 23e8514ac7 | |||
| ecedcaa5a3 | |||
| aa97fdc26a | |||
| 07eee8a2a1 | |||
| e45cfb0ee3 | |||
| f865d6209e | |||
| 231f4c3573 | |||
| 40af610e8f | |||
| 751f8b5b7c | |||
| 73f24694dd | |||
| 5255835126 | |||
| 341a685ff1 | |||
| 6365afac60 | |||
| c28a996668 | |||
| 23ca414964 | |||
| c09b24159b | |||
| eb60f8c235 | |||
| 3884b842c6 | |||
| 05a4441935 | |||
| 8e5d48c839 | |||
| da3b568cb4 | |||
| e9747c0143 | |||
| e54f2934e1 | |||
| c691ac49f7 | |||
| fa42d8aa92 | |||
| 40ffa294a2 | |||
| b2be8e3dfc | |||
| 98d0755817 | |||
| 2f99e5b87f | |||
| 1cc2f6e13a | |||
| 2006d41573 | |||
| 4bda985420 | |||
| 666a919f70 | |||
| 03560ab9ae | |||
| a86a446429 | |||
| 8dfc1ad52c | |||
| dcb43119d5 | |||
| aa79cb6919 | |||
| 9d3d4e9a44 | |||
| 5461181e7f | |||
| d0432740ef | |||
| e6cd5bc377 | |||
| 148c441158 | |||
| a080a480ce | |||
| 1dfcd0e6fb | |||
| f3c29e22d2 | |||
| f6a8e8c66e | |||
| 54ff05ca06 | |||
| 1b69ebe5b5 | |||
| efcb9317fc | |||
| 96f923a52e | |||
| 45d0f1331b | |||
| 9445aff028 | |||
| f65f09bba9 | |||
| 43f0e01be5 | |||
| 7fdb4af8f6 | |||
| 660107b872 | |||
| ee9b816984 | |||
| e79c27b97b | |||
| 3125c8577d | |||
| b2bc98e410 | |||
| 4c8c2403c8 | |||
| 02cdd5c0f8 | |||
| 1f84c5b232 | |||
| 78d2fd885f | |||
| efa2fe286f | |||
| 45a2d06d94 | |||
| 55d57690f1 | |||
| 3f97161db1 | |||
| 0f49c8dcb2 | |||
| fcf80df5f9 | |||
| 85dd95cf77 | |||
| 1d8d4322d2 | |||
| 15d8e1dc21 | |||
| 99a56222da | |||
| 3bec282dbd | |||
| 3d5661096c | |||
| dfb49e339d | |||
| b493c0ea47 | |||
| c4a7c8cd37 | |||
| 64b6038f92 | |||
| 9d8f8ce0cd | |||
| fbd5c5120f | |||
| 46ae2cb6c1 | |||
| 83e26c7109 | |||
| d83d611b18 | |||
| 4af336e307 | |||
| e53d23d7d7 | |||
| 401165fe0c | |||
| 7e7359b330 | |||
| a728a94caa | |||
| 833169b3a0 | |||
| 770cce09ef | |||
| a237fb8cd9 | |||
| 79a1ef7d8f | |||
| dde01478fe | |||
| 41051db37b | |||
| 0a8a6f0812 | |||
| 1cfa23497b | |||
| 99d4f31d38 | |||
| a86397fc34 | |||
| 2c884b70b7 | |||
| 3c852ac7a0 | |||
| 0cb7bbf192 | |||
| a306a8119f | |||
| 88edab5b45 | |||
| b0474f1dd9 | |||
| 21b9a9f799 | |||
| 59ba89640e | |||
| d1c241d77e | |||
| 83e6c4a9c3 | |||
| 3ae3292696 | |||
| e0367b4a21 | |||
| f1257a09d1 | |||
| f4e0af95f1 | |||
| 4c5c2fc303 | |||
| 344dd6b155 | |||
| 392f5fa635 | |||
| bf2f7f86fa | |||
| cc4f49d760 | |||
| 0d2d95b2f2 | |||
| 58e287d115 | |||
| e505bf99db | |||
| d34d447b68 | |||
| a03ed0e26d | |||
| 9233499dbc | |||
| f4b0928c2d | |||
| 04fea004d9 | |||
| bc49236ccc | |||
| 73b6ddc2d4 | |||
| d4db30f9d3 | |||
| 3a07fe7c22 | |||
| a7c753ded9 | |||
| ac847ac715 | |||
| 47214f4fdc | |||
| ec2dcfddbb | |||
| ec7156274d | |||
| 9badc94845 | |||
| 39b29f3d79 | |||
| 65f63fecc1 | |||
| 7c5f9daa62 | |||
| 62cc164059 | |||
| fc6ec3f791 | |||
| 560f485326 | |||
| b47cf53fcb | |||
| 5898cc5bae | |||
| 0d30a51129 | |||
| 1035ddac56 | |||
| ce0f796b84 | |||
| 1b3a6936a2 | |||
| ad8a07eb09 | |||
| b659351ea7 | |||
| ff7a5d1282 | |||
| cfe0e0b552 | |||
| 50b1f74b93 | |||
| bf73135721 | |||
| 826f7a33d8 | |||
| 1b468cb8aa | |||
| fcd3996f0e | |||
| 05a7299c0e | |||
| e5848fee44 | |||
| fb06d7e38e | |||
| ebb6697936 | |||
| 77e5f0701d | |||
| 53f5645393 | |||
| 6b24966483 | |||
| ac1e867af4 | |||
| 62c6d9ef2f | |||
| 69c5cf732c | |||
| 0b1a337f52 | |||
| f44af6dd2f | |||
| 891ec4e4e3 | |||
| 96a3f1fa67 | |||
| 64428fc074 | |||
| 9a10195600 | |||
| fcf5d92ca6 | |||
| 0d52712c3d | |||
| 5597592ff5 | |||
| dea8296e5b | |||
| bcb16ef822 | |||
| ce0ec9e236 | |||
| 9e359134a1 | |||
| be9ad03abe | |||
| dbe744f6e2 | |||
| 9084e6ce9b | |||
| a4a5a1a42b | |||
| f9da93dbe2 | |||
| a0919bdff6 | |||
| 573f424452 | |||
| 4a159ba118 | |||
| 0d6c5bb4e2 | |||
| 6616bdba33 | |||
| 7a6a6fcbb6 | |||
| 11f9e9b044 | |||
| 399aa3b28a | |||
| a9e4925167 | |||
| 3eadd82c6b | |||
| 779274575b | |||
| 5f28b0237a | |||
| 29a09c1fc0 | |||
| 7465bc2c20 | |||
| 36656fda3d | |||
| 0245e863c8 | |||
| af44a9cfa5 | |||
| 22ca266765 | |||
| 12aa017c9f | |||
| bb6401e096 | |||
| 6cff97469a | |||
| 75100306fe | |||
| da3078ed52 | |||
| 70bbfe664b | |||
| 3f81217fad | |||
| 3d7d3eb428 | |||
| 7f05dc489b | |||
| 70e0dd2d23 | |||
| 654e43a7ed | |||
| 4f36d52ec3 | |||
| 174d0d2dff | |||
| f7db7b7771 | |||
| d0176ea39d | |||
| 42b9c97d31 | |||
| 0e08ed3d80 | |||
| 665b330286 | |||
| f36e7b9170 | |||
| 7815e65261 | |||
| eddae97983 | |||
| e96148194d | |||
| c668929a24 | |||
| e5a0f4f5fc | |||
| efd6f46383 | |||
| 61c59d9c1d | |||
| 727a9d994d | |||
| f836ed2531 | |||
| 5b572a82a3 | |||
| a1b7e1cd95 | |||
| 9df2b90f56 | |||
| 183d88cfb6 | |||
| 472dba30ed | |||
| d8fc6477d7 | |||
| 2a204d5482 | |||
| db9796ddfd | |||
| d629b74d98 | |||
| 421842272a | |||
| c4d72905bf | |||
| f497c3d195 | |||
| 86e4dd21af | |||
| c8ffc289d9 | |||
| 5879c83284 | |||
| 8041171b33 | |||
| 1e416130db | |||
| 2e318dccc1 | |||
| 02f8dbe592 | |||
| 18586182a1 | |||
| 0d93784f95 | |||
| 9225f94c4b | |||
| 69317c5bdc | |||
| ada2d70c01 | |||
| 5271a6bef6 | |||
| 6937336a09 | |||
| 9ba47b4b7b | |||
| bb1fba7555 | |||
| e87ac08817 | |||
| cc60980341 | |||
| 6fe01d0c4c | |||
| 29d60b8e6a | |||
| 0e2f464666 | |||
| 1e42266075 | |||
| aa3dcfb2e1 | |||
| 9be555c4f5 | |||
| 8899a047d4 | |||
| 6c93d9b187 | |||
| a5c1c8d953 | |||
| 80147f664b | |||
| 7ae0a8d974 | |||
| 549f85c80f | |||
| 4df63cf4f3 | |||
| 6466795448 | |||
| 4373b57677 | |||
| 97e891fee0 | |||
| cd346002ea | |||
| 48577cde2f | |||
| 0a4891fcf0 | |||
| 91e1935e1d | |||
| 8fe7018793 | |||
| 85e1d7e344 | |||
| ca5bbacc2e | |||
| b48254406d | |||
| 49ca29e905 | |||
| e10fef2660 | |||
| fddbb9b66e | |||
| 48867ed3ab | |||
| 75d3e89442 | |||
| ba824058ef | |||
| fe508c8c46 | |||
| 73a5b07661 | |||
| bbe399a2b0 | |||
| 786336804e | |||
| 869dab48ef | |||
| b62baf4ec1 | |||
| cf9d1521d8 |
@@ -0,0 +1,24 @@
|
||||
# Copyright (C) 2008 Michael Jackson
|
||||
#
|
||||
# Use, modification and distribution is subject to the Boost Software
|
||||
# License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# This file was automatically generated from the original CMakeLists.txt file
|
||||
|
||||
# Add a library target to the build system
|
||||
boost_library_project(
|
||||
graph
|
||||
SRCDIRS src
|
||||
TESTDIRS test
|
||||
HEADERS graph
|
||||
# DOCDIRS
|
||||
DESCRIPTION "The BGL graph interface and graph components are generic, in the same sense as the the Standard Template Library (STL)."
|
||||
MODULARIZED
|
||||
AUTHORS "Jeremy Siek <jeremy.siek -at- gmail.com>"
|
||||
"Lie-Quan Lee"
|
||||
"Andrew Lumsdaine"
|
||||
"Douglas Gregor <doug.gregor -at- gmail.com>"
|
||||
# MAINTAINERS
|
||||
)
|
||||
@@ -1,50 +0,0 @@
|
||||
subproject libs/graph/build ;
|
||||
|
||||
SOURCES = graphviz_graph_lex graphviz_digraph_lex
|
||||
graphviz_graph_parser graphviz_digraph_parser
|
||||
read_graphviz_spirit
|
||||
;
|
||||
|
||||
GRAPHVIZ_DEFS(graphviz_graph_lex) =
|
||||
GRAPHVIZ_DIRECTED=0
|
||||
;
|
||||
GRAPHVIZ_DEFS(graphviz_digraph_lex) =
|
||||
GRAPHVIZ_DIRECTED=1
|
||||
;
|
||||
GRAPHVIZ_DEFS(graphviz_graph_parser) =
|
||||
GRAPHVIZ_DIRECTED=0
|
||||
;
|
||||
GRAPHVIZ_DEFS(graphviz_digraph_parser) =
|
||||
GRAPHVIZ_DIRECTED=1
|
||||
;
|
||||
|
||||
{
|
||||
|
||||
rule bgl-lib-file
|
||||
{
|
||||
local objects source defs ;
|
||||
defs = $(DEFINES) ;
|
||||
for source in $(>)
|
||||
{
|
||||
DEFINES = $(defs) $(GRAPHVIZ_DEFS($(source:B))) ;
|
||||
objects += [ Objects $(source) ] ;
|
||||
}
|
||||
LibraryFromObjects $(<) : $(objects) ;
|
||||
}
|
||||
local gGENERATOR_FUNCTION(LIB) = bgl-lib-file ;
|
||||
|
||||
lib bgl-viz
|
||||
: ../src/$(SOURCES).cpp
|
||||
: <sysinclude>$(BOOST_ROOT) <define>YY_NO_UNISTD_H
|
||||
# Darwin compiler ICEs if we turn optimization on
|
||||
<darwin><*><debug-symbols>off
|
||||
<darwin><*><optimization>off
|
||||
# Intel compiler ICEs if we turn optimization on
|
||||
<intel-win32><*><optimization>off
|
||||
<vc-7_1><*><cxxflags>-GR-
|
||||
: debug <inlining>on #inlining prevents linker name clashes due to truncation!
|
||||
<debug-symbols>off # Debugging symbols become HUGE
|
||||
|
||||
;
|
||||
|
||||
}
|
||||
@@ -1,26 +1,63 @@
|
||||
# Copyright (c) 2002 Trustees of Indiana University
|
||||
#
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
import mpi ;
|
||||
|
||||
project boost/graph
|
||||
: requirements <include>../src
|
||||
: source-location ../src
|
||||
;
|
||||
|
||||
lib bgl-viz
|
||||
: graphviz_graph_lex
|
||||
graphviz_digraph_lex
|
||||
graphviz_graph_parser
|
||||
graphviz_digraph_parser
|
||||
: <define>YY_NO_UNISTD_H
|
||||
;
|
||||
local optional_sources ;
|
||||
local optional_reqs ;
|
||||
|
||||
obj graphviz_graph_lex : graphviz_lex.ll
|
||||
: <flex.prefix>bgl_undir_ <define>GRAPHVIZ_DIRECTED=0
|
||||
<implicit-dependency>graphviz_graph_parser ;
|
||||
obj graphviz_graph_parser : graphviz_parser.yy
|
||||
: <bison.prefix>bgl_undir_ <define>GRAPHVIZ_DIRECTED=0 ;
|
||||
|
||||
|
||||
obj graphviz_digraph_lex : graphviz_lex.ll
|
||||
: <flex.prefix>bgl_dir_ <define>GRAPHVIZ_DIRECTED=1
|
||||
<implicit-dependency>graphviz_digraph_parser ;
|
||||
obj graphviz_digraph_parser : graphviz_parser.yy
|
||||
: <bison.prefix>bgl_dir_ <define>GRAPHVIZ_DIRECTED=1 ;
|
||||
if [ modules.peek : EXPAT_INCLUDE ] && [ modules.peek : EXPAT_LIBPATH ]
|
||||
{
|
||||
local EXPAT_INCLUDE = [ modules.peek : EXPAT_INCLUDE ] ;
|
||||
local EXPAT_LIBPATH = [ modules.peek : EXPAT_LIBPATH ] ;
|
||||
|
||||
if --debug-configuration in [ modules.peek : ARGV ]
|
||||
{
|
||||
ECHO "Expat include directory: $(EXPAT_INCLUDE)" ;
|
||||
ECHO "Expat library directory: $(EXPAT_LIBPATH)" ;
|
||||
}
|
||||
|
||||
alias graphml
|
||||
: graphml.cpp
|
||||
: # requirements
|
||||
: # default built
|
||||
: # usage requirements
|
||||
<include>$(EXPAT_INCLUDE)
|
||||
<library-path>$(EXPAT_LIBPATH)
|
||||
<find-shared-library>expat
|
||||
;
|
||||
}
|
||||
else
|
||||
{
|
||||
message graphml
|
||||
: "warning: Graph library does not contain optional GraphML reader."
|
||||
: "note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the"
|
||||
: "note: directories containing the Expat headers and libraries, respectively."
|
||||
;
|
||||
}
|
||||
explicit graphml ;
|
||||
|
||||
lib boost_graph
|
||||
:
|
||||
read_graphviz_new.cpp
|
||||
graphml
|
||||
:
|
||||
<library>../../regex/build//boost_regex
|
||||
<define>BOOST_GRAPH_NO_LIB=1
|
||||
<link>shared:<define>BOOST_GRAPH_DYN_LINK=1
|
||||
# # Intel compiler ICEs if we turn optimization on
|
||||
<toolset>intel-vc71-win-9.1:<optimization>off
|
||||
# Without these flags, MSVC 7.1 and 8.0 crash
|
||||
<toolset>msvc-7.1:<cxxflags>-GR-
|
||||
<toolset>msvc-8.0:<cxxflags>-GR-
|
||||
;
|
||||
|
||||
boost-install boost_graph ;
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
# Copyright 2005 The Trustees of Indiana University.
|
||||
|
||||
# Use, modification and distribution is subject to the Boost Software
|
||||
# License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
# Authors: Douglas Gregor
|
||||
# Andrew Lumsdaine
|
||||
|
||||
subproject libs/graph/build/python ;
|
||||
|
||||
SEARCH on python.jam = $(BOOST_BUILD_PATH) ;
|
||||
include python.jam ;
|
||||
|
||||
extension bgl
|
||||
: # Sources
|
||||
../../src/python/module.cpp
|
||||
# Graph types
|
||||
../../src/python/graph.cpp
|
||||
../../src/python/digraph.cpp
|
||||
# Graph I/O
|
||||
../../src/python/graphviz.cpp
|
||||
# Graph algorithms
|
||||
# Core Algorithm Patterns
|
||||
../../src/python/breadth_first_search.cpp
|
||||
../../src/python/depth_first_search.cpp
|
||||
# Shortest Paths Algorithms
|
||||
../../src/python/dijkstra_shortest_paths.cpp
|
||||
../../src/python/bellman_ford_shortest_paths.cpp
|
||||
../../src/python/dag_shortest_paths.cpp
|
||||
# Minimum Spanning Tree Algorithms
|
||||
../../src/python/kruskal_min_spanning_tree.cpp
|
||||
../../src/python/prim_minimum_spanning_tree.cpp
|
||||
# Connected Components Algorithms
|
||||
../../src/python/connected_components.cpp
|
||||
../../src/python/strong_components.cpp
|
||||
../../src/python/biconnected_components.cpp
|
||||
../../src/python/incremental_components.cpp
|
||||
# ...
|
||||
# Other algorithms
|
||||
../../src/python/topological_sort.cpp
|
||||
../../src/python/transitive_closure.cpp
|
||||
# ../../src/python/transpose_graph.cpp Need copy_graph to work, first
|
||||
../../src/python/isomorphism.cpp
|
||||
../../src/python/betweenness_centrality.cpp
|
||||
../../src/python/sequential_vertex_coloring.cpp
|
||||
# Sparse Matrix Ordering
|
||||
../../src/python/cuthill_mckee_ordering.cpp
|
||||
../../src/python/king_ordering.cpp
|
||||
# ../../src/python/minimum_degree_ordering.cpp
|
||||
../../src/python/circle_layout.cpp
|
||||
../../src/python/fruchterman_reingold.cpp
|
||||
../../src/python/kamada_kawai_spring_layout.cpp
|
||||
../../src/python/page_rank.cpp
|
||||
# Pickling support
|
||||
../../src/python/pickle.cpp
|
||||
<dll>../../../python/build/boost_python
|
||||
<lib>../bgl-viz
|
||||
: # Default build
|
||||
<debug-symbols>off
|
||||
;
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) 2004 Kris Beevers
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) 2004 Kris Beevers
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: AStarHeuristic</Title>
|
||||
@@ -132,7 +128,7 @@ Called for the target of every out edge of a vertex being examined.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
|
||||
Rensselaer Polytechnic Institute (<A
|
||||
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) 2004 Kris Beevers
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) 2004 Kris Beevers
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: AStarVisitor</Title>
|
||||
@@ -74,7 +70,7 @@ taken during the graph search.
|
||||
<TR>
|
||||
<TD><tt>WeightMap</tt></TD>
|
||||
<TD>A type that is a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html">Readable Property
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
|
||||
Map</a>.</TD>
|
||||
</TR>
|
||||
|
||||
@@ -207,7 +203,7 @@ happens after all of its out edges have been examined.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
|
||||
Rensselaer Polytechnic Institute (<A
|
||||
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
<html>
|
||||
<head>
|
||||
<!-- Copyright 2007 Aaron Windsor
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
-->
|
||||
<title>AddEdgeVisitor Concept</title>
|
||||
</head>
|
||||
<body alink="#ff0000"
|
||||
bgcolor="#ffffff"
|
||||
link="#0000ee"
|
||||
text="#000000"
|
||||
vlink="#551a8b">
|
||||
|
||||
<img src="../../../boost.png" alt="C++ Boost" height="86" width="277">
|
||||
|
||||
<br clear="">
|
||||
|
||||
<h1>AddEdgeVisitor Concept</h1>
|
||||
|
||||
The AddEdgeVisitor concept exists to allow for some indirection in algorithms
|
||||
that modify graphs by adding edges. In such algorithms, it may be convenient
|
||||
to perform additional operations (such as updating an edge index map) at
|
||||
points in the algorithm where an edge addition occurs. Replacing calls to
|
||||
to <tt>add_edge</tt> with calls to <tt>AddEdgeVisitor::visit_vertex_pair</tt>
|
||||
allows for such operations to be defined independently from the algorithm.
|
||||
|
||||
<h3>Notation</h3>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td> <tt>Visitor</tt> </td>
|
||||
<td> is a type that models the AddEdgeVisitor concept </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>vis</tt> </td>
|
||||
<td> is an object of type Visitor </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>Graph</tt> </td>
|
||||
<td> is the type of a graph </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>u,v</tt> </td>
|
||||
<td> are objects of type <tt>graph_traits<Graph>::vertex_descriptor</tt>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>e</tt> </td>
|
||||
<td> is an object of type <tt>graph_traits<Graph>::edge_descriptor</tt>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>v</tt> </td>
|
||||
<td> is an object of type <tt>graph_traits<Graph>::vertex_descriptor</tt>
|
||||
</td>
|
||||
|
||||
</tr><tr>
|
||||
<td>
|
||||
|
||||
</td></tr></tbody></table>
|
||||
|
||||
|
||||
<h3>Associated Types</h3>
|
||||
|
||||
None
|
||||
|
||||
<h3>Valid Expressions</h3>
|
||||
|
||||
<p>
|
||||
|
||||
<table border="1">
|
||||
|
||||
<tbody><tr><th>Name</th><th>Expression</th><th>Return Type</th>
|
||||
<th>Description</th>
|
||||
|
||||
</tr><tr>
|
||||
<td> Add an Edge </td>
|
||||
<td> <tt>vis.visit_vertex_pair(u, v, g)</tt> </td>
|
||||
<td> <tt>void</tt></td>
|
||||
<td> Invoked every time an edge between vertices <tt>u</tt> and <tt>v</tt>
|
||||
should be added to the graph <tt>g</tt>.
|
||||
</td></tr>
|
||||
|
||||
</tbody></table>
|
||||
|
||||
</p><h3>Models</h3>
|
||||
|
||||
Two models of this concept are defined in the file
|
||||
<a href="../../../boost/graph/planar_detail/add_edge_visitors.hpp">
|
||||
<tt>add_edge_visitors.hpp</tt></a>:
|
||||
|
||||
<ul>
|
||||
<li><tt>default_add_edge_visitor</tt>: The constructor of this class takes
|
||||
no arguments.<tt>visit_vertex_pair(u, v, g)</tt> is just a dispatch to
|
||||
<tt>add_edge(u, v, g)</tt>.
|
||||
<li><tt>edge_index_update_visitor</tt>: The constructor of this class takes
|
||||
two arguments: the first, an EdgeIndexMap,
|
||||
is a <a href="../../property_map/doc/ReadWritePropertyMap.html">
|
||||
ReadWritePropertyMap</a> that maps each edge in the associated graph
|
||||
<tt>g</tt> to a distinct integer in the range <tt>[0, num_edges(g))</tt>.
|
||||
The second argument is the number of edges in the underlying graph, which
|
||||
serves as the "next available index" counter within the visitor.
|
||||
For example, in the case the graph used has an initialized interior
|
||||
edge index, the <tt>edge_index_update_visitor</tt> constructor should be
|
||||
called with <tt>get(edge_index, g)</tt> as the edge index and
|
||||
<tt>num_edges(g)</tt> as the next available index. When
|
||||
<tt>visit_vertex_pair(u, v, g)</tt> is called, the
|
||||
<tt>edge_index_update_visitor</tt> will add the edge <i>(u,v)</i> to the graph
|
||||
and update the edge index for the newly created edge.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
||||
<br>
|
||||
</p><hr>
|
||||
Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
|
||||
aaron.windsor@gmail.com</a>)
|
||||
|
||||
</body></html>
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>AdjacencyGraph</Title>
|
||||
@@ -164,8 +160,8 @@ experience with graph algorithm implementations.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>AdjacencyMatrix</Title>
|
||||
@@ -99,8 +95,8 @@ The <TT>edge()</TT> function must return in constant time.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: BFSVisitor</Title>
|
||||
@@ -210,12 +206,12 @@ class count_tree_edges_bfs_visitor(bgl.Graph.BFSVisitor):
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2009 The Trustees of Indiana University.
|
||||
# Use, modification and distribution is subject to the Boost Software
|
||||
# License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
# Authors: Jeremiah Willcock, Andrew Lumsdaine
|
||||
|
||||
for i in read_graphml read_graphviz write_graphml; do
|
||||
rst2html.py -gdt --link-stylesheet --traceback --trim-footnote-reference-space --footnote-references=superscript --stylesheet=../../../rst.css $i.rst > $i.html
|
||||
done
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>BasicMatrix</Title>
|
||||
@@ -97,8 +93,8 @@ Element access is constant time.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Bellman Ford Visitor</Title>
|
||||
@@ -79,16 +75,6 @@ none
|
||||
<th>Name</th><th>Expression</th><th>Return Type</th><th>Description</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Initialize Vertex</td>
|
||||
<td><tt>vis.initialize_vertex(s, g)</tt></td>
|
||||
<td><tt>void</tt></td>
|
||||
<td>
|
||||
This is invoked on every vertex of the graph before the start of the
|
||||
graph search.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Examine Edge</td>
|
||||
<td><tt>vis.examine_edge(e, g)</tt></td>
|
||||
@@ -156,6 +142,7 @@ when there is a negative cycle in the graph.
|
||||
<li><a href="./bellman_visitor.html"><tt>bellman_visitor</tt></a>
|
||||
</ul>
|
||||
|
||||
<a name="python"></a>
|
||||
<h3>Python</h3>
|
||||
|
||||
To implement a model of the <tt>BellmanFordVisitor</tt> concept in Python,
|
||||
@@ -183,12 +170,12 @@ class count_tree_edges_bellman_ford_visitor(bgl.Graph.BellmanFordVisitor):
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Bidirectional</Title>
|
||||
@@ -171,8 +167,8 @@ undirected graphs).
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Buffer</Title>
|
||||
@@ -113,8 +109,8 @@ most linear time complexity in the size of the Generalized Queue.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University and C++ Library & Compiler Group/SGI (<A HREF="mailto:jsiek@engr.sgi.com">jsiek@engr.sgi.com</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University and C++ Library & Compiler Group/SGI (<A HREF="mailto:jsiek@engr.sgi.com">jsiek@engr.sgi.com</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: ColorValue Concept</Title>
|
||||
@@ -98,12 +94,12 @@ href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructibl
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>DFS Visitor</Title>
|
||||
@@ -174,6 +170,7 @@ all the out-edges of <tt>u</tt> have been examined.
|
||||
<li><a href="./dfs_visitor.html"><tt>dfs_visitor</tt></a>
|
||||
</ul>
|
||||
|
||||
<a name="python"></a>
|
||||
<h3>Python</h3>
|
||||
|
||||
To implement a model of the <tt>DFSVisitor</tt> concept in Python,
|
||||
@@ -201,12 +198,12 @@ class count_tree_edges_dfs_visitor(bgl.Graph.DFSVisitor):
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Dijkstra Visitor</Title>
|
||||
@@ -69,7 +65,7 @@ the search.
|
||||
|
||||
<TR>
|
||||
<TD><tt>DistanceMap</tt></TD>
|
||||
<TD>A type that is a model of <a href="../../property_map/ReadWritePropertyMap.html">Read/Write Property Map</a>.</TD>
|
||||
<TD>A type that is a model of <a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write Property Map</a>.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
@@ -79,7 +75,7 @@ the search.
|
||||
|
||||
<TR>
|
||||
<TD><tt>WeightMap</tt></TD>
|
||||
<TD>A type that is a model of <a href="../../property_map/ReadWritePropertyMap.html">Readable Property Map</a>.</TD>
|
||||
<TD>A type that is a model of <a href="../../property_map/doc/ReadWritePropertyMap.html">Readable Property Map</a>.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
@@ -184,6 +180,7 @@ search tree and all of the adjacent vertices have been discovered
|
||||
<li><a href="./dijkstra_visitor.html"><tt>dijkstra_visitor</tt></a>
|
||||
</ul>
|
||||
|
||||
<a name="python"></a>
|
||||
<h3>Python</h3>
|
||||
|
||||
To implement a model of the <tt>DijkstraVisitor</tt> concept in Python,
|
||||
@@ -211,12 +208,12 @@ class count_tree_edges_dijkstra_visitor(bgl.Graph.DijkstraVisitor):
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>EdgeListGraph</Title>
|
||||
@@ -180,8 +176,8 @@ must all return in constant time.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2001
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2001
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Edge Mutable Graph</Title>
|
||||
@@ -104,8 +100,8 @@ UNDER CONSTRUCTION
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: EventVisitor</Title>
|
||||
@@ -151,12 +147,12 @@ either a vertex or edge descriptor of the graph.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: EventVisitorList</Title>
|
||||
@@ -117,12 +113,12 @@ std::make_pair(<i>visitor1</i>,
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Graph</Title>
|
||||
@@ -74,7 +70,7 @@ and <a href="http://www.sgi.com/tech/stl/EqualityComparable.html">Equality Compa
|
||||
|
||||
<tr>
|
||||
<td><pre>boost::graph_traits<G>::directed_category</pre>
|
||||
The choices are <TT>directed_tag</TT> and <TT>undirected_tag</TT>.
|
||||
This type shall be convertible to <TT>directed_tag</TT> or <TT>undirected_tag</TT>.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -145,8 +141,8 @@ any vertex of graph object which type is <tt>G</tt>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>IncidenceGraph</Title>
|
||||
@@ -192,12 +188,12 @@ Therefore, the extra requirement is added that the out-edge connecting
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>IteratorConstructibleGraph</Title>
|
||||
@@ -151,12 +147,12 @@ constructor lacking the graph size information.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
# Copyright (c) 2002 Trustees of Indiana University
|
||||
#
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
DVIPS = dvips
|
||||
|
||||
LATEX = latex
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2001
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2001
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Monoid</Title>
|
||||
@@ -112,12 +108,12 @@ Return type: <TT>bool</TT>
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>MutableGraph</Title>
|
||||
@@ -295,8 +291,8 @@ is no longer a valid vertex descriptor.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>MutablePropertyGraph</Title>
|
||||
@@ -146,8 +142,8 @@ Return type: <TT>vertex_descriptor</TT>
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
<html><head><!-- Copyright 2007 Aaron Windsor
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
-->
|
||||
<title>Planar Embedding Concept</title>
|
||||
</head>
|
||||
<body alink="#ff0000"
|
||||
bgcolor="#ffffff"
|
||||
link="#0000ee"
|
||||
text="#000000"
|
||||
vlink="#551a8b">
|
||||
<img src="../../../boost.png" alt="C++ Boost" height="86" width="277">
|
||||
|
||||
<br clear="">
|
||||
|
||||
<h1>Planar Embedding Concept</h1>
|
||||
|
||||
|
||||
A planar embedding is an important intermediate representation of a drawing
|
||||
of a planar graph. Instead of specifying the absolute positions of the vertices
|
||||
and edges in the plane, a planar embedding specifies their positions relative
|
||||
to one another. A planar embedding consists of a sequence, for each vertex in
|
||||
the graph, of all of the edges incident on that vertex in the order in which
|
||||
they are to be drawn around that vertex.
|
||||
<p>
|
||||
A planar embedding is a refinement of
|
||||
<a href="../../property_map/doc/LvaluePropertyMap.html">LValuePropertyMap</a> that
|
||||
places additional restrictions the <tt>value_type</tt> used in the property
|
||||
map.
|
||||
|
||||
</p><h3>Notation</h3>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td> <tt>Embedding</tt> </td>
|
||||
<td> is a type that models the Planar Embedding concept.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>embedding</tt> </td>
|
||||
<td> is an object of type <tt>Embedding</tt>. </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>Graph</tt> </td>
|
||||
<td> is the type of the underlying graph.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>e</tt> </td>
|
||||
<td> is an object of type <tt>graph_traits<Graph>::edge_descriptor</tt>.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>v</tt> </td>
|
||||
<td> is an object of type <tt>graph_traits<Graph>::vertex_descriptor
|
||||
</tt>.</td>
|
||||
|
||||
</tr><tr>
|
||||
<td>
|
||||
|
||||
</td></tr></tbody></table>
|
||||
|
||||
|
||||
<h3>Associated Types</h3>
|
||||
|
||||
<table border="1">
|
||||
|
||||
<tbody><tr>
|
||||
<td> Const Iterator </td>
|
||||
<td> <tt>boost::property_traits<Embedding>::value_type::const_iterator
|
||||
</tt>
|
||||
</td>
|
||||
<td> The iterator type used to iterate over the ordering of the edges in the
|
||||
planar embedding of a particular vertex
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody></table>
|
||||
|
||||
<h3>Valid Expressions</h3>
|
||||
|
||||
<p>
|
||||
|
||||
<table border="1">
|
||||
|
||||
<tbody><tr><th>Expression</th><th>Return Type</th><th>Description</th>
|
||||
|
||||
</tr><tr>
|
||||
<td> <tt>embedding[v].begin()</tt> </td>
|
||||
<td> <tt>boost::property_traits<Embedding>::value_type::const_iterator
|
||||
</tt></td>
|
||||
<td> Returns an iterator to the beginning of the range of edges in the
|
||||
embedding around vertex v</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>embedding[v].end()</tt> </td>
|
||||
<td> <tt>boost::property_traits<Embedding>::value_type::const_iterator
|
||||
</tt></td>
|
||||
<td> Returns an iterator to the end of the range of edges in the
|
||||
embedding around vertex v</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>embedding[v].clear()</tt> </td>
|
||||
<td> <tt>void</tt></td>
|
||||
<td> Clears all edges in the embedding around a vertex <tt>v</tt></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <tt>embedding[v].push_back(e)</tt> </td>
|
||||
<td> <tt>void</tt></td>
|
||||
<td> Adds an edge <tt>e</tt> to the end of the sequence of embedded edges
|
||||
around the vertex <tt>v</tt> </td>
|
||||
</tr>
|
||||
|
||||
</tbody></table>
|
||||
|
||||
</p><h3>Complexity Guarantees</h3>
|
||||
|
||||
Starting with an empty embedding, any mixed sequence of <i>n</i> calls to a
|
||||
particular vertex's <tt>push_back</tt> and <tt>clear</tt> should take
|
||||
<i>O(n)</i> time.
|
||||
|
||||
<h3>Models</h3>
|
||||
|
||||
Any LValue property map that maps vertices to a <tt>std::vector</tt>,
|
||||
<tt>std::list</tt>, or <tt>std::deque</tt> models this
|
||||
concept. Below is an example of using this approach to create a model of
|
||||
PlanarEmbedding:
|
||||
|
||||
<pre>
|
||||
#include <boost/property_map/property_map.hpp>
|
||||
#include <vector>
|
||||
|
||||
...
|
||||
|
||||
// Assume a graph type "Graph" defined somewhere above and
|
||||
// an instance of Graph in a variable g.
|
||||
|
||||
// A typedef for the storage - a vector of vectors of edge descriptors
|
||||
typedef
|
||||
std::vector< std::vector< graph_traits<Graph>::edge_descriptor > >
|
||||
planar_embedding_storage_t;
|
||||
|
||||
// A typedef for the iterator property map, assuming the graph has
|
||||
// an interior vertex index map
|
||||
typedef
|
||||
boost::iterator_property_map< planar_embedding_storage_t::iterator,
|
||||
property_map<Graph, vertex_index_t>::type
|
||||
>
|
||||
planar_embedding_t;
|
||||
|
||||
// Create an instance of the storage and the property map
|
||||
planar_embedding_storage_t planar_embedding_storage(num_vertices(g));
|
||||
planar_embedding_t planar_embedding(planar_embedding_storage.begin(),
|
||||
get(vertex_index, g)
|
||||
);
|
||||
|
||||
// planar_embedding can now be passed to any function expecting a model
|
||||
// of PlanarEmbedding.
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
|
||||
<br>
|
||||
</p><hr>
|
||||
Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
|
||||
aaron.windsor@gmail.com</a>)
|
||||
|
||||
</body></html>
|
||||
@@ -0,0 +1,148 @@
|
||||
<HTML>
|
||||
<!-- Copyright 2007 Aaron Windsor
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
-->
|
||||
<HEAD>
|
||||
<TITLE>Planar Face Visitor Concept</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
|
||||
ALINK="#ff0000">
|
||||
<IMG SRC="../../../boost.png"
|
||||
ALT="C++ Boost" width="277" height="86">
|
||||
|
||||
<BR Clear>
|
||||
|
||||
<H1>Planar Face Visitor Concept</H1>
|
||||
|
||||
This concept defines the visitor interface for
|
||||
<a href="./planar_face_traversal.html"><tt>planar_face_traversal</tt></a>.
|
||||
Users can define a class with the Planar Face Visitor interface and pass an
|
||||
object of the class to <tt>planar_face_traversal</tt>, thereby augmenting the
|
||||
actions taken during the traversal. Note that objects passed to
|
||||
<tt>planar_face_traversal</tt> are passed by reference.
|
||||
|
||||
<h3>Notation</h3>
|
||||
|
||||
<table>
|
||||
<tbody><tr>
|
||||
<td><tt>V</tt></td>
|
||||
<td>A type that is a model of Planar Face Visitor.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>vis</tt></td>
|
||||
<td>An object of type <tt>V</tt>.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>G</tt></td>
|
||||
<td>A type that is a model of Graph.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>e</tt></td>
|
||||
<td>An object of type <tt>boost::graph_traits<G>::edge_descriptor</tt>.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>v</tt></td>
|
||||
<td>An object of type <tt>boost::graph_traits<G>::vertex_descriptor</tt>.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody></table>
|
||||
|
||||
|
||||
<h3>Valid Expressions</h3>
|
||||
|
||||
<table border="1">
|
||||
<tbody><tr>
|
||||
<th>Name</th><th>Expression</th><th>Return Type</th><th>Description</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Begin Traversal</td>
|
||||
<td><tt>vis.begin_traversal()</tt></td>
|
||||
<td><tt>void</tt></td>
|
||||
<td>
|
||||
This is invoked once per traversal, before the traversal begins.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Begin Face</td>
|
||||
<td><tt>vis.begin_face()</tt></td>
|
||||
<td><tt>void</tt></td>
|
||||
<td>
|
||||
This is invoked once for each face, before any vertices or edges on the face
|
||||
are visited.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Next Vertex</td>
|
||||
<td><tt>vis.next_vertex(v)</tt></td>
|
||||
<td><tt>void</tt></td>
|
||||
<td>
|
||||
This is invoked when a vertex is encountered while traversing a face.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>Next Edge</td>
|
||||
<td><tt>vis.next_edge(e)</tt></td>
|
||||
<td><tt>void</tt></td>
|
||||
<td>
|
||||
This is invoked when an edge is encountered while traversing a face.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>End Face</td>
|
||||
<td><tt>vis.end_face()</tt></td>
|
||||
<td><tt>void</tt></td>
|
||||
<td>
|
||||
This is invoked once for each face, after all vertices and edges on the face
|
||||
are visited.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>End Traversal</td>
|
||||
<td><tt>vis.end_traversal()</tt></td>
|
||||
<td><tt>void</tt></td>
|
||||
<td>
|
||||
This is invoked once per traversal, after the traversal ends.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody></table>
|
||||
|
||||
<h3>Models</h3>
|
||||
|
||||
<ul>
|
||||
<li> The file <a href="../../../boost/graph/planar_face_traversal.hpp">
|
||||
<tt>planar_face_traversal.hpp</tt></a> contains a class
|
||||
<tt>planar_face_traversal_visitor</tt> that implements empty actions for
|
||||
all event points of a Planar Face Visitor. In the case where only a few of the
|
||||
event points of Planar Face Visitor need to be implemented, one can derive from
|
||||
<tt>planar_face_traversal_visitor</tt> and only implement the necessary event
|
||||
points. <li> The implementation of <a href="./make_maximal_planar.html">
|
||||
<tt>make_maximal_planar</tt></a> uses a <tt>triangulation_visitor</tt> that is
|
||||
a model of Planar Face Visitor.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<HR>
|
||||
Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
|
||||
aaron.windsor@gmail.com</a>)
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>PropertyGraph</Title>
|
||||
@@ -94,7 +90,7 @@ function which returns a property map object.
|
||||
<td><pre>boost::property_map<G, PropertyTag>::type</pre>
|
||||
The type of the property map for the property specified by
|
||||
<TT>PropertyTag</TT>. This type must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">ReadWritePropertyMap</a>
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">ReadWritePropertyMap</a>
|
||||
with a key type the same as the graph's vertex or edge descriptor type.
|
||||
</td>
|
||||
</tr>
|
||||
@@ -103,7 +99,7 @@ with a key type the same as the graph's vertex or edge descriptor type.
|
||||
<td><pre>boost::property_map<G, PropertyTag>::const_type</pre>
|
||||
The type of the const property map for the property specified by
|
||||
<TT>PropertyTag</TT>. This type must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html">ReadablePropertyMap</a>
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">ReadablePropertyMap</a>
|
||||
with a key type the same as the graph's vertex or edge descriptor type.
|
||||
</td>
|
||||
</tr>
|
||||
@@ -206,8 +202,8 @@ The <tt>get()</tt> property map function must be constant time.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Property</Title>
|
||||
@@ -100,7 +96,7 @@ href="../../../boost/graph/properties.hpp"><tt>boost/graph/properties.hpp</tt></
|
||||
|
||||
<a href="./PropertyGraph.html">PropertyGraph</a>
|
||||
and
|
||||
<a href="../../property_map/property_map.html">Property Map Concepts</a>
|
||||
<a href="../../property_map/doc/property_map.html">Property Map Concepts</a>
|
||||
|
||||
<h3>Notes</h3>
|
||||
|
||||
@@ -113,8 +109,8 @@ type is also required to specialize
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
<HTML>
|
||||
<!--
|
||||
Copyright (c) Matyas Egyhazy 2008
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: TSP Tour Visitor</Title>
|
||||
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
|
||||
ALINK="#ff0000">
|
||||
<IMG SRC="../../../boost.png"
|
||||
ALT="C++ Boost" width="277" height="86">
|
||||
|
||||
<BR Clear>
|
||||
|
||||
<H1>TSP Tour Visitor concept</H1>
|
||||
|
||||
This concept defines the visitor interface for <a
|
||||
href="./metric_tsp_approx.html"><tt>metric_tsp_approx()</tt></a>
|
||||
and related algorithms. The user can create a class that matches this
|
||||
interface, and then pass objects of the class into
|
||||
<tt>metric_tsp_approx()</tt> to augment the actions taken during
|
||||
the search.
|
||||
|
||||
<h3>Refinement of</h3>
|
||||
|
||||
none
|
||||
|
||||
<h3>Notation</h3>
|
||||
|
||||
<Table>
|
||||
<TR>
|
||||
<TD><tt>V</tt></TD>
|
||||
<TD>A type that is a model of Dijkstra Visitor.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><tt>vis</tt></TD>
|
||||
<TD>An object of type <tt>V</tt>.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><tt>G</tt></TD>
|
||||
<TD>A type that is a model of Graph.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><tt>g</tt></TD>
|
||||
<TD>An object of type <tt>G</tt>.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><tt>v</tt></TD>
|
||||
<TD>An object of type <tt>boost::graph_traits<G>::vertex_descriptor</tt>.</TD>
|
||||
</TR>
|
||||
|
||||
</table>
|
||||
|
||||
<h3>Associated Types</h3>
|
||||
|
||||
none
|
||||
|
||||
<p>
|
||||
|
||||
<h3>Valid Expressions</h3>
|
||||
|
||||
<table border>
|
||||
<tr>
|
||||
<th>Name</th><th>Expression</th><th>Return Type</th><th>Description</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Visit Vertex</td>
|
||||
<td><tt>vis.visit_vertex(v, g)</tt></td>
|
||||
<td><tt>void</tt></td>
|
||||
<td>
|
||||
This is invoked on each vertex of the graph when it is visited as part of the TSP tour.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<h3>Models</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="tsp_tour_visitor.html"><tt>tsp_tour_visitor</tt></a>
|
||||
<li><a href="tsp_tour_len_visitor.html"><tt>tsp_tour_len_tsp_visitor</tt></a>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2008</TD><TD>
|
||||
Matyas Egyhazy</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>VertexAndEdgeListGraph</Title>
|
||||
@@ -66,8 +62,8 @@ requirements are added.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>VertexListGraph</Title>
|
||||
@@ -150,8 +146,8 @@ groups these requirements together, hence the VertexListGraph concept.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2001
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2001
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Vertex Mutable Graph</Title>
|
||||
@@ -77,9 +73,9 @@ No additional associated types.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<A HREF="../../../people/jeremy_siek.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Acknowledgements</Title>
|
||||
@@ -66,12 +62,12 @@ Science of the U.S. Department of Energy.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
<html>
|
||||
<!--
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||||
@@ -35,7 +42,7 @@ namespace boost {
|
||||
template <class Graph, class VertexDescriptor, class OutEdgeIter>
|
||||
class adjacency_iterator_generator {
|
||||
public:
|
||||
typedef <a href="../../utility/iterator_adaptors.htm#iterator_adaptor">iterator_adaptor</a><...> type;
|
||||
typedef <a href="../../iterator/doc/iterator_adaptor.html">iterator_adaptor</a><...> type;
|
||||
};
|
||||
}
|
||||
</pre>
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Jeremy Siek makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Adjacency List</Title>
|
||||
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
|
||||
ALINK="#ff0000">
|
||||
<IMG SRC="../../../boost.png"
|
||||
ALT="C++ Boost" width="277" height="86">
|
||||
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
|
||||
ALINK="#ff0000">
|
||||
<IMG SRC="../../../boost.png"
|
||||
ALT="C++ Boost" width="277" height="86">
|
||||
|
||||
<BR Clear>
|
||||
|
||||
@@ -150,18 +146,21 @@ shows how to represent a family tree with a graph.
|
||||
<H3>Model of</H3>
|
||||
|
||||
<P>
|
||||
<a href="./VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a>,
|
||||
<a href="./VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a>,
|
||||
<a href="./MutablePropertyGraph.html">MutablePropertyGraph</a>,
|
||||
<a href="../../utility/CopyConstructible.html">CopyConstructible</a>,
|
||||
and <a href="../../utility/Assignable.html">Assignable</a>.
|
||||
<a href="../../utility/Assignable.html">Assignable</a>,
|
||||
and <a href="../../serialization/doc/index.html">Serializable</a>.
|
||||
|
||||
|
||||
<P>
|
||||
|
||||
<H3>Where Defined</H3>
|
||||
|
||||
<P>
|
||||
<a href="../../../boost/graph/adjacency_list.hpp"><TT>boost/graph/adjacency_list.hpp</TT></a>
|
||||
|
||||
<a href="../../../boost/graph/adjacency_list.hpp"><TT>boost/graph/adjacency_list.hpp</TT></a><br><br>
|
||||
Also, the serialization functionality is in
|
||||
<a href="../../../boost/graph/adj_list_serialize.hpp"><tt>boost/graph/adj_list_serialize.hpp</tt></a>.
|
||||
<P>
|
||||
|
||||
<H2>Vertex and Edge Properties</H2>
|
||||
@@ -176,13 +175,13 @@ properties is described in Section <A
|
||||
HREF="./using_adjacency_list.html#sec:adjacency-list-properties">Internal
|
||||
Properties </A>. The property maps are objects that implement the
|
||||
interface defined in Section <A
|
||||
HREF="../../property_map/property_map.html">Property Map
|
||||
HREF="../../property_map/doc/property_map.html">Property Map
|
||||
Concepts</A> or may be <a href="bundles.html">bundled properties</a>,
|
||||
which have a more succinct syntax. The types of all property values
|
||||
must be Copy Constructible, Assignable, and Default Constructible.
|
||||
must be Copy Constructible, Assignable, and Default Constructible.
|
||||
The property maps obtained from the
|
||||
<TT>adjacency_list</TT> class are models of the <a
|
||||
href="../../property_map/LvaluePropertyMap.html">Lvalue Property
|
||||
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property
|
||||
Map</a> concept. If the <TT>adjacency_list</TT> is const,
|
||||
then the property map is constant, otherwise the property
|
||||
map is mutable.
|
||||
@@ -195,7 +194,7 @@ the <TT>vertex_index_t</TT> property. The indices fall in the range
|
||||
removed the indices are adjusted so that they retain these
|
||||
properties. Some care must be taken when using these indices to access
|
||||
exterior property storage. The property map for vertex index is a
|
||||
model of <a href="../../property_map/ReadablePropertyMap.html">Readable
|
||||
model of <a href="../../property_map/doc/ReadablePropertyMap.html">Readable
|
||||
Property Map</a>.
|
||||
|
||||
<P>
|
||||
@@ -323,30 +322,51 @@ each operation.
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Table:</STRONG>
|
||||
Summary of Descriptor and Iterator Invalidation.
|
||||
</CAPTION>
|
||||
<tr> <th>Function</th> <th>Vertex Desc</th> <th>Edge Desc</th>
|
||||
<th>Vertex Iter</th> <th>Edge Iter</th> <th>Adj Iter</th> </tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>add_edge()</tt></td> <td align=center><tt>OK</tt></td><td
|
||||
align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td><td
|
||||
align=center><tt>EL=vecS &&<br> Directed=directedS</tt></td><td align=center><tt>EL=vecS</tt></td>
|
||||
<th>Function</th>
|
||||
<th>Vertex Desc</th>
|
||||
<th>Edge Desc</th>
|
||||
<th>Vertex Iter</th>
|
||||
<th>Edge Iter</th>
|
||||
<th>Adj Iter</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>remove_edge()<br>remove_edge_if()<br>remove_out_edge_if()<br>remove_in_edge_if()<br>clear_vertex()</tt></td><td align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>EL=vecS &&<br> Directed=directedS</tt></td><td align=center><tt>EL=vecS</tt></td>
|
||||
<td>
|
||||
<tt>add_edge()</tt></td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>EL=vecS && <br>Directed=directedS</tt></td>
|
||||
<td align=center><tt>EL=vecS</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>add_vertex()</tt></td><td align=center><tt>OK</tt></td><td
|
||||
align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td><td
|
||||
align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td>
|
||||
<td><tt>remove_edge()<br>remove_edge_if()<br>remove_out_edge_if()<br>
|
||||
remove_in_edge_if()<br>clear_vertex()</tt>
|
||||
</td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>EL=vecS && <br>Directed=directedS</tt></td>
|
||||
<td align=center><tt>EL=vecS</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>remove_vertex()</tt></td><td align=center><tt>VL=vecS</tt></td><td align=center><tt>VL=vecS</tt></td><td align=center><tt>VL=vecS</tt></td><td align=center><tt>VL=vecS</tt></td><td align=center><tt>VL=vecS</tt></td>
|
||||
<td><tt>add_vertex()</tt></td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>OK</tt></td>
|
||||
<td align=center><tt>VL=vecS && <br/> Directed=directedS</tt></td>
|
||||
<td align=center><tt>VL=vecS && <br/> Directed=directedS</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>remove_vertex()</tt></td>
|
||||
<td align=center><tt>VL=vecS</tt></td>
|
||||
<td align=center><tt>VL=vecS</tt></td>
|
||||
<td align=center><tt>VL=vecS</tt></td>
|
||||
<td align=center><tt>VL=vecS</tt></td>
|
||||
<td align=center><tt>VL=vecS</tt></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
<H2>Associated Types</H2>
|
||||
|
||||
<hr>
|
||||
@@ -355,7 +375,7 @@ align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td>
|
||||
<br>
|
||||
and
|
||||
<br>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed>::vertex_descriptor</tt>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed, EdgeList>::vertex_descriptor</tt>
|
||||
<br><br>
|
||||
The type for the vertex descriptors associated with the
|
||||
<TT>adjacency_list</TT>.
|
||||
@@ -364,7 +384,7 @@ The type for the vertex descriptors associated with the
|
||||
|
||||
<tt>graph_traits<adjacency_list>::edge_descriptor</tt><br>
|
||||
and<br>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed>::edge_descriptor</tt>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed, EdgeList>::edge_descriptor</tt>
|
||||
<br><br>
|
||||
The type for the edge descriptors associated with the
|
||||
<TT>adjacency_list</TT>.
|
||||
@@ -425,7 +445,7 @@ as <tt>out_edge_iterator</tt>.
|
||||
|
||||
<tt>graph_traits<adjacency_list>::directed_category</tt><br>
|
||||
and<br>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed>::directed_category</tt>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed, EdgeList>::directed_category</tt>
|
||||
<br><br>
|
||||
Provides information about whether the graph is
|
||||
directed (<TT>directed_tag</TT>) or undirected
|
||||
@@ -435,7 +455,7 @@ directed (<TT>directed_tag</TT>) or undirected
|
||||
|
||||
<tt>graph_traits<adjacency_list>::edge_parallel_category</tt><br>
|
||||
and<br>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed>::edge_parallel_category</tt>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed, EdgeList>::edge_parallel_category</tt>
|
||||
<br><br>
|
||||
This describes whether the graph class allows the insertion of
|
||||
parallel edges (edges with the same source and target). The two tags
|
||||
@@ -446,13 +466,17 @@ parallel edges while the others allow parallel edges.
|
||||
|
||||
<hr>
|
||||
|
||||
<tt>graph_traits<adjacency_list>::vertices_size_type</tt>
|
||||
<tt>graph_traits<adjacency_list>::vertices_size_type</tt><br>
|
||||
and<br>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed_list, EdgeList>::vertices_size_type</tt><br>
|
||||
<br><br>
|
||||
The type used for dealing with the number of vertices in the graph.
|
||||
|
||||
<hr>
|
||||
|
||||
<tt>graph_traits<adjacency_list>::edge_size_type</tt>
|
||||
<tt>graph_traits<adjacency_list>::edge_size_type</tt><br>
|
||||
and<br>
|
||||
<tt>adjacency_list_traits<OutEdgeList, VertexList, Directed_list, EdgeList>::edge_size_type</tt><br>
|
||||
<br><br>
|
||||
The type used for dealing with the number of edges in the graph.
|
||||
|
||||
@@ -536,7 +560,7 @@ Assignment operator. Makes this graph a copy of graph
|
||||
<hr>
|
||||
|
||||
<pre>
|
||||
adjacency_list(vertices_size_type n,
|
||||
adjacency_list(vertices_size_type n,
|
||||
const GraphProperty& p = GraphProperty())
|
||||
</pre>
|
||||
Creates a graph object with <TT>n</TT> vertices and zero edges.
|
||||
@@ -547,8 +571,8 @@ Creates a graph object with <TT>n</TT> vertices and zero edges.
|
||||
<pre>
|
||||
template <class EdgeIterator>
|
||||
adjacency_list(EdgeIterator first, EdgeIterator last,
|
||||
vertices_size_type n,
|
||||
edges_size_type m = 0,
|
||||
vertices_size_type n,
|
||||
edges_size_type m = 0,
|
||||
const GraphProperty& p = GraphProperty())
|
||||
</pre>
|
||||
Creates a graph object with <TT>n</TT> vertices and with the edges
|
||||
@@ -568,7 +592,7 @@ template <class EdgeIterator, class EdgePropertyIterator>
|
||||
adjacency_list(EdgeIterator first, EdgeIterator last,
|
||||
EdgePropertyIterator ep_iter,
|
||||
vertices_size_type n,
|
||||
vertices_size_type m = 0,
|
||||
edges_size_type m = 0,
|
||||
const GraphProperty& p = GraphProperty())
|
||||
</pre>
|
||||
Creates a graph object with <TT>n</TT> vertices and with the edges
|
||||
@@ -597,7 +621,7 @@ void swap(adjacency_list& x)
|
||||
Swap the vertices, edges, and properties of this graph with the
|
||||
vertices, edges, and properties of graph <tt>x</tt>.
|
||||
<hr>
|
||||
|
||||
|
||||
<P>
|
||||
|
||||
<H2>Non-Member Functions</H2>
|
||||
@@ -778,7 +802,7 @@ returned edge descriptor points to the already existing edge.
|
||||
<p>
|
||||
The placement of the new edge in the out-edge list is in general
|
||||
unspecified, though ordering of the out-edge list can be accomplished
|
||||
through the choice of <tt>OutEdgeList</tt>.
|
||||
through the choice of <tt>OutEdgeList</tt>.
|
||||
|
||||
If the <tt>VertexList</tt> selector is
|
||||
<tt>vecS</tt>, and if either vertex descriptor <tt>u</tt> or
|
||||
@@ -818,7 +842,7 @@ value of the edge's internal property storage. Also see the previous
|
||||
void remove_edge(vertex_descriptor u, vertex_descriptor v,
|
||||
adjacency_list& g)
|
||||
</pre>
|
||||
Removes the edge <i>(u,v)</i> from the graph.
|
||||
Removes the edge <i>(u,v)</i> from the graph.
|
||||
<p>
|
||||
This operation causes any outstanding edge descriptors or iterators
|
||||
that point to edge <i>(u,v)</i> to become invalid. In addition, if
|
||||
@@ -864,7 +888,7 @@ void remove_out_edge_if(vertex_descriptor u, Predicate predicate,
|
||||
</pre>
|
||||
Removes all out-edges of vertex <i>u</i> from the graph that satisfy
|
||||
the <tt>predicate</tt>. That is, if the predicate returns true when
|
||||
applied to an edge descriptor, then the edge is removed.
|
||||
applied to an edge descriptor, then the edge is removed.
|
||||
<p>
|
||||
The affect on descriptor and iterator stability is the same as that of
|
||||
invoking <tt>remove_edge()</tt> on each of the removed edges.
|
||||
@@ -896,7 +920,7 @@ void remove_edge_if(Predicate predicate, adjacency_list& g)
|
||||
</pre>
|
||||
Removes all edges from the graph that satisfy
|
||||
the <tt>predicate</tt>. That is, if the predicate returns true when
|
||||
applied to an edge descriptor, then the edge is removed.
|
||||
applied to an edge descriptor, then the edge is removed.
|
||||
<p>
|
||||
The affect on descriptor and iterator stability is the same as that of
|
||||
invoking <tt>remove_edge()</tt> on each of the removed edges.
|
||||
@@ -909,7 +933,7 @@ vertex_descriptor
|
||||
add_vertex(adjacency_list& g)
|
||||
</pre>
|
||||
Adds a vertex to the graph and returns the vertex descriptor for the
|
||||
new vertex.
|
||||
new vertex.
|
||||
</a>
|
||||
|
||||
<hr>
|
||||
@@ -972,7 +996,7 @@ void remove_vertex(vertex_descriptor u, adjacency_list& g)
|
||||
Remove vertex <i>u</i> from the vertex set of the graph. It is assumed
|
||||
that there are no edges to or from vertex <i>u</i> when it is removed.
|
||||
One way to make sure of this is to invoke <TT>clear_vertex()</TT>
|
||||
beforehand.
|
||||
beforehand.
|
||||
<p>
|
||||
If the <TT>VertexList</TT> template parameter of the
|
||||
<TT>adjacency_list</TT> was <TT>vecS</TT>, then all vertex
|
||||
@@ -1053,9 +1077,35 @@ attached to the graph object <tt>g</tt>. The <tt>graph_property</tt>
|
||||
traits class is defined in <a
|
||||
href="../../../boost/graph/adjacency_list.hpp"><tt>boost/graph/adjacency_list.hpp</tt></a>.
|
||||
|
||||
<!-- add the shortcut property functions -->
|
||||
|
||||
<hr>
|
||||
|
||||
<!-- add the shortcut property functions -->
|
||||
|
||||
|
||||
<h4><a name="serialization">Serialization</a></h4>
|
||||
|
||||
<hr>
|
||||
|
||||
<pre>
|
||||
template<class <a href="../../serialization/doc/archives.html#saving_interface">SavingArchive</a>>
|
||||
SavingArchive& operator<<(SavingArchive& ar, const adjacency_list& graph);
|
||||
</pre>
|
||||
Serializes the graph into the archive. Requires the vertex and edge properties of the
|
||||
graph to be <a href="../../serialization/doc/index.html">Serializable</a>.
|
||||
<br>
|
||||
Include <a href="../../../boost/graph/adj_list_serialize.hpp"><tt>boost/graph/adj_list_serialize.hpp</tt></a>.
|
||||
<hr>
|
||||
|
||||
<pre>
|
||||
template<class <a href="../../serialization/doc/archives.html#loading_interface">LoadingArchive</a>>
|
||||
LoadingArchive& operator>>(LoadingArchive& ar, const adjacency_list& graph);
|
||||
</pre>
|
||||
Reads the graph from the archive. Requires the vertex and edge properties of the
|
||||
graph to be <a href="../../serialization/doc/index.html">Serializable</a>.
|
||||
<br>
|
||||
Include <a href="../../../boost/graph/adj_list_serialize.hpp"><tt>boost/graph/adj_list_serialize.hpp</tt></a>.
|
||||
<hr>
|
||||
|
||||
|
||||
<h3>See Also</h3>
|
||||
@@ -1070,18 +1120,18 @@ href="../../../boost/graph/adjacency_list.hpp"><tt>boost/graph/adjacency_list.hp
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</HTML>
|
||||
<!-- LocalWords: gif ALT OutEdgeList EdgeList VertexList html VertexProperties EdgeProperties
|
||||
-->
|
||||
<!-- LocalWords: GraphPropertyTag cpp enum ai cout endl VertexAndEdgeListGraph
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Graph Traits</Title>
|
||||
@@ -148,12 +144,12 @@ parallel edges (<tt>disallow_parallel_edge_tag</tt>).
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Jeremy Siek makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Adjacency Matrix</Title>
|
||||
@@ -209,14 +205,17 @@ The output is:
|
||||
|
||||
<h3>Model Of</h3>
|
||||
|
||||
<a href="./VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a>, <a
|
||||
<a href="./VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a>,
|
||||
<a href="./IncidenceGraph.html">Incidence Graph</a>,
|
||||
<a href="./BidirectionalGraph.html">Bidirectional Graph</a>,
|
||||
<a
|
||||
href="./AdjacencyMatrix.html">AdjacencyMatrix</a>, <a
|
||||
href="./MutablePropertyGraph.html">MutablePropertyGraph</a>,
|
||||
<a href="../../utility/CopyConstructible.html">CopyConstructible</a>,
|
||||
and <a href="../../utility/Assignable.html">Assignable</a>.
|
||||
|
||||
|
||||
<h3>Associates Types</h3>
|
||||
<h3>Associated Types</h3>
|
||||
|
||||
<hr>
|
||||
|
||||
@@ -255,6 +254,13 @@ The type for the edge descriptors associated with the
|
||||
iterator models <a href="../../utility/MultiPassInputIterator.html">MultiPassInputIterator</a>. <br>
|
||||
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
|
||||
|
||||
<hr>
|
||||
<tt>graph_traits<adjacency_matrix>::in_edge_iterator</tt>
|
||||
<br><br>
|
||||
The type for the iterators returned by <tt>in_edges()</tt>. This
|
||||
iterator models <a href="../../utility/MultiPassInputIterator.html">MultiPassInputIterator</a>. <br>
|
||||
(Required by <a href="BidirectionalGraph.html">BidirectionalGraph</a>.)
|
||||
|
||||
<hr>
|
||||
<tt>graph_traits<adjacency_matrix>::adjacency_iterator</tt>
|
||||
<br><br>
|
||||
@@ -361,15 +367,15 @@ adjacency_matrix(EdgeIterator first, EdgeIterator last,
|
||||
std::pair<vertex_iterator, vertex_iterator>
|
||||
vertices(const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns an iterator-range providing access to the vertex set of graph <tt>g</i>.<br>
|
||||
Returns an iterator-range providing access to the vertex set of graph <tt>g</tt>.<br>
|
||||
(Required by <a href="VertexListGraph.html">VertexListGraph</a>.)
|
||||
|
||||
<hr>
|
||||
<pre>
|
||||
std::pair<edge_iterator, edge_iterator>
|
||||
edges(const adjacency_matrix& g)
|
||||
edges(const adjacency_matrix& g);
|
||||
</pre>
|
||||
Returns an iterator-range providing access to the edge set of graph <tt>g</i>.<br>
|
||||
Returns an iterator-range providing access to the edge set of graph <tt>g</tt>.<br>
|
||||
(Required by <a href="EdgeListGraph.html">EdgeListGraph</a>.)
|
||||
|
||||
<hr>
|
||||
@@ -378,7 +384,7 @@ std::pair<adjacency_iterator, adjacency_iterator>
|
||||
adjacent_vertices(vertex_descriptor v, const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns an iterator-range providing access to the vertices adjacent to
|
||||
vertex <tt>v</i> in graph <tt>g</i>.<br>
|
||||
vertex <tt>v</tt> in graph <tt>g</tt>.<br>
|
||||
(Required by <a href="AdjacencyGraph.html">AdjacencyGraph</a>.)
|
||||
|
||||
<hr>
|
||||
@@ -387,9 +393,9 @@ std::pair<out_edge_iterator, out_edge_iterator>
|
||||
out_edges(vertex_descriptor v, const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns an iterator-range providing access to the out-edges of
|
||||
vertex <tt>v</i> in graph <tt>g</i>. If the graph is undirected,
|
||||
this iterator-range provides access to all edge incident on
|
||||
vertex <tt>v</i>. <br>
|
||||
vertex <tt>v</tt> in graph <tt>g</tt>. If the graph is undirected,
|
||||
this iterator-range provides access to all edges incident on
|
||||
vertex <tt>v</tt>. <br>
|
||||
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
|
||||
|
||||
<hr>
|
||||
@@ -397,7 +403,7 @@ vertex <tt>v</i>. <br>
|
||||
vertex_descriptor
|
||||
source(edge_descriptor e, const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns the source vertex of edge <tt>e</i>.<br>
|
||||
Returns the source vertex of edge <tt>e</tt>.<br>
|
||||
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
|
||||
|
||||
<hr>
|
||||
@@ -405,7 +411,7 @@ Returns the source vertex of edge <tt>e</i>.<br>
|
||||
vertex_descriptor
|
||||
target(edge_descriptor e, const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns the target vertex of edge <tt>e</i>.<br>
|
||||
Returns the target vertex of edge <tt>e</tt>.<br>
|
||||
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
|
||||
|
||||
<hr>
|
||||
@@ -413,15 +419,35 @@ Returns the target vertex of edge <tt>e</i>.<br>
|
||||
degree_size_type
|
||||
out_degree(vertex_descriptor u, const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns the number of edges leaving vertex <tt>u</i>.<br>
|
||||
Returns the number of edges leaving vertex <tt>u</tt>.<br>
|
||||
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
|
||||
<hr>
|
||||
|
||||
<hr>
|
||||
<pre>
|
||||
std::pair<in_edge_iterator, in_edge_iterator>
|
||||
in_edges(vertex_descriptor v, const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns an iterator-range providing access to the in-edges of
|
||||
vertex <tt>v</tt> in graph <tt>g</tt>. If the graph is undirected,
|
||||
this iterator-range provides access to all edges incident on
|
||||
vertex <tt>v</tt>. <br>
|
||||
(Required by <a href="BidirectionalGraph.html">BidirectionalGraph</a>.)
|
||||
|
||||
<hr>
|
||||
<pre>
|
||||
degree_size_type
|
||||
in_degree(vertex_descriptor u, const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns the number of edges entering vertex <tt>u</tt>.<br>
|
||||
(Required by <a href="BidirectionalGraph.html">BidirectionalGraph</a>.)
|
||||
<hr>
|
||||
|
||||
<hr>
|
||||
<pre>
|
||||
vertices_size_type num_vertices(const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns the number of vertices in the graph <tt>g</i>.<br>
|
||||
Returns the number of vertices in the graph <tt>g</tt>.<br>
|
||||
(Required by <a href="VertexListGraph.html">VertexListGraph</a>.)
|
||||
|
||||
<hr>
|
||||
@@ -443,7 +469,7 @@ std::pair<edge_descriptor, bool>
|
||||
edge(vertex_descriptor u, vertex_descriptor v,
|
||||
const adjacency_matrix& g)
|
||||
</pre>
|
||||
Returns the edge connecting vertex <tt>u</i> to vertex <tt>v</i> in graph <tt>g</i>.<br>
|
||||
Returns the edge connecting vertex <tt>u</tt> to vertex <tt>v</tt> in graph <tt>g</tt>.<br>
|
||||
(Required by <a href="AdjacencyMatrix.html">AdjacencyMatrix</a>.)
|
||||
|
||||
<hr>
|
||||
@@ -452,7 +478,7 @@ std::pair<edge_descriptor, bool>
|
||||
add_edge(vertex_descriptor u, vertex_descriptor v,
|
||||
adjacency_matrix& g)
|
||||
</pre>
|
||||
Adds edge <tt>(u,v)</i> to the graph and returns the edge descriptor for
|
||||
Adds edge <tt>(u,v)</tt> to the graph and returns the edge descriptor for
|
||||
the new edge. If the edge is already in the graph then a duplicate
|
||||
will not be added and the <tt>bool</tt> flag will be <tt>false</tt>.
|
||||
This operation does not invalidate any of the graph's iterators
|
||||
@@ -466,7 +492,7 @@ add_edge(vertex_descriptor u, vertex_descriptor v,
|
||||
const EdgeProperty& p,
|
||||
adjacency_matrix& g)
|
||||
</pre>
|
||||
Adds edge <tt>(u,v)</i> to the graph and attaches <tt>p</tt> as the
|
||||
Adds edge <tt>(u,v)</tt> to the graph and attaches <tt>p</tt> as the
|
||||
value of the edge's internal property storage. Also see the previous
|
||||
<tt>add_edge()</tt> member function for more details.
|
||||
|
||||
@@ -475,7 +501,7 @@ value of the edge's internal property storage. Also see the previous
|
||||
void remove_edge(vertex_descriptor u, vertex_descriptor v,
|
||||
adjacency_matrix& g)
|
||||
</pre>
|
||||
Removes the edge <tt>(u,v)</i> from the graph. <br>
|
||||
Removes the edge <tt>(u,v)</tt> from the graph. <br>
|
||||
(Required by <a href="MutableGraph.html">MutableGraph</a>.)
|
||||
|
||||
<hr>
|
||||
@@ -490,7 +516,7 @@ to calling <tt>remove_edge(source(e, g), target(e, g), g)</tt>.<br>
|
||||
<pre>
|
||||
void clear_vertex(vertex_descriptor u, adjacency_matrix& g)
|
||||
</pre>
|
||||
Removes all edges to and from vertex <tt>u</i>. The vertex still appears
|
||||
Removes all edges to and from vertex <tt>u</tt>. The vertex still appears
|
||||
in the vertex set of the graph.<br>
|
||||
(Required by <a href="MutableGraph.html">MutableGraph</a>.)
|
||||
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) 2004 Kris Beevers
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) 2004 Kris Beevers
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: astar_heuristic</Title>
|
||||
@@ -90,7 +86,7 @@ to a goal.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
|
||||
Rensselaer Polytechnic Institute (<A
|
||||
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) 2004 Kris Beevers
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) 2004 Kris Beevers
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: A* Heuristic Search</Title>
|
||||
@@ -54,6 +50,25 @@ astar_search
|
||||
VertexIndexMap index_map, ColorMap color,
|
||||
CompareFunction compare, CombineFunction combine,
|
||||
CostInf inf, CostZero zero);
|
||||
|
||||
<i>// Version that does not initialize property maps (used for implicit graphs)</i>
|
||||
template <typename VertexListGraph, typename AStarHeuristic,
|
||||
typename <a href="AStarVisitor.html">AStarVisitor</a>, typename PredecessorMap,
|
||||
typename CostMap, typename DistanceMap,
|
||||
typename WeightMap, typename ColorMap,
|
||||
typename VertexIndexMap,
|
||||
typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">CombineFunction</a>,
|
||||
typename CostInf, typename CostZero>
|
||||
inline void
|
||||
astar_search_no_init
|
||||
(VertexListGraph &g,
|
||||
typename graph_traits<VertexListGraph>::vertex_descriptor s,
|
||||
AStarHeuristic h, AStarVisitor vis,
|
||||
PredecessorMap predecessor, CostMap cost,
|
||||
DistanceMap distance, WeightMap weight,
|
||||
ColorMap color, VertexIndexMap index_map,
|
||||
CompareFunction compare, CombineFunction combine,
|
||||
CostInf inf, CostZero zero);
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -96,7 +111,10 @@ useful for searching large state spaces -- in gameplaying scenarios
|
||||
(e.g. chess), for example -- in which it may not be possible to store
|
||||
the entire graph. Implicit searches can be performed with this
|
||||
implementation of A* by creating special visitors that generate
|
||||
neighbors of newly-expanded vertices.
|
||||
neighbors of newly-expanded vertices. Please note that
|
||||
<tt>astar_search_no_init()</tt> must be used for implicit graphs; the basic
|
||||
<tt>astar_search()</tt> function requires a graph that models
|
||||
<a href="VertexListGraph.html"><tt>VertexListGraph</tt></a>.
|
||||
</P>
|
||||
|
||||
<P>
|
||||
@@ -238,7 +256,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
|
||||
href="./exception.html#negative_edge"><tt>negative_edge</tt></a>
|
||||
exception if one of the edges is negative. The type
|
||||
<tt>WeightMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html"><tt>Readable
|
||||
href="../../property_map/doc/ReadablePropertyMap.html"><tt>Readable
|
||||
Property Map</tt></a>. The edge descriptor type of the graph needs
|
||||
to be usable as the key type for the weight map. The value type
|
||||
for this map must be the same as the value type of the distance
|
||||
@@ -252,12 +270,16 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
num_vertices(g))</tt>. This is necessary for efficient updates of
|
||||
the heap data structure when an edge is relaxed. The type
|
||||
<tt>VertexIndexMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html"><tt>Readable
|
||||
href="../../property_map/doc/ReadablePropertyMap.html"><tt>Readable
|
||||
Property Map</tt></a>. The value type of the map must be an integer
|
||||
type. The vertex descriptor type of the graph needs to be usable as
|
||||
the key type of the map.<br>
|
||||
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.
|
||||
</blockquote>
|
||||
|
||||
OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
|
||||
@@ -269,7 +291,7 @@ OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
|
||||
<tt>p[u] = u</tt> then <tt>u</tt> is either the start vertex or a
|
||||
vertex that is not reachable from the start. The
|
||||
<tt>PredecessorMap</tt> type must be a <a
|
||||
href="../../property_map/ReadWritePropertyMap.html"><tt>Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html"><tt>Read/Write
|
||||
Property Map</tt></a> with key and vertex types the same as the
|
||||
vertex descriptor type of the graph.<br>
|
||||
|
||||
@@ -283,7 +305,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
|
||||
vertex in the graph <tt>g</tt> is recorded in this property map.
|
||||
The shortest path weight is the sum of the edge weights along the
|
||||
shortest path. The type <tt>DistanceMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html"><tt>Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html"><tt>Read/Write
|
||||
Property Map</tt></a>. The vertex descriptor type of the graph
|
||||
needs to be usable as the key type of the distance map. The value
|
||||
type of the distance map is the element type of a <a
|
||||
@@ -307,7 +329,7 @@ UTIL/OUT: <tt>rank_map(CostMap c_map)</tt>
|
||||
the estimated cost (as returned by the heuristic function
|
||||
<tt>h</tt>) from the vertex to a goal. The type <tt>CostMap</tt>
|
||||
must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html"><tt>Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html"><tt>Read/Write
|
||||
Property Map</tt></a>. The vertex descriptor type of the graph
|
||||
needs to be usable as the key type of the distance map. The value
|
||||
type of the distance map is the element type of a <a
|
||||
@@ -336,7 +358,7 @@ UTIL/OUT: <tt>color_map(ColorMap c_map)</tt>
|
||||
reachable from the source vertex will have been colored black. All
|
||||
other vertices will still be white. The type <tt>ColorMap</tt> must
|
||||
be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html"><tt>Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html"><tt>Read/Write
|
||||
Property Map</tt></a>. A vertex descriptor must be usable as the
|
||||
key type of the map, and the value type of the map must be a model
|
||||
of <a href="./ColorValue.html"><tt>Color Value</tt></a>.<br>
|
||||
@@ -439,7 +461,7 @@ The time complexity is <i>O((E + V) log V)</i>.
|
||||
is invoked on edge <i>(u,v)</i> if <i>d[u] + w(u,v) < d[v]</i>.
|
||||
<li><b><tt>vis.edge_not_relaxed(e, g)</tt></b>
|
||||
is invoked if the edge is not relaxed (see above).
|
||||
<li><b><tt>vis.black_target(u, g)</tt></b>
|
||||
<li><b><tt>vis.black_target(e, g)</tt></b>
|
||||
is invoked when a vertex that is on the CLOSED list is
|
||||
"rediscovered" via a more efficient path, and is re-added to the
|
||||
OPEN list.
|
||||
@@ -467,7 +489,7 @@ this state by pointer or reference.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
|
||||
Rensselaer Polytechnic Institute (<A
|
||||
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) 2004 Kris Beevers
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) 2004 Kris Beevers
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: astar_visitor</Title>
|
||||
@@ -102,7 +98,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
|
||||
Rensselaer Polytechnic Institute (<A
|
||||
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Bandwidth</Title>
|
||||
@@ -89,8 +85,8 @@ of the i-th bandwidths <i>B<sub>i</sub>(G)</i>.<br>
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!--
|
||||
Copyright (c) 2004 Trustees of Indiana University
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content=
|
||||
@@ -89,7 +96,7 @@ OUT/UTIL: <tt>EdgeCentralityMap edge_centrality_map</tt>
|
||||
This property map is used to accumulate the betweenness centrality
|
||||
of each edge, and is a secondary form of output for the
|
||||
algorithm. The type <tt>EdgeCentralityMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>, with the graph's edge descriptor type as its key
|
||||
type. The value type of this property map should be the same as the
|
||||
value type of the <tt>CentralityMap</tt> property map.<br>
|
||||
@@ -107,10 +114,14 @@ IN: <tt>VertexIndexMap vertex_index</tt>
|
||||
num_vertices(g))</tt>. This is necessary for efficient updates of the
|
||||
heap data structure when an edge is relaxed. The type
|
||||
<tt>VertexIndexMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
integer type. The vertex descriptor type of the graph needs to be
|
||||
usable as the key type of the map.<br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.<br>
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
|
||||
@@ -129,7 +140,7 @@ IN: <tt>VertexIndexMap vertex_index</tt>
|
||||
<table>
|
||||
<tr valign="top">
|
||||
<td nowrap>Copyright © 2004</td>
|
||||
<td><a href="../../../people/doug_gregor.html">Douglas Gregor</a>,
|
||||
<td><a href="http://www.boost.org/people/doug_gregor.html">Douglas Gregor</a>,
|
||||
Indiana University (dgregor@cs.indiana.edu)<br>
|
||||
<a href="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</a>, Indiana
|
||||
University (<a href=
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Bellman Ford Shortest Paths</Title>
|
||||
@@ -205,7 +201,7 @@ IN: <tt>weight_map(WeightMap w)</tt>
|
||||
<blockquote>
|
||||
The weight (also know as ``length'' or ``cost'') of each edge in the
|
||||
graph. The <tt>WeightMap</tt> type must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html">Readable Property
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
|
||||
Map</a>. The key type for this property map must be the edge
|
||||
descriptor of the graph. The value type for the weight map must be
|
||||
<i>Addable</i> with the distance map's value type. <br>
|
||||
@@ -223,7 +219,7 @@ OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
|
||||
u</i> then <i>u</i> is either the source vertex or a vertex that is
|
||||
not reachable from the source. The <tt>PredecessorMap</tt> type
|
||||
must be a <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> which key and vertex types the same as the vertex
|
||||
descriptor type of the graph.<br>
|
||||
<b>Default:</b> <tt>dummy_property_map</tt><br>
|
||||
@@ -236,7 +232,7 @@ IN/OUT: <tt>distance_map(DistanceMap d)</tt>
|
||||
The shortest path weight from the source vertex to each vertex in
|
||||
the graph <tt>g</tt> is recorded in this property map. The type
|
||||
<tt>DistanceMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The key type of the property map must be the
|
||||
vertex descriptor type of the graph, and the value type of the
|
||||
distance map must be <a
|
||||
@@ -346,7 +342,7 @@ href="../example/bellman-example.cpp"><TT>examples/bellman-example.cpp</TT></a>.
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: bellman_visitor</Title>
|
||||
@@ -101,12 +97,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<!--
|
||||
Copyright (c) 2004 Trustees of Indiana University
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<head>
|
||||
<title>Boost Graph Library: Brandes' Betweenness Centrality</title>
|
||||
</head>
|
||||
@@ -134,13 +141,13 @@ IN: <tt>const Graph& g</tt>
|
||||
UTIL: <tt>IncomingMap incoming</tt>
|
||||
<blockquote>
|
||||
This property map records the set of edges incoming to each vertex that comprise a shortest path from a particular source vertex through this vertex, and is used internally by the algorithm.The <tt>IncomingMap</tt> type must be a <a
|
||||
href="../../property_map/LvaluePropertyMap.html">Lvalue Property
|
||||
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property
|
||||
Map</a> whose key type is the same as the vertex descriptor type of
|
||||
the graph and whose value type is a Sequence (e.g., an
|
||||
<tt>std::vector</tt>) containing edge descriptors.<br>
|
||||
|
||||
<b>Default:</b> <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of <tt>std::vector<Edge></tt>, where
|
||||
<tt>Edge</tt> is the edge descriptor type of the graph.<br>
|
||||
@@ -154,14 +161,14 @@ UTIL: <tt>DistanceMap distance_map</tt>
|
||||
vertex in the graph <tt>g</tt> is recorded in this property map, but
|
||||
the result is only used internally. The type <tt>DistanceMap</tt>
|
||||
must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The vertex descriptor type of the graph needs to
|
||||
be usable as the key type of the distance map. The value type of the
|
||||
distance map is the element type of a <a
|
||||
href="./Monoid.html">Monoid</a>.<br>
|
||||
|
||||
<b>Default:</b> <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type (or the
|
||||
<tt>vertices_size_type</tt> of the graph when no weight map exists)
|
||||
@@ -175,14 +182,14 @@ UTIL: <tt>DependencyMap dependency</tt>
|
||||
<blockquote>
|
||||
Property map used internally to accumulate partial betweenness
|
||||
centrality results. The type <tt>DependencyMap</tt> must be a model
|
||||
of <a href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
of <a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The vertex descriptor type of the graph needs to
|
||||
be usable as the key type of the dependency map. The value type of
|
||||
the dependency map must be compatible with the value type of the
|
||||
centrality map.<br>
|
||||
|
||||
<b>Default:</b> <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of the <tt>CentralityMap</tt>'s value type of
|
||||
size <tt>num_vertices(g)</tt> and using the <tt>vertex_index</tt>
|
||||
@@ -196,14 +203,14 @@ UTIL: <tt>PathCountMap path_count</tt>
|
||||
Property map used internally to accumulate the number of paths that
|
||||
pass through each particular vertex. The type <tt>PathCountMap</tt>
|
||||
must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The vertex descriptor type of the graph needs to
|
||||
be usable as the key type of the dependency map. The value type of
|
||||
the dependency map must be an integral type large enough to store
|
||||
the number of paths in the graph.<br>
|
||||
|
||||
<b>Default:</b> <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of the <tt>degree_size_type</tt> of the graph of
|
||||
size <tt>num_vertices(g)</tt> and using the <tt>vertex_index</tt>
|
||||
@@ -218,7 +225,7 @@ OUT/UTIL: <tt>CentralityMap centrality_map</tt>
|
||||
This property map is used to accumulate the betweenness centrality
|
||||
of each vertex, and is the primary output of the algorithm. The type
|
||||
<tt>CentralityMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>, with the graph's vertex descriptor type as its key
|
||||
type. The value type of this property map should be a floating-point
|
||||
or rational type.<br>
|
||||
@@ -235,7 +242,7 @@ OUT/UTIL: <tt>EdgeCentralityMap edge_centrality_map</tt>
|
||||
This property map is used to accumulate the betweenness centrality
|
||||
of each edge, and is a secondary form of output for the
|
||||
algorithm. The type <tt>EdgeCentralityMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>, with the graph's edge descriptor type as its key
|
||||
type. The value type of this property map should be the same as the
|
||||
value type of the <tt>CentralityMap</tt> property map.<br>
|
||||
@@ -253,10 +260,14 @@ IN: <tt>vertex_index_map(VertexIndexMap vertex_index)</tt>
|
||||
num_vertices(g))</tt>. This is necessary for efficient updates of the
|
||||
heap data structure when an edge is relaxed. The type
|
||||
<tt>VertexIndexMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
integer type. The vertex descriptor type of the graph needs to be
|
||||
usable as the key type of the map.<br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.<br>
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
|
||||
@@ -267,7 +278,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
|
||||
<a href="./exception.html#negative_edge"><tt>negative_edge</tt></a>
|
||||
exception is one of the edges is negative.
|
||||
The type <tt>WeightMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
|
||||
the graph needs to be usable as the key type for the weight
|
||||
map. The value type for this map must be
|
||||
the same as the value type of the distance map.<br>
|
||||
@@ -284,9 +295,9 @@ is <em>O(VE)</em>.
|
||||
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="../../../people/doug_gregor.html">Douglas Gregor</A>, Indiana University (dgregor@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/doug_gregor.html">Douglas Gregor</A>, Indiana University (dgregor@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: bfs_visitor</Title>
|
||||
@@ -118,12 +114,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Jeremy Siek makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Named Parameters</Title>
|
||||
@@ -86,12 +82,12 @@ like <tt>boost::weight_map</tt> that create an instance of
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Bibliography</Title>
|
||||
@@ -379,15 +375,71 @@ Software--Practice & Experience, 21 (11), pp. 1129-1164, 1991.
|
||||
<dd>King, I. P.<br>
|
||||
<em>An automatic reordering scheme for simultaneous equations derived from network analysis.</em><br>
|
||||
Int. J. Numer. Methods Engrg. 2, pp. 523-533, 1970.
|
||||
|
||||
|
||||
<p></p><dt><a name="palmer2000">63</a>
|
||||
<dd>C. Palmer and J. Steffan<br>
|
||||
<em>Generating Network Topologies That Obey Power Laws</em><br>
|
||||
Proceedings of GLOBECOM. November, 2000.
|
||||
|
||||
<p></p><dt><a name="edmonds65">64</a>
|
||||
<dd>J. Edmonds<br>
|
||||
<em>Paths, trees, and flowers</em><br>
|
||||
Canadian Journal of Mathematics 17 (1965), pp. 449-467.
|
||||
|
||||
<p></p><dt><a name="lengauer-tarjan79">65</a>
|
||||
<dd>Thomas Lengauer and Robert Endre Tarjan<br>
|
||||
<em>A fast algorithm for finding dominators in a flowgraph</em><br>
|
||||
ACM Transactions on Programming Language and Systems, 1(1):121-141, 1979.
|
||||
|
||||
<p></p><dt><a name="muchnick97">66</a>
|
||||
<dd>Steven S. Muchnick<br>
|
||||
<em>Advanced Compiler Design and Implementation</em><br>
|
||||
Morgan Kaufmann Publishers, San Fransisco, 1997.
|
||||
|
||||
<p></p><dt><a name="appel98">67</a>
|
||||
<dd>Andrew W. Appel<br>
|
||||
<em>Modern Compiler Implementation in JAVA</em><br>
|
||||
Cambridge University Press, 1998.
|
||||
|
||||
<p></p><dt><a name="kolmogorov03">68</a>
|
||||
<dd>Vladimir Kolmogorov<br>
|
||||
<em>Graph Based Algorithms for Scene Reconstruction from Two or More Views</em><br>
|
||||
PhD thesis, Cornell University, September 2003.
|
||||
|
||||
<p></p><dt><a name="boykov-kolmogorov04">69</a>
|
||||
<dd>Yuri Boykov and Vladimir Kolmogorov<br>
|
||||
<em><a href="http://www.csd.uwo.ca/faculty/yuri/Abstracts/pami04-abs.html">An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Vision</a></em><br>
|
||||
In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 9, pp. 1124-1137, Sept. 2004.
|
||||
|
||||
<p></p><dt><a name="boyermyrvold04">70</a>
|
||||
<dd>John M. Boyer and Wendy J. Myrvold<br>
|
||||
<em><a href="http://www.emis.de/journals/JGAA/accepted/2004/BoyerMyrvold2004.8.3.pdf">
|
||||
On the Cutting Edge: Simplified O(n) Planarity by Edge Addition</a>
|
||||
</em><br>
|
||||
Journal of Graph Algorithms and Applications, 8(2): 241-273, 2004.
|
||||
|
||||
<p></p><dt><a name="chrobakpayne95">71</a>
|
||||
<dd>M. Chrobak, T. Payne<br>
|
||||
<em>
|
||||
A Linear-time Algorithm for Drawing a Planar Graph on the Grid
|
||||
</em><br>
|
||||
Information Processing Letters 54: 241-246, 1995.
|
||||
|
||||
<p></p><dt><a name="defraysseixpachpollack90">72</a>
|
||||
<dd>H. de Fraysseix, J. Pach, R. Pollack<br>
|
||||
<em>
|
||||
How to Draw a Planar Graph on a Grid
|
||||
</em><br>
|
||||
Combinatorica 10: 41-51, 1990.
|
||||
|
||||
</dl>
|
||||
|
||||
<br>
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright 2001-2004 The Trustees of Indiana University.
|
||||
--
|
||||
-- Use, modification and distribution is subject to the Boost Software
|
||||
-- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
-- http://www.boost.org/LICENSE_1_0.txt)
|
||||
--
|
||||
-- Authors: Douglas Gregor
|
||||
-- Jeremy Siek
|
||||
-- Andrew Lumsdaine
|
||||
Copyright 2001-2004 The Trustees of Indiana University.
|
||||
|
||||
Use, modification and distribution is subject to the Boost Software
|
||||
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
Authors: Douglas Gregor
|
||||
Jeremy Siek
|
||||
Andrew Lumsdaine
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Biconnected Components and Articulation Points</Title>
|
||||
@@ -30,12 +30,30 @@ and
|
||||
</h1>
|
||||
|
||||
<PRE>
|
||||
template<typename Graph, typename ComponentMap, typename OutputIterator,
|
||||
typename DiscoverTimeMap, typename LowPointMap>
|
||||
<i>// named parameter version</i>
|
||||
template <typename Graph, typename ComponentMap, typename OutputIterator,
|
||||
typename P, typename T, typename R>
|
||||
std::pair<std::size_t, OutputIterator>
|
||||
biconnected_components(const Graph& g, ComponentMap comp, OutputIterator out,
|
||||
const bgl_named_params<P, T, R>& params)
|
||||
|
||||
template <typename Graph, typename ComponentMap,
|
||||
typename P, typename T, typename R>
|
||||
std::size_t
|
||||
biconnected_components(const Graph& g, ComponentMap comp,
|
||||
OutputIterator out, DiscoverTimeMap discover_time,
|
||||
LowPointMap lowpt);
|
||||
const bgl_named_params<P, T, R>& params)
|
||||
|
||||
template <typename Graph, typename OutputIterator,
|
||||
typename P, typename T, typename R>
|
||||
OutputIterator articulation_points(const Graph& g, OutputIterator out,
|
||||
const bgl_named_params<P, T, R>& params)
|
||||
|
||||
<i>// non-named parameter version</i>
|
||||
template <typename Graph, typename ComponentMap, typename OutputIterator,
|
||||
typename DiscoverTimeMap, typename LowPointMap>
|
||||
std::pair<std::size_t, OutputIterator>
|
||||
biconnected_components(const Graph& g, ComponentMap comp, OutputIterator out,
|
||||
DiscoverTimeMap discover_time, LowPointMap lowpt);
|
||||
|
||||
template <typename Graph, typename ComponentMap, typename OutputIterator>
|
||||
std::pair<std::size_t, OutputIterator>
|
||||
@@ -43,9 +61,8 @@ biconnected_components(const Graph& g, ComponentMap comp, OutputIterator out);
|
||||
|
||||
template <typename Graph, typename ComponentMap>
|
||||
std::size_t biconnected_components(const Graph& g, ComponentMap comp);
|
||||
|
||||
<a name="sec:articulation_points">
|
||||
template<typename Graph, typename OutputIterator>
|
||||
template <typename Graph, typename OutputIterator>
|
||||
OutputIterator articulation_points(const Graph& g, OutputIterator out);
|
||||
</PRE>
|
||||
|
||||
@@ -103,7 +120,7 @@ and assigning each component an integer label. The algorithm then
|
||||
records which component each edge in the graph belongs to by
|
||||
recording the component number in the component property map. The
|
||||
<tt>ComponentMap</tt> type must be a model of <a
|
||||
href="../../property_map/WritablePropertyMap.html">Writable Property
|
||||
href="../../property_map/doc/WritablePropertyMap.html">Writable Property
|
||||
Map</a>. The value type shouch be an integer type, preferably the same
|
||||
as the <tt>edges_size_type</tt> of the graph. The key type must be
|
||||
the graph's edge descriptor type.<br>
|
||||
@@ -123,16 +140,31 @@ algorithms return a Python <tt>list</tt> containing the articulation
|
||||
points.
|
||||
</blockquote>
|
||||
|
||||
UTIL/OUT: <tt>DiscoverTimeMap discover_time</tt>
|
||||
<h3>Named Parameters</h3>
|
||||
|
||||
IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
<blockquote>
|
||||
This maps each vertex to an integer in the range <tt>[0,
|
||||
num_vertices(g))</tt>. The type
|
||||
<tt>VertexIndexMap</tt> must be a model of
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
integer type. The vertex descriptor type of the graph needs to be
|
||||
usable as the key type of the map.<br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
|
||||
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
|
||||
UTIL/OUT: <tt>discover_time_map(DiscoverTimeMap discover_time)</tt>
|
||||
<blockquote>
|
||||
The discovery time of each vertex in the depth-first search. The
|
||||
type <tt>DiscoverTimeMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The value type of the map must be an integer
|
||||
type. The vertex descriptor type of the graph needs to be usable as
|
||||
the key type of the map.<br>
|
||||
<b>Default</b>: an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
</tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of <tt>vertices_size_type</tt> of size
|
||||
<tt>num_vertices(g)</tt> and using <tt>get(vertex_index, g)</tt> for
|
||||
@@ -141,17 +173,17 @@ UTIL/OUT: <tt>DiscoverTimeMap discover_time</tt>
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
|
||||
UTIL/OUT: <tt>LowPointMap lowpt</tt>
|
||||
UTIL/OUT: <tt>lowpoint_map(LowPointMap lowpt)</tt>
|
||||
<blockquote>
|
||||
The low point of each vertex in the depth-first search, which is the
|
||||
smallest vertex reachable from a given vertex with at most one back
|
||||
edge. The type <tt>LowPointMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The value type of the map must be an integer
|
||||
type. The vertex descriptor type of the graph needs to be usable as
|
||||
the key type of the map.<br>
|
||||
<b>Default</b>: an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
</tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of <tt>vertices_size_type</tt> of size
|
||||
<tt>num_vertices(g)</tt> and using <tt>get(vertex_index, g)</tt> for
|
||||
@@ -160,6 +192,37 @@ UTIL/OUT: <tt>LowPointMap lowpt</tt>
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
|
||||
UTIL/OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
|
||||
<blockquote>
|
||||
The predecessor map records the depth first search tree.
|
||||
The <tt>PredecessorMap</tt> type
|
||||
must be a <a
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> whose key and value types are the same as the vertex
|
||||
descriptor type of the graph.<br>
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
</tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of <tt>vertex_descriptor</tt> of size
|
||||
<tt>num_vertices(g)</tt> and using <tt>get(vertex_index, g)</tt> for
|
||||
the index map.<br>
|
||||
|
||||
<b>Python</b>: Must be a <tt>vertex_vertex_map</tt> for the graph.<br>
|
||||
</blockquote>
|
||||
|
||||
IN: <tt>visitor(DFSVisitor vis)</tt>
|
||||
<blockquote>
|
||||
A visitor object that is invoked inside the algorithm at the
|
||||
event-points specified by the <a href="./DFSVisitor.html">DFS
|
||||
Visitor</a> concept. The visitor object is passed by value <a
|
||||
href="#1">[1]</a>. <br> <b>Default:</b>
|
||||
<tt>dfs_visitor<null_visitor></tt><br>
|
||||
|
||||
<b>Python</b>: The parameter should be an object that derives from
|
||||
the <a href="DFSVisitor.html#python"><tt>DFSVisitor</tt></a> type of
|
||||
the graph.
|
||||
</blockquote>
|
||||
|
||||
<H3>Complexity</H3>
|
||||
|
||||
<P>
|
||||
@@ -180,11 +243,11 @@ articulation points of an undirected graph.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2004</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana
|
||||
<TD nowrap>Copyright © 2000-2004</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana
|
||||
University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<a href="../../../people/doug_gregor.html">Doug Gregor</a>, Indiana University
|
||||
<a href="http://www.boost.org/people/doug_gregor.html">Doug Gregor</a>, Indiana University
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -285,7 +285,7 @@ S.pop();
|
||||
#include <boost/limits.hpp>
|
||||
#include <boost/graph/graph_traits.hpp>
|
||||
#include <boost/graph/graph_concepts.hpp>
|
||||
#include <boost/property_map.hpp>
|
||||
#include <boost/property_map/property_map.hpp>
|
||||
|
||||
namespace boost {
|
||||
@<Biconnected Components Algorithm@>
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
<HTML>
|
||||
<!-- Copyright 2007 Aaron Windsor
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Boyer-Myrvold Planarity Testing/Embedding</Title>
|
||||
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
|
||||
ALINK="#ff0000">
|
||||
<IMG SRC="../../../boost.png"
|
||||
ALT="C++ Boost" width="277" height="86">
|
||||
|
||||
<BR Clear>
|
||||
|
||||
<H1>Boyer-Myrvold Planarity Testing/Embedding</H1>
|
||||
|
||||
<p>
|
||||
A graph is <a href="./planar_graphs.html#planar"><i>planar</i></a> if it can
|
||||
be drawn in two-dimensional space without any of its edges crossing. Such a
|
||||
drawing of a planar graph is called a
|
||||
<a href="./planar_graphs.html#plane_drawing"><i>plane drawing</i></a>. Each
|
||||
plane drawing belongs to an equivalence class called a <i>planar embedding</i>
|
||||
<a href="#1">[1]</a> that is defined by the clockwise ordering of adjacent
|
||||
edges around each vertex in the graph. A planar embedding is a convenient
|
||||
intermediate representation of an actual drawing of a planar graph, and many
|
||||
planar graph drawing algorithms are formulated as functions mapping a planar
|
||||
embedding to a plane drawing.
|
||||
<br>
|
||||
<br>
|
||||
<table align="center" class="image">
|
||||
<caption align="bottom"><h5>A planar graph (top left), along with a planar
|
||||
embedding of that graph (bottom left) can be used to create a plane drawing
|
||||
(right) by embedding edges around each vertex in the order in which they
|
||||
appear in the planar embedding.
|
||||
</h5></caption>
|
||||
<tr><td>
|
||||
<img src="./figs/embedding_illustration.png">
|
||||
</td></tr>
|
||||
<tr></tr>
|
||||
<tr></tr>
|
||||
</table>
|
||||
<br>
|
||||
<p>
|
||||
The function <tt>boyer_myrvold_planarity_test</tt> implements the planarity
|
||||
testing/embedding algorithm of Boyer and Myrvold
|
||||
[<a href="./bibliography.html#boyermyrvold04">70</a>].
|
||||
<tt>boyer_myrvold_planarity_test</tt> returns <tt>true</tt> if the input graph
|
||||
is planar and <tt>false</tt> otherwise. As a side-effect of this test, a planar
|
||||
embedding can be constructed if the graph is planar or a minimal set of edges
|
||||
that form a <a href = "./planar_graphs.html#kuratowskisubgraphs">Kuratowski
|
||||
subgraph</a> can be found if the graph is not planar.
|
||||
<tt>boyer_myrvold_planarity_test</tt> uses named parameter arguments (courtesy
|
||||
of the <a href="../../parameter/doc/html/index.html">Boost.Parameter</a>
|
||||
library) to specify what the function actually does. Some examples are:
|
||||
|
||||
<ul>
|
||||
<li>Testing whether or not a graph is planar:
|
||||
<pre>
|
||||
bool is_planar = boyer_myrvold_planarity_test(g);
|
||||
</pre>
|
||||
|
||||
<li>Computing a planar embedding for a graph if it is planar, otherwise finding
|
||||
a set of edges that forms an obstructing Kuratowski subgraph:
|
||||
<pre>
|
||||
if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
|
||||
boyer_myrvold_params::embedding = embedding_pmap,
|
||||
boyer_myrvold_params::kuratowski_subgraph = out_itr
|
||||
)
|
||||
)
|
||||
{
|
||||
//do something with the embedding in embedding_pmap
|
||||
}
|
||||
else
|
||||
{
|
||||
//do something with the kuratowski subgraph output to out_itr
|
||||
}
|
||||
</pre>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The parameters passed to <tt>boyer_myrvold_planarity_test</tt> in the examples
|
||||
above do more than just carry the data structures used for input and output -
|
||||
the algorithm is optimized at compile time based on which parameters are
|
||||
present. A complete list of parameters accepted and their interactions are
|
||||
described below.
|
||||
<p>
|
||||
<tt>boyer_myrvold_planarity_test</tt> accepts as input any undirected graph,
|
||||
even those with self-loops and multiple edges.
|
||||
However, many planar graph drawing algorithms make additional restrictions
|
||||
on the structure of the input graph - for example, requiring that the input
|
||||
graph is connected, biconnected, or even maximal planar (triangulated.)
|
||||
Fortunately, any planar graph on <i>n</i> vertices that lacks one of these
|
||||
properties can be augmented with additional edges so that it satisfies that
|
||||
property in <i>O(n)</i> time - the functions
|
||||
<tt><a href="./make_connected.html">make_connected</a></tt>,
|
||||
<tt><a href="./make_biconnected_planar.html">make_biconnected_planar</a></tt>,
|
||||
and <tt><a href="./make_maximal_planar.html">make_maximal_planar</a></tt>
|
||||
exist for this purpose. If the graph drawing algorithm you're using requires,
|
||||
say, a biconnected graph, then you must make your input graph biconnected
|
||||
<i>before</i> passing it into <tt>boyer_myrvold_planarity_test</tt> so that the
|
||||
computed planar embedding includes these additional edges. This may require
|
||||
more than one call to <tt>boyer_myrvold_planarity_test</tt> depending on the
|
||||
structure of the graph you begin with, since both
|
||||
<tt>make_biconnected_planar</tt> and <tt>make_maximal_planar</tt> require a
|
||||
planar embedding of the existing graph as an input parameter.
|
||||
|
||||
<p><p>
|
||||
The named parameters accepted by <tt>boyer_myrvold_planarity_test</tt> are:
|
||||
|
||||
<ul>
|
||||
<li><b><tt>graph</tt></b> : The input graph - this is the only required
|
||||
parameter.
|
||||
<li><b><tt>vertex_index_map</tt></b> : A mapping from vertices of the input
|
||||
graph to indexes in the range <tt>[0..num_vertices(g))</tt>. If this parameter
|
||||
is not provided, the vertex index map is assumed to be available as an interior
|
||||
property of the graph, accessible by calling <tt>get(vertex_index, g)</tt>.
|
||||
<li><b><tt>edge_index_map</tt></b>: A mapping from the edges of the input graph
|
||||
to indexes in the range <tt>[0..num_edges(g))</tt>. This parameter is only
|
||||
needed if the <tt>kuratowski_subgraph</tt> argument is provided. If the
|
||||
<tt>kuratowski_subgraph</tt> argument is provided and this parameter is not
|
||||
provided, the EdgeIndexMap is assumed to be available as an interior property
|
||||
accessible by calling <tt>get(edge_index, g)</tt>.
|
||||
<li><b><tt>embedding</tt></b> : If the graph is planar, this will be populated
|
||||
with a mapping from vertices to the clockwise order of neighbors in the planar
|
||||
embedding.
|
||||
<li><b><tt>kuratowski_subgraph</tt></b> : If the graph is not planar, a minimal
|
||||
set of edges that form the obstructing Kuratowski subgraph will be written to
|
||||
this iterator.
|
||||
</ul>
|
||||
|
||||
These named parameters all belong to the namespace
|
||||
<tt>boyer_myrvold_params</tt>. See below for more information on the concepts
|
||||
required for these arguments.
|
||||
|
||||
<H3>Verifying the output</H3>
|
||||
|
||||
Whether or not the input graph is planar, <tt>boyer_myrvold_planarity_test</tt>
|
||||
can produce a certificate that can be automatically checked to verify that the
|
||||
function is working properly.
|
||||
<p>
|
||||
If the graph is planar, a planar embedding can be produced. The
|
||||
planar embedding can be verified by passing it to a plane drawing routine
|
||||
(such as <tt><a href="straight_line_drawing.html">
|
||||
chrobak_payne_straight_line_drawing</a></tt>) and using the function
|
||||
<tt><a href="is_straight_line_drawing.html">is_straight_line_drawing</a></tt>
|
||||
to verify that the resulting graph is planar.
|
||||
<p>
|
||||
If the graph is not planar, a set of edges that forms a Kuratowski subgraph in
|
||||
the original graph can be produced. This set of edges can be passed to the
|
||||
function <tt><a href="is_kuratowski_subgraph.html">is_kuratowski_subgraph</a>
|
||||
</tt> to verify that they can be contracted into a <i>K<sub>5</sub></i> or
|
||||
<i>K<sub>3,3</sub></i>. <tt>boyer_myrvold_planarity_test</tt> chooses the set
|
||||
of edges forming the Kuratowski subgraph in such a way that the contraction to
|
||||
a <i>K<sub>5</sub></i> or <i>K<sub>3,3</sub></i> can be done by a simple
|
||||
deterministic process which is described in the documentation to
|
||||
<tt>is_kuratowski_subgraph</tt>.
|
||||
|
||||
<H3>Where Defined</H3>
|
||||
|
||||
<P>
|
||||
<a href="../../../boost/graph/boyer_myrvold_planar_test.hpp">
|
||||
<TT>boost/graph/boyer_myrvold_planar_test.hpp</TT>
|
||||
</a>
|
||||
|
||||
<H3>Parameters</H3>
|
||||
|
||||
IN: <tt>Graph& g</tt>
|
||||
|
||||
<blockquote>
|
||||
Any undirected graph. The graph type must be a model of
|
||||
<a href="VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a> and
|
||||
<a href="IncidenceGraph.html">IncidenceGraph</a>.
|
||||
</blockquote>
|
||||
|
||||
OUT <tt>PlanarEmbedding embedding</tt>
|
||||
|
||||
<blockquote>
|
||||
Must model the <a href="PlanarEmbedding.html">PlanarEmbedding</a> concept.
|
||||
</blockquote>
|
||||
|
||||
IN <tt>OutputIterator kuratowski_subgraph</tt>
|
||||
|
||||
<blockquote>
|
||||
An OutputIterator which accepts values of the type
|
||||
<tt>graph_traits<Graph>::edge_descriptor</tt>
|
||||
</blockquote>
|
||||
|
||||
IN <tt>VertexIndexMap vm</tt>
|
||||
|
||||
<blockquote>
|
||||
A <a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map
|
||||
</a> that maps vertices from <tt>g</tt> to distinct integers in the range
|
||||
<tt>[0, num_vertices(g) )</tt><br>
|
||||
<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
|
||||
</blockquote>
|
||||
|
||||
IN <tt>EdgeIndexMap em</tt>
|
||||
|
||||
<blockquote>
|
||||
A <a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map
|
||||
</a> that maps edges from <tt>g</tt> to distinct integers in the range
|
||||
<tt>[0, num_edges(g) )</tt><br>
|
||||
<b>Default</b>: <tt>get(edge_index,g)</tt>, but this parameter is only used if
|
||||
the <tt>kuratowski_subgraph_iterator</tt> is provided.<br>
|
||||
</blockquote>
|
||||
|
||||
<H3>Complexity</H3>
|
||||
|
||||
Assuming that both the vertex index and edge index supplied take time
|
||||
<i>O(1)</i> to return an index and there are <i>O(n)</i>
|
||||
total self-loops and parallel edges in the graph, most combinations of
|
||||
arguments given to
|
||||
<tt>boyer_myrvold_planarity_test</tt> result in an algorithm that runs in time
|
||||
<i>O(n)</i> for a graph with <i>n</i> vertices and <i>m</i> edges. The only
|
||||
exception is when Kuratowski subgraph isolation is requested for a dense graph
|
||||
(a graph with <i>n = o(m)</i>) - the running time will be <i>O(n+m)</i>
|
||||
<a href = "#2">[2]</a>.
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
<P>
|
||||
<ul>
|
||||
<li><a href="../example/simple_planarity_test.cpp">A simple planarity test</a>
|
||||
<li><a href="../example/kuratowski_subgraph.cpp">Isolating a Kuratowski
|
||||
Subgraph</a>
|
||||
<li><a href="../example/straight_line_drawing.cpp">Using a planar embedding to
|
||||
create a straight line drawing</a>
|
||||
</ul>
|
||||
|
||||
<h3>See Also</h3>
|
||||
|
||||
<a href="./planar_graphs.html">Planar Graphs in the Boost Graph Library</a>
|
||||
|
||||
|
||||
<h3>Notes</h3>
|
||||
|
||||
<p><a name="1">[1] A planar embedding is also called a <i>combinatorial
|
||||
embedding</i>.
|
||||
|
||||
<p><a name="2">[2] The algorithm can still be made to run in time <i>O(n)</i>
|
||||
for this case, if needed. <a href="planar_graphs.html#EulersFormula">Euler's
|
||||
formula</a> implies that a planar graph with <i>n</i> vertices can have no more
|
||||
than <i>3n - 6</i> edges, which means that any non-planar graph on <i>n</i>
|
||||
vertices has a subgraph of only <i>3n - 5</i> edges that contains a Kuratowski
|
||||
subgraph. So, if you need to find a Kuratowski subgraph of a graph with more
|
||||
than <i>3n - 5</i> edges in time <i>O(n)</i>, you can create a subgraph of the
|
||||
original graph consisting of any arbitrary <i>3n - 5</i> edges and pass that
|
||||
graph to <tt>boyer_myrvold_planarity_test</tt>.
|
||||
|
||||
|
||||
<br>
|
||||
<HR>
|
||||
Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
|
||||
aaron.windsor@gmail.com</a>)
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000, 2001
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000, 2001
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Breadth-First Search</Title>
|
||||
@@ -198,12 +194,12 @@ UTIL/OUT: <tt>color_map(ColorMap color)</tt>
|
||||
function and do your own color initialization.
|
||||
|
||||
<p>The type <tt>ColorMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> and its key type must be the graph's vertex
|
||||
descriptor type and the value type of the color map must model
|
||||
<a href="./ColorValue.html">ColorValue</a>.<br>
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
</tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of <tt>default_color_type</tt> of size
|
||||
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
|
||||
@@ -219,12 +215,16 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
num_vertices(g))</tt>. This parameter is only necessary when the
|
||||
default color property map is used. The type <tt>VertexIndexMap</tt>
|
||||
must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html">Readable Property
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
|
||||
Map</a>. The value type of the map must be an integer type. The
|
||||
vertex descriptor type of the graph needs to be usable as the key
|
||||
type of the map.<br>
|
||||
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.<br>
|
||||
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
@@ -242,7 +242,7 @@ UTIL: <tt>buffer(Buffer& Q)</tt>
|
||||
<b>Default:</b> <tt>boost::queue</tt><br>
|
||||
|
||||
<b>Python</b>: The buffer must derive from the <a
|
||||
href="./Buffer.html#python">Buffer</a> type for the graph.
|
||||
href="./Buffer.html">Buffer</a> type for the graph.
|
||||
|
||||
</blockquote>
|
||||
|
||||
@@ -330,8 +330,8 @@ to <tt>listS</tt>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000, 2001
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000, 2001
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Breadth-First Visit</Title>
|
||||
@@ -91,7 +87,7 @@ UTIL/OUT: <tt>color_map(ColorMap color)</tt>
|
||||
<blockquote>
|
||||
This is used by the algorithm to keep track of its progress through
|
||||
the graph. The type <tt>ColorMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> and its key type must be the graph's vertex
|
||||
descriptor type and the value type of the color map must model
|
||||
<a href="./ColorValue.html">ColorValue</a>.<br>
|
||||
@@ -113,7 +109,7 @@ UTIL: <tt>buffer(Buffer& Q)</tt>
|
||||
<b>Default:</b> <tt>boost::queue</tt><br>
|
||||
|
||||
<b>Python</b>: The buffer must derive from the <a
|
||||
href="./Buffer.html#python">Buffer</a> type for the graph.
|
||||
href="./Buffer.html">Buffer</a> type for the graph.
|
||||
</blockquote>
|
||||
|
||||
|
||||
@@ -129,9 +125,6 @@ The time complexity is <i>O(E)</i>.
|
||||
<h3>Visitor Event Points</h3>
|
||||
|
||||
<ul>
|
||||
<li><b><tt>vis.initialize_vertex(v, g)</tt></b> is invoked on every vertex
|
||||
before the start of the search.
|
||||
|
||||
<li><b><tt>vis.examine_vertex(u, g)</tt></b>r is invoked in each
|
||||
vertex as it is removed from the queue.
|
||||
|
||||
@@ -185,8 +178,8 @@ The time complexity is <i>O(E)</i>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<!--
|
||||
-- Copyright Doug Gregor 2004. Use, modification and
|
||||
-- distribution is subject to the Boost Software License, Version
|
||||
-- 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
-- http://www.boost.org/LICENSE_1_0.txt)
|
||||
Copyright Doug Gregor 2004. Use, modification and
|
||||
distribution is subject to the Boost Software License, Version
|
||||
1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
-- For more information, see http://www.boost.org
|
||||
For more information, see http://www.boost.org
|
||||
-->
|
||||
<head>
|
||||
<title>Bundled Properties</title>
|
||||
@@ -147,7 +147,7 @@ dijkstra_shortest_paths(map, from,
|
||||
<p> You may also access the entire vertex or edge bundle as a property map
|
||||
using the <code>vertex_bundle</code> or <code>edge_bundle</code> properties,
|
||||
respectively. For instance, the property map returned by <code>get(vertex_bundle, map)</code> is
|
||||
an <a href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a> providing access to the
|
||||
an <a href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property Map</a> providing access to the
|
||||
<code>City</code> values stored in each vertex.
|
||||
|
||||
<h2>Getting the type of bundled properties</h2>
|
||||
@@ -168,7 +168,7 @@ dijkstra_shortest_paths(map, from,
|
||||
specialization.</p>
|
||||
|
||||
<hr>
|
||||
Copyright © 2004 <a href="../../../people/doug_gregor.html">Doug Gregor</a>.
|
||||
Copyright © 2004 <a href="http://www.boost.org/people/doug_gregor.html">Doug Gregor</a>.
|
||||
<address><a href="mailto:gregod@cs.rpi.edu"></a></address>
|
||||
<!-- Created: Fri May 7 09:59:21 EDT 2004 -->
|
||||
<!-- hhmts start -->
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Challenge</Title>
|
||||
@@ -26,9 +22,9 @@
|
||||
<ul>
|
||||
|
||||
<li>Dynamic graph algorithms such as described in <a
|
||||
href="http://citeseer.nj.nec.com/eppstein99dynamic.html">Dynamic Graph
|
||||
href="http://citeseer.ist.psu.edu/eppstein99dynamic.html">Dynamic Graph
|
||||
Algorithms</a> and <a
|
||||
href="http://citeseer.nj.nec.com/alberts98software.html">A Software
|
||||
href="http://citeseer.ist.psu.edu/alberts98software.html">A Software
|
||||
Library of Dynamic Graph Algorithms</a>.
|
||||
|
||||
<li>Polish up code/docs for pending items and champion the formal
|
||||
@@ -108,14 +104,16 @@ It is currently difficult to use from a C++ program.
|
||||
<li>Implement a minimum-cost maximum-flow algorithm.</li>
|
||||
|
||||
<li>Make the <tt>type</tt> of all (internal) property maps convertible to the <tt>const_type</tt> of the property maps.<li>
|
||||
|
||||
<li>Add static functions to <tt>adjacency_list</tt> to return the per-vertex, per-edge, and per-graph overhead.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Function template circle_graph_layout</title></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table cellpadding="2" width="100%"><td valign="top"><img src="../../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td><td align="center"><a href="../../../index.htm">Home</a></td><td align="center"><a href="../../libraries.htm">Libraries</a></td><td align="center"><a href="../../../people/people.htm">People</a></td><td align="center"><a href="../../../more/faq.htm">FAQ</a></td><td align="center"><a href="../../../more/index.htm">More</a></td></table><hr><div class="refentry" lang="en"><a name="id103562-bb"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><img src="figs/python.gif" alt="(Python)"/><span class="refentrytitle">Function template circle_graph_layout</span></h2><p>boost::circle_graph_layout — Layout the graph with the vertices at the points of a regular n-polygon. </p></div><h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2><div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
|
||||
<html><!--
|
||||
Copyright (c) 2004 Trustees of Indiana University
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Function template circle_graph_layout</title></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table cellpadding="2" width="100%"><td valign="top"><img src="../../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td><td align="center"><a href="../../../index.htm">Home</a></td><td align="center"><a href="../../libraries.htm">Libraries</a></td><td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td><td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td><td align="center"><a href="../../../more/index.htm">More</a></td></table><hr><div class="refentry" lang="en"><a name="id103562-bb"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><img src="figs/python.gif" alt="(Python)"/><span class="refentrytitle">Function template circle_graph_layout</span></h2><p>boost::circle_graph_layout — Layout the graph with the vertices at the points of a regular n-polygon. </p></div><h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2><div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
|
||||
<span class="bold"><b>template</b></span><<span class="bold"><b>typename</b></span> VertexListGraph, <span class="bold"><b>typename</b></span> PositionMap, <span class="bold"><b>typename</b></span> Radius>
|
||||
<span class="type"><span class="bold"><b>void</b></span></span> circle_graph_layout(<span class="bold"><b>const</b></span> VertexListGraph & g, PositionMap position,
|
||||
Radius radius);</pre></div><div class="refsect1" lang="en"><a name="id821794"></a><h2>Where Defined</h2><a href="../../../boost/graph/circle_layout.hpp">boost/graph/circle_layout.hpp</a><h2>Description</h2><p>The distance from the center of the polygon to each point is determined by the <tt class="computeroutput">radius</tt> parameter. The <tt class="computeroutput">position</tt> parameter must be an Lvalue Property Map whose value type is a class type containing <tt class="computeroutput">x</tt> and <tt class="computeroutput">y</tt> members that will be set to the <tt class="computeroutput">x</tt> and <tt class="computeroutput">y</tt> coordinates.
|
||||
@@ -16,7 +23,7 @@ OUT: <tt>PositionMap position</tt>
|
||||
<blockquote>
|
||||
This property map is used to store the position of each vertex. The
|
||||
type <tt>PositionMap</tt> must be a model of <a
|
||||
href="../../property_map/WritablePropertyMap.html">Writable Property
|
||||
href="../../property_map/doc/WritablePropertyMap.html">Writable Property
|
||||
Map</a>, with the graph's edge descriptor type as its key type. The
|
||||
value type of this property map should be assignable from the
|
||||
type <tt>Radius</tt>. <br>
|
||||
@@ -36,9 +43,9 @@ IN: <tt>Radius radius</tt>
|
||||
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="../../../people/doug_gregor.html">Douglas Gregor</A>, Indiana University (dgregor -at- cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<TD nowrap>Copyright © 2004</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/doug_gregor.html">Douglas Gregor</A>, Indiana University (dgregor -at- cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (lums -at- osl.iu.edu)
|
||||
</TD></TR></TABLE>
|
||||
</body></html>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000-2001
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Jeremy Siek makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000-2001
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Connected Components</Title>
|
||||
@@ -78,7 +74,7 @@ and assigning each component an integer label. The algorithm then
|
||||
records which component each vertex in the graph belongs to by
|
||||
recording the component number in the component property map. The
|
||||
<tt>ComponentMap</tt> type must be a model of <a
|
||||
href="../../property_map/WritablePropertyMap.html">Writable Property
|
||||
href="../../property_map/doc/WritablePropertyMap.html">Writable Property
|
||||
Map</a>. The value type shouch be an integer type, preferably the same
|
||||
as the <tt>vertices_size_type</tt> of the graph. The key type must be
|
||||
the graph's vertex descriptor type.<br>
|
||||
@@ -93,12 +89,12 @@ UTIL: <tt>color_map(ColorMap color)</tt>
|
||||
<blockquote>
|
||||
This is used by the algorithm to keep track of its progress through
|
||||
the graph. The type <tt>ColorMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> and its key type must be the graph's vertex
|
||||
descriptor type and the value type of the color map must model
|
||||
<a href="./ColorValue.html">ColorValue</a>.<br>
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
</tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of <tt>default_color_type</tt> of size
|
||||
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
|
||||
@@ -113,12 +109,17 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
num_vertices(g))</tt>. This parameter is only necessary when the
|
||||
default color property map is used. The type <tt>VertexIndexMap</tt>
|
||||
must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html">Readable Property
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
|
||||
Map</a>. The value type of the map must be an integer type. The
|
||||
vertex descriptor type of the graph needs to be usable as the key
|
||||
type of the map.<br>
|
||||
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.<br>
|
||||
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
|
||||
@@ -148,8 +149,8 @@ undirected graph.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Constructing Graph Algorithms</Title>
|
||||
@@ -95,12 +91,12 @@ use the propery map interface. This gives the user of the
|
||||
algorithm the ability to decide how they want to store the properties.
|
||||
Since we will need to both read and write the colors we specify the
|
||||
requirements as <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">ReadWritePropertyMap</a>. The
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">ReadWritePropertyMap</a>. The
|
||||
<TT>key_type</TT> of the color map must be the
|
||||
<TT>vertex_descriptor</TT> from the graph, and the <TT>value_type</TT>
|
||||
must be some kind of integer. We also specify the interface for the
|
||||
<TT>order</TT> parameter as a property map, in this case a <a
|
||||
href="../../property_map/ReadablePropertyMap.html">ReadablePropertyMap</a>. For
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">ReadablePropertyMap</a>. For
|
||||
order, the <TT>key_type</TT> is an integer offset and the
|
||||
<TT>value_type</TT> is a <TT>vertex_descriptor</TT>. Again we enforce
|
||||
these requirements with concept checks. The return value of this
|
||||
@@ -173,12 +169,12 @@ namespace boost {
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Jeremy Siek makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Copy Graph</Title>
|
||||
@@ -77,11 +73,15 @@ map from the graph.
|
||||
IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
<blockquote>
|
||||
The vertex index map type must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html">Readable Property
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
|
||||
Map</a> and must map the vertex descriptors of <tt>G</tt> to the
|
||||
integers from 0 to <tt>num_vertices(G)</tt>.<br>
|
||||
integers in the half-open range <tt>[0,num_vertices(G))</tt>.<br>
|
||||
|
||||
<b>Default:</b> <tt>get(vertex_index, G)</tt>
|
||||
<b>Default:</b> <tt>get(vertex_index, G)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.
|
||||
</blockquote>
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ UTIL/OUT: <tt>orig_to_copy(Orig2CopyMap c)</tt>
|
||||
This maps vertices in the original graph to vertices in the copy.
|
||||
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
</tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of the output graph's vertex descriptor type of size
|
||||
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
|
||||
@@ -108,8 +108,8 @@ The time complexity is <i>O(V + E)</i>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
<HTML>
|
||||
|
||||
<!-- Copyright (c) Jeremy Siek 2000 -->
|
||||
<!-- Copyright (c) Jeremy Siek 2000
|
||||
|
||||
<!-- Permission to use, copy, modify, distribute and sell this software -->
|
||||
<!-- and its documentation for any purpose is hereby granted without fee, -->
|
||||
<!-- provided that the above copyright notice appears in all copies and -->
|
||||
<!-- that both that copyright notice and this permission notice appear -->
|
||||
<!-- in supporting documentation. Silicon Graphics makes no -->
|
||||
<!-- representations about the suitability of this software for any -->
|
||||
<!-- purpose. It is provided "as is" without express or implied warranty. -->
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Cuthill-Mckee Ordering</Title>
|
||||
@@ -48,24 +45,24 @@
|
||||
class ColorMap, class DegreeMap>
|
||||
OutputIterator
|
||||
cuthill_mckee_ordering(const IncidenceGraph& g,
|
||||
typename graph_traits<Graph>::vertex_descriptor s,
|
||||
typename graph_traits<IncidenceGraph>::vertex_descriptor s,
|
||||
OutputIterator inverse_permutation,
|
||||
ColorMap color, DegreeMap degree)
|
||||
|
||||
(2)
|
||||
template <class VertexListGraph, class OutputIterator>
|
||||
OutputIterator
|
||||
cuthill_mckee_ordering(const VertexIndexMap& G, OutputIterator inverse_permutation);
|
||||
cuthill_mckee_ordering(const VertexListGraph& g, OutputIterator inverse_permutation);
|
||||
|
||||
template <class VertexListGraph, class OutputIterator, class VertexIndexMap>
|
||||
OutputIterator
|
||||
cuthill_mckee_ordering(const VertexIndexMap& G, OutputIterator inverse_permutation,
|
||||
cuthill_mckee_ordering(const VertexListGraph& g, OutputIterator inverse_permutation,
|
||||
VertexIndexMap index_map);
|
||||
|
||||
template <class VertexListGraph, class OutputIterator,
|
||||
class ColorMap, class DegreeMap>
|
||||
OutputIterator
|
||||
cuthill_mckee_ordering(const VertexListGraph& G, OutputIterator inverse_permutation,
|
||||
cuthill_mckee_ordering(const VertexListGraph& g, OutputIterator inverse_permutation,
|
||||
ColorMap color, DegreeMap degree)
|
||||
|
||||
(3)
|
||||
@@ -74,7 +71,7 @@
|
||||
OutputIterator
|
||||
cuthill_mckee_ordering(const IncidenceGraph& g,
|
||||
std::deque< typename
|
||||
graph_traits<Graph>::vertex_descriptor > vertex_queue,
|
||||
graph_traits<IncidenceGraph>::vertex_descriptor > vertex_queue,
|
||||
OutputIterator inverse_permutation,
|
||||
ColorMap color, DegreeMap degree)
|
||||
</pre>
|
||||
@@ -83,7 +80,7 @@ The goal of the Cuthill-Mckee (and reverse Cuthill-Mckee) ordering
|
||||
algorithm[<A
|
||||
HREF="bibliography.html#george81:__sparse_pos_def">14</A>, <A
|
||||
HREF="bibliography.html#cuthill69:reducing_bandwith">43</A>, <a
|
||||
href="bibliography.html#liu75:rcm">44</a>, <a
|
||||
href="bibliography.html#liu75:anal_cm_rcm">44</a>, <a
|
||||
href="bibliography.html#george71:fem">45</a> ] is to reduce the <a
|
||||
href="./bandwidth.html">bandwidth</a> of a graph by reordering the
|
||||
indices assigned to each vertex. The Cuthill-Mckee ordering algorithm
|
||||
@@ -176,7 +173,7 @@ For version 2:
|
||||
|
||||
<li> <tt>VertexListGraph& g</tt> (IN) <br>
|
||||
An undirected graph. The graph's type must be a model of <a
|
||||
href="./VertexListGraph.html">VertexListGraph</a>.<br>
|
||||
href="./VertexListGraph.html">VertexListGraph</a> and <a href="./IncidenceGraph.html">IncidenceGraph</a>.<br>
|
||||
<b>Python</b>: The parameter is named <tt>graph</tt>.
|
||||
|
||||
<li> <tt><a href="http://www.sgi.com/tech/stl/OutputIterator.html">
|
||||
@@ -243,8 +240,8 @@ and <tt>degree_property_map</tt> in <tt>boost/graph/properties.hpp</tt>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Jeremy Siek makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Directed Acyclic Graph Shortest Paths</Title>
|
||||
@@ -54,7 +50,7 @@ than either the Dijkstra or Bellman-Ford algorithm.
|
||||
Use breadth-first search instead of this algorithm
|
||||
when all edge weights are equal to one. For the definition of the
|
||||
shortest-path problem see Section <A
|
||||
HREF="graph_theory_review.html#sec:shortest-path-algorithms">Shortest-Paths
|
||||
HREF="graph_theory_review.html#sec:shortest-paths-algorithms">Shortest-Paths
|
||||
Algorithms</A> for some background to the shortest-path problem.
|
||||
</P>
|
||||
|
||||
@@ -100,7 +96,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
|
||||
<blockquote>
|
||||
The weight or ``length'' of each edge in the graph.
|
||||
The type <tt>WeightMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
|
||||
the graph needs to be usable as the key type for the weight
|
||||
map. The value type for the map must be
|
||||
<i>Addable</i> with the value type of the distance map.<br>
|
||||
@@ -116,10 +112,14 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
num_vertices(g))</tt>. This is necessary for efficient updates of the
|
||||
heap data structure when an edge is relaxed. The type
|
||||
<tt>VertexIndexMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
integer type. The vertex descriptor type of the graph needs to be
|
||||
usable as the key type of the map.<br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.<br>
|
||||
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
@@ -132,7 +132,7 @@ OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
|
||||
u</i> then <i>u</i> is either the source vertex or a vertex that is
|
||||
not reachable from the source. The <tt>PredecessorMap</tt> type
|
||||
must be a <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> which key and vertex types the same as the vertex
|
||||
descriptor type of the graph.<br>
|
||||
<b>Default:</b> <tt>dummy_property_map</tt><br>
|
||||
@@ -145,7 +145,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
|
||||
vertex in the graph <tt>g</tt> is recorded in this property map. The
|
||||
shortest path weight is the sum of the edge weights along the
|
||||
shortest path. The type <tt>DistanceMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The vertex descriptor type of the graph needs to
|
||||
be usable as the key type of the distance map.
|
||||
|
||||
@@ -157,7 +157,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
|
||||
StrictWeakOrdering</a> provided by the <tt>compare</tt> function
|
||||
object.<br>
|
||||
<b>Default:</b> <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type of size
|
||||
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
|
||||
@@ -228,12 +228,12 @@ UTIL/OUT: <tt>color_map(ColorMap c_map)</tt>
|
||||
from the queue. At the end of the algorithm, vertices reachable from
|
||||
the source vertex will have been colored black. All other vertices
|
||||
will still be white. The type <tt>ColorMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
<a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. A vertex descriptor must be usable as the key type
|
||||
of the map, and the value type of the map must be a model of
|
||||
<a href="./ColorValue.html">Color Value</a>.<br>
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
|
||||
of <tt>default_color_type</tt> of size <tt>num_vertices(g)</tt> and
|
||||
using the <tt>i_map</tt> for the index map.<br>
|
||||
@@ -317,8 +317,8 @@ algorithm.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,224 +0,0 @@
|
||||
/*
|
||||
:Author: David Goodger
|
||||
:Contact: goodger@users.sourceforge.net
|
||||
:date: $Date$
|
||||
:version: $Revision$
|
||||
:copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
*/
|
||||
|
||||
.first {
|
||||
margin-top: 0 }
|
||||
|
||||
.last {
|
||||
margin-bottom: 0 }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.attention, div.caution, div.danger, div.error, div.hint,
|
||||
div.important, div.note, div.tip, div.warning, div.admonition {
|
||||
margin: 2em ;
|
||||
border: medium outset ;
|
||||
padding: 1em }
|
||||
|
||||
div.attention p.admonition-title, div.caution p.admonition-title,
|
||||
div.danger p.admonition-title, div.error p.admonition-title,
|
||||
div.warning p.admonition-title {
|
||||
color: red ;
|
||||
font-weight: bold ;
|
||||
font-family: sans-serif }
|
||||
|
||||
div.hint p.admonition-title, div.important p.admonition-title,
|
||||
div.note p.admonition-title, div.tip p.admonition-title,
|
||||
div.admonition p.admonition-title {
|
||||
font-weight: bold ;
|
||||
font-family: sans-serif }
|
||||
|
||||
div.dedication {
|
||||
margin: 2em 5em ;
|
||||
text-align: center ;
|
||||
font-style: italic }
|
||||
|
||||
div.dedication p.topic-title {
|
||||
font-weight: bold ;
|
||||
font-style: normal }
|
||||
|
||||
div.figure {
|
||||
margin-left: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
font-size: smaller }
|
||||
|
||||
div.sidebar {
|
||||
margin-left: 1em ;
|
||||
border: medium outset ;
|
||||
padding: 0em 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
div.system-messages {
|
||||
margin: 5em }
|
||||
|
||||
div.system-messages h1 {
|
||||
color: red }
|
||||
|
||||
div.system-message {
|
||||
border: medium outset ;
|
||||
padding: 1em }
|
||||
|
||||
div.system-message p.system-message-title {
|
||||
color: red ;
|
||||
font-weight: bold }
|
||||
|
||||
div.topic {
|
||||
margin: 2em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr {
|
||||
width: 75% }
|
||||
|
||||
ol.simple, ul.simple {
|
||||
margin-bottom: 1em }
|
||||
|
||||
ol.arabic {
|
||||
list-style: decimal }
|
||||
|
||||
ol.loweralpha {
|
||||
list-style: lower-alpha }
|
||||
|
||||
ol.upperalpha {
|
||||
list-style: upper-alpha }
|
||||
|
||||
ol.lowerroman {
|
||||
list-style: lower-roman }
|
||||
|
||||
ol.upperroman {
|
||||
list-style: upper-roman }
|
||||
|
||||
p.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
p.sidebar-title {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold ;
|
||||
font-size: larger }
|
||||
|
||||
p.sidebar-subtitle {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold }
|
||||
|
||||
p.topic-title {
|
||||
font-weight: bold }
|
||||
|
||||
pre.address {
|
||||
margin-bottom: 0 ;
|
||||
margin-top: 0 ;
|
||||
font-family: serif ;
|
||||
font-size: 100% }
|
||||
|
||||
pre.line-block {
|
||||
font-family: serif ;
|
||||
font-size: 100% }
|
||||
|
||||
pre.literal-block, pre.doctest-block {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em ;
|
||||
background-color: #eeeeee }
|
||||
|
||||
span.classifier {
|
||||
font-family: sans-serif ;
|
||||
font-style: oblique }
|
||||
|
||||
span.classifier-delimiter {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold }
|
||||
|
||||
span.interpreted {
|
||||
font-family: sans-serif }
|
||||
|
||||
span.option {
|
||||
white-space: nowrap }
|
||||
|
||||
span.option-argument {
|
||||
font-style: italic }
|
||||
|
||||
span.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
table {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.citation {
|
||||
border-left: solid thin gray ;
|
||||
padding-left: 0.5ex }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid thin black ;
|
||||
padding-left: 0.5ex }
|
||||
|
||||
td, th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
th.docinfo-name, th.field-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap }
|
||||
|
||||
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
|
||||
font-size: 100% }
|
||||
|
||||
tt {
|
||||
background-color: #eeeeee }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Depth-First Search</Title>
|
||||
@@ -70,7 +66,7 @@ The <tt>depth_first_search()</tt> function invokes user-defined
|
||||
actions at certain event-points within the algorithm. This provides a
|
||||
mechanism for adapting the generic DFS algorithm to the many
|
||||
situations in which it can be used. In the pseudo-code below, the
|
||||
event points for DFS are indicated in by the triangles and labels on
|
||||
event points for DFS are the labels on
|
||||
the right. The user-defined actions must be provided in the form of a
|
||||
visitor object, that is, an object whose type meets the requirements
|
||||
for a <a href="./DFSVisitor.html">DFS Visitor</a>. In the pseudo-code
|
||||
@@ -189,12 +185,12 @@ UTIL/OUT: <tt>color_map(ColorMap color)</tt>
|
||||
<blockquote>
|
||||
This is used by the algorithm to keep track of its progress through
|
||||
the graph. The type <tt>ColorMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> and its key type must be the graph's vertex
|
||||
descriptor type and the value type of the color map must model
|
||||
<a href="./ColorValue.html">ColorValue</a>.<br>
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
</tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of <tt>default_color_type</tt> of size
|
||||
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
|
||||
@@ -219,12 +215,16 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
num_vertices(g))</tt>. This parameter is only necessary when the
|
||||
default color property map is used. The type <tt>VertexIndexMap</tt>
|
||||
must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html">Readable Property
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
|
||||
Map</a>. The value type of the map must be an integer type. The
|
||||
vertex descriptor type of the graph needs to be usable as the key
|
||||
type of the map.<br>
|
||||
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.<br>
|
||||
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
@@ -300,12 +300,12 @@ The example in <a href="../example/dfs-example.cpp">
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Depth-First Visit</Title>
|
||||
@@ -27,12 +23,12 @@
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
template <class <a href="./IncidenceGraph.html">IncidenceGraph</a>, class <a href="./DFSVisitor.html">DFSVisitor</a>, class <a href="#ColorMap">ColorMap</a>>
|
||||
template <class <a href="./IncidenceGraph.html">IncidenceGraph</a>, class <a href="./DFSVisitor.html">DFSVisitor</a>, class ColorMap>
|
||||
void depth_first_visit(IncidenceGraph& g,
|
||||
typename graph_traits<IncidenceGraph>::vertex_descriptor s,
|
||||
DFSVisitor& vis, ColorMap color)
|
||||
|
||||
template <class <a href="./IncidenceGraph.html">IncidenceGraph</a>, class <a href="./DFSVisitor.html">DFSVisitor</a>, class <a href="#ColorMap">ColorMap</a>,
|
||||
template <class <a href="./IncidenceGraph.html">IncidenceGraph</a>, class <a href="./DFSVisitor.html">DFSVisitor</a>, class ColorMap,
|
||||
class TerminatorFunc>
|
||||
void depth_first_visit(IncidenceGraph& g,
|
||||
typename graph_traits<IncidenceGraph>::vertex_descriptor s,
|
||||
@@ -100,7 +96,7 @@ UTIL: <tt>ColorMap color</tt>
|
||||
<blockquote>
|
||||
This is used by the algorithm to keep track of its progress through
|
||||
the graph. The type <tt>ColorMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> and its key type must be the graph's vertex
|
||||
descriptor type and the value type of the color map map must model
|
||||
<a href="./ColorValue.html">Color Value</a>.<br>
|
||||
@@ -140,8 +136,8 @@ Time complexity is <i>O(E)</i>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: dfs_visitor</Title>
|
||||
@@ -101,12 +97,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Jeremy Siek makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Dijkstra's Shortest Paths</Title>
|
||||
@@ -23,7 +19,6 @@
|
||||
<TT>dijkstra_shortest_paths</TT>
|
||||
</H1>
|
||||
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
<i>// named parameter version</i>
|
||||
@@ -37,14 +32,28 @@ dijkstra_shortest_paths(Graph& g,
|
||||
template <typename Graph, typename <a href="DijkstraVisitor.html">DijkstraVisitor</a>,
|
||||
typename PredecessorMap, typename DistanceMap,
|
||||
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">CombineFunction</a>,
|
||||
typename DistInf, typename DistZero>
|
||||
typename DistInf, typename DistZero, typename ColorMap = <i>default</i>>
|
||||
void dijkstra_shortest_paths
|
||||
(const Graph& g,
|
||||
typename graph_traits<Graph>::vertex_descriptor s,
|
||||
PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
|
||||
VertexIndexMap index_map,
|
||||
CompareFunction compare, CombineFunction combine, DistInf inf, DistZero zero,
|
||||
DijkstraVisitor vis)
|
||||
DijkstraVisitor vis, ColorMap color = <i>default</i>)
|
||||
|
||||
<i>// version that does not initialize the property maps (except for the default color map)</i>
|
||||
template <class Graph, class DijkstraVisitor,
|
||||
class PredecessorMap, class DistanceMap,
|
||||
class WeightMap, class IndexMap, class Compare, class Combine,
|
||||
class DistZero, class ColorMap>
|
||||
void
|
||||
dijkstra_shortest_paths_no_init
|
||||
(const Graph& g,
|
||||
typename graph_traits<Graph>::vertex_descriptor s,
|
||||
PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
|
||||
IndexMap index_map,
|
||||
Compare compare, Combine combine, DistZero zero,
|
||||
DijkstraVisitor vis, ColorMap color = <i>default</i>);
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -56,7 +65,7 @@ algorithm for the case when some edge weights are negative. Use
|
||||
breadth-first search instead of Dijkstra's algorithm when all edge
|
||||
weights are equal to one. For the definition of the shortest-path
|
||||
problem see Section <A
|
||||
HREF="graph_theory_review.html#sec:shortest-path-algorithms">Shortest-Paths
|
||||
HREF="graph_theory_review.html#sec:shortest-paths-algorithms">Shortest-Paths
|
||||
Algorithms</A> for some background to the shortest-path problem.
|
||||
</P>
|
||||
|
||||
@@ -70,8 +79,8 @@ record the shortest paths tree in a predecessor map: for each vertex
|
||||
<i>u in V</i>, <i>p[u]</i> will be the predecessor of <i>u</i> in
|
||||
the shortest paths tree (unless <i>p[u] = u</i>, in which case <i>u</i> is
|
||||
either the source or a vertex unreachable from the source). In
|
||||
addition to these two options, the user can provide there own
|
||||
custom-made visitor that can takes actions during any of the
|
||||
addition to these two options, the user can provide their own
|
||||
custom-made visitor that takes actions during any of the
|
||||
algorithm's event points.</P>
|
||||
|
||||
<P>
|
||||
@@ -96,7 +105,7 @@ track of which set each vertex is in. Vertices colored black are in
|
||||
<i>S</i>. Vertices colored white or gray are in <i>V-S</i>. White vertices have
|
||||
not yet been discovered and gray vertices are in the priority queue.
|
||||
By default, the algorithm will allocate an array to store a color
|
||||
marker for each vertex in the graph. You can provide you own storage
|
||||
marker for each vertex in the graph. You can provide your own storage
|
||||
and access for colors with the <tt>color_map()</tt> parameter.
|
||||
</P>
|
||||
<p>
|
||||
@@ -113,7 +122,7 @@ indicated by the labels on the right.
|
||||
<td valign="top">
|
||||
<pre>
|
||||
DIJKSTRA(<i>G</i>, <i>s</i>, <i>w</i>)
|
||||
<b>for</b> each vertex <i>u in V</i>
|
||||
<b>for</b> each vertex <i>u in V</i> <b>(This loop is not run in dijkstra_shortest_paths_no_init)</b>
|
||||
<i>d[u] := infinity</i>
|
||||
<i>p[u] := u</i>
|
||||
<i>color[u] :=</i> WHITE
|
||||
@@ -206,7 +215,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
|
||||
<a href="./exception.html#negative_edge"><tt>negative_edge</tt></a>
|
||||
exception is one of the edges is negative.
|
||||
The type <tt>WeightMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
|
||||
the graph needs to be usable as the key type for the weight
|
||||
map. The value type for this map must be
|
||||
the same as the value type of the distance map.<br>
|
||||
@@ -224,10 +233,15 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
HREF="bibliography.html#driscoll88">61</A>] when an edge is relaxed.
|
||||
The type
|
||||
<tt>VertexIndexMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
integer type. The vertex descriptor type of the graph needs to be
|
||||
usable as the key type of the map.<br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.
|
||||
<br>
|
||||
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
</blockquote>
|
||||
@@ -240,7 +254,7 @@ OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
|
||||
u</i> then <i>u</i> is either the source vertex or a vertex that is
|
||||
not reachable from the source. The <tt>PredecessorMap</tt> type
|
||||
must be a <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> whose key and value types are the same as the vertex
|
||||
descriptor type of the graph.<br>
|
||||
<b>Default:</b> <tt>dummy_property_map</tt><br>
|
||||
@@ -254,7 +268,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
|
||||
vertex in the graph <tt>g</tt> is recorded in this property map. The
|
||||
shortest path weight is the sum of the edge weights along the
|
||||
shortest path. The type <tt>DistanceMap</tt> must be a model of <a
|
||||
href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The vertex descriptor type of the graph needs to
|
||||
be usable as the key type of the distance map.
|
||||
|
||||
@@ -266,7 +280,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
|
||||
StrictWeakOrdering</a> provided by the <tt>compare</tt> function
|
||||
object.<br>
|
||||
<b>Default:</b> <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type of size
|
||||
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
|
||||
@@ -302,7 +316,7 @@ IN: <tt>distance_combine(CombineFunction cmb)</tt>
|
||||
<tt>WeightMap</tt> property map. The result type must be the same
|
||||
type as the distance value type.<br>
|
||||
|
||||
<b>Default:</b> <tt>std::plus<D></tt> with
|
||||
<b>Default:</b> <tt>closed_plus<D></tt> with
|
||||
<tt>D=typename property_traits<DistanceMap>::value_type</tt><br>
|
||||
|
||||
<b>Python</b>: Unsupported parameter.
|
||||
@@ -338,12 +352,12 @@ UTIL/OUT: <tt>color_map(ColorMap c_map)</tt>
|
||||
from the queue. At the end of the algorithm, vertices reachable from
|
||||
the source vertex will have been colored black. All other vertices
|
||||
will still be white. The type <tt>ColorMap</tt> must be a model of
|
||||
<a href="../../property_map/ReadWritePropertyMap.html">Read/Write
|
||||
<a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. A vertex descriptor must be usable as the key type
|
||||
of the map, and the value type of the map must be a model of
|
||||
<a href="./ColorValue.html">Color Value</a>.<br>
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
|
||||
of <tt>default_color_type</tt> of size <tt>num_vertices(g)</tt> and
|
||||
using the <tt>i_map</tt> for the index map.<br>
|
||||
@@ -415,6 +429,8 @@ See <a href="../example/dijkstra-example.cpp">
|
||||
<TT>example/dijkstra-example.cpp</TT></a> for an example of using Dijkstra's
|
||||
algorithm.
|
||||
|
||||
<H3>See also</H3> <a href="dijkstra_shortest_paths_no_color_map.html">dijkstra_shortest_paths_no_color_map</a> for a version of dijkstra's shortest path that does not use a color map.
|
||||
|
||||
<H3>Notes</H3>
|
||||
|
||||
<a name="1">[1]</a>
|
||||
@@ -434,8 +450,8 @@ distance less than infinity.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -0,0 +1,398 @@
|
||||
<HTML>
|
||||
<!--
|
||||
Copyright (c) Michael Hansen 2009
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Dijkstra's Shortest Paths (No Color Map)</Title>
|
||||
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
|
||||
ALINK="#ff0000">
|
||||
<IMG SRC="../../../boost.png"
|
||||
ALT="C++ Boost" width="277" height="86">
|
||||
|
||||
<BR Clear>
|
||||
|
||||
<H1><A NAME="sec:dijkstra"></A>
|
||||
<TT>dijkstra_shortest_paths_no_color_map</TT>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
<i>// named parameter version</i>
|
||||
template <typename Graph, typename Param, typename Tag, typename Rest>
|
||||
void dijkstra_shortest_paths_no_color_map
|
||||
(const Graph& graph,
|
||||
typename graph_traits<Graph>::vertex_descriptor start_vertex,
|
||||
const bgl_named_params<Param,Tag,Rest>& params);
|
||||
|
||||
<i>// non-named parameter version</i>
|
||||
template <typename Graph, typename <a href="DijkstraVisitor.html">DijkstraVisitor</a>,
|
||||
typename PredecessorMap, typename DistanceMap,
|
||||
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">DistanceCompare</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">DistanceWeightCombine</a>,
|
||||
typename DistanceInfinity, typename DistanceZero>
|
||||
void dijkstra_shortest_paths_no_color_map
|
||||
(const Graph& graph,
|
||||
typename graph_traits<Graph>::vertex_descriptor start_vertex,
|
||||
PredecessorMap predecessor_map, DistanceMap distance_map, WeightMap weight_map,
|
||||
VertexIndexMap index_map,
|
||||
DistanceCompare distance_compare, DistanceWeightCombine distance_weight_combine,
|
||||
DistanceInfinity distance_infinity, DistanceZero distance_zero);
|
||||
|
||||
<i>// version that does not initialize the property maps</i>
|
||||
template <typename Graph, typename <a href="DijkstraVisitor.html">DijkstraVisitor</a>,
|
||||
typename PredecessorMap, typename DistanceMap,
|
||||
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">DistanceCompare</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">DistanceWeightCombine</a>,
|
||||
typename DistanceInfinity, typename DistanceZero>
|
||||
void dijkstra_shortest_paths_no_color_map_no_init
|
||||
(const Graph& graph,
|
||||
typename graph_traits<Graph>::vertex_descriptor start_vertex,
|
||||
PredecessorMap predecessor_map, DistanceMap distance_map, WeightMap weight_map,
|
||||
VertexIndexMap index_map,
|
||||
DistanceCompare distance_compare, DistanceWeightCombine distance_weight_combine,
|
||||
DistanceInfinity distance_infinity, DistanceZero distance_zero);
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This algorithm [<A HREF="bibliography.html#dijkstra59">10</A>,<A
|
||||
HREF="bibliography.html#clr90">8</A>] solves the single-source
|
||||
shortest-paths problem on a weighted, directed or undirected graph for
|
||||
the case where all edge weights are nonnegative. Use the Bellman-Ford
|
||||
algorithm for the case when some edge weights are negative. Use
|
||||
breadth-first search instead of Dijkstra's algorithm when all edge
|
||||
weights are equal to one. For the definition of the shortest-path
|
||||
problem see Section <A
|
||||
HREF="graph_theory_review.html#sec:shortest-paths-algorithms">Shortest-Paths
|
||||
Algorithms</A> for some background to the shortest-path problem.
|
||||
</P>
|
||||
|
||||
<P>
|
||||
<tt>dijkstra_shortest_paths_no_color_map</tt> differs from the original <tt>dijkstra_shortest_paths</tt> algorithm by not using a color map to identify vertices as discovered or undiscovered. Instead, this is done with the distance map: a vertex <i>u</i> such that <i>distance_compare(distance_map[u], distance_infinity) == false</i> is considered to be undiscovered.
|
||||
</P>
|
||||
|
||||
<P>
|
||||
There are two main options for obtaining output from the
|
||||
<tt>dijkstra_shortest_paths_no_color_map()</tt> function. If you provide a
|
||||
distance property map through the <tt>distance_map()</tt> parameter
|
||||
then the shortest distance from the start vertex to every other
|
||||
vertex in the graph will be recorded in the distance map. Also you can
|
||||
record the shortest paths tree in a predecessor map: for each vertex
|
||||
<i>u in V</i>, <i>p[u]</i> will be the predecessor of <i>u</i> in
|
||||
the shortest paths tree (unless <i>p[u] = u</i>, in which case <i>u</i> is
|
||||
either the source or a vertex unreachable from the source). In
|
||||
addition to these two options, the user can provide their own
|
||||
custom-made visitor that takes actions during any of the
|
||||
algorithm's event points <a href="#4">[4]</a>.</P>
|
||||
|
||||
<P>
|
||||
Dijkstra's algorithm finds all the shortest paths from the source
|
||||
vertex to every other vertex by iteratively "growing" the set of
|
||||
vertices <i>S</i> to which it knows the shortest path. At each step of
|
||||
the algorithm, the next vertex added to <i>S</i> is determined by a
|
||||
priority queue. The queue contains the vertices in <i>V - S</i><a
|
||||
href="#1">[1]</a> prioritized by their distance label, which is the
|
||||
length of the shortest path seen so far for each vertex. The vertex
|
||||
<i>u</i> at the top of the priority queue is then added to <i>S</i>,
|
||||
and each of its out-edges is relaxed: if the distance to <i>u</i> plus
|
||||
the weight of the out-edge <i>(u,v)</i> is less than the distance
|
||||
label for <i>v</i> then the estimated distance for vertex <i>v</i> is
|
||||
reduced. The algorithm then loops back, processing the next vertex at
|
||||
the top of the priority queue. The algorithm finishes when the
|
||||
priority queue is empty.
|
||||
</P>
|
||||
<p>
|
||||
The following is the pseudo-code for Dijkstra's single-source shortest
|
||||
paths algorithm. <i>w</i> is the edge weight, <i>d</i> is the distance label,
|
||||
and <i>p</i> is the predecessor of each vertex which is used to encode
|
||||
the shortest paths tree. <i>Q</i> is a priority queue that supports the
|
||||
DECREASE-KEY operation. The visitor event points for the algorithm are
|
||||
indicated by the labels on the right.
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<pre>
|
||||
DIJKSTRA(<i>G</i>, <i>s</i>, <i>w</i>)
|
||||
<b>for</b> each vertex <i>u in V</i> <b>(This loop is not run in dijkstra_shortest_paths_no_color_map_no_init)</b>
|
||||
<i>d[u] := infinity</i>
|
||||
<i>p[u] := u</i>
|
||||
<b>end for</b>
|
||||
<i>d[s] := 0</i>
|
||||
INSERT(<i>Q</i>, <i>s</i>)
|
||||
<b>while</b> (<i>Q != Ø</i>)
|
||||
<i>u :=</i> EXTRACT-MIN(<i>Q</i>)
|
||||
<b>for</b> each vertex <i>v in Adj[u]</i>
|
||||
<b>if</b> (<i>w(u,v) + d[u] < d[v]</i>)
|
||||
<i>d[v] := w(u,v) + d[u]</i>
|
||||
<i>p[v] := u</i>
|
||||
DECREASE-KEY(<i>Q</i>, <i>v</i>)
|
||||
<b>else</b>
|
||||
...
|
||||
<b>if</b> (<i>d[v]</i> was originally infinity)
|
||||
INSERT(<i>Q</i>, <i>v</i>)
|
||||
<b>end for</b>
|
||||
<b>end while</b>
|
||||
return (<i>d</i>, <i>p</i>)
|
||||
</pre>
|
||||
</td>
|
||||
<td valign="top">
|
||||
<pre>
|
||||
|
||||
initialize vertex <i>u</i>
|
||||
|
||||
|
||||
|
||||
|
||||
discover vertex <i>s</i>
|
||||
|
||||
examine vertex <i>u</i>
|
||||
examine edge <i>(u,v)</i>
|
||||
|
||||
edge <i>(u,v)</i> relaxed
|
||||
|
||||
|
||||
|
||||
edge <i>(u,v)</i> not relaxed
|
||||
|
||||
discover vertex <i>v</i>
|
||||
finish vertex <i>u</i>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Where Defined</h3>
|
||||
|
||||
<a href="../../../boost/graph/dijkstra_shortest_paths_no_color_map.hpp"><tt>boost/graph/dijkstra_shortest_paths_no_color_map.hpp</tt></a>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
IN: <tt>const Graph& graph</tt>
|
||||
<blockquote>
|
||||
The graph object on which the algorithm will be applied.
|
||||
The type <tt>Graph</tt> must be a model of
|
||||
<a href="./VertexListGraph.html">Vertex List Graph</a>
|
||||
and <a href="./IncidenceGraph.html">Incidence Graph</a>.<br>
|
||||
</blockquote>
|
||||
|
||||
IN: <tt>vertex_descriptor start_vertex</tt>
|
||||
<blockquote>
|
||||
The source vertex. All distance will be calculated from this vertex,
|
||||
and the shortest paths tree will be rooted at this vertex.<br>
|
||||
</blockquote>
|
||||
|
||||
<h3>Named Parameters</h3>
|
||||
|
||||
IN: <tt>weight_map(WeightMap weight_map)</tt>
|
||||
<blockquote>
|
||||
The weight or ``length'' of each edge in the graph. The weights
|
||||
must all be non-negative and non-infinite <a href="#3">[3]</a>. The algorithm will throw a
|
||||
<a href="./exception.html#negative_edge"><tt>negative_edge</tt></a>
|
||||
exception is one of the edges is negative.
|
||||
The type <tt>WeightMap</tt> must be a model of
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
|
||||
the graph needs to be usable as the key type for the weight
|
||||
map. The value type for this map must be
|
||||
the same as the value type of the distance map.<br>
|
||||
<b>Default:</b> <tt>get(edge_weight, graph)</tt><br>
|
||||
</blockquote>
|
||||
|
||||
IN: <tt>index_map(VertexIndexMap index_map)</tt>
|
||||
<blockquote>
|
||||
This maps each vertex to an integer in the range <tt>[0,
|
||||
num_vertices(graph))</tt>. This is necessary for efficient updates of the
|
||||
heap data structure [<A
|
||||
HREF="bibliography.html#driscoll88">61</A>] when an edge is relaxed.
|
||||
The type
|
||||
<tt>VertexIndexMap</tt> must be a model of
|
||||
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
|
||||
integer type. The vertex descriptor type of the graph needs to be
|
||||
usable as the key type of the map.<br>
|
||||
<b>Default:</b> <tt>get(vertex_index, graph)</tt>.
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.
|
||||
<br>
|
||||
</blockquote>
|
||||
|
||||
OUT: <tt>predecessor_map(PredecessorMap predecessor_map)</tt>
|
||||
<blockquote>
|
||||
The predecessor map records the edges in the minimum spanning
|
||||
tree. Upon completion of the algorithm, the edges <i>(p[u],u)</i>
|
||||
for all <i>u in V</i> are in the minimum spanning tree. If <i>p[u] =
|
||||
u</i> then <i>u</i> is either the source vertex or a vertex that is
|
||||
not reachable from the source. The <tt>PredecessorMap</tt> type
|
||||
must be a <a
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a> whose key and value types are the same as the vertex
|
||||
descriptor type of the graph.<br>
|
||||
<b>Default:</b> <tt>dummy_property_map</tt><br>
|
||||
|
||||
<b>Python</b>: Must be a <tt>vertex_vertex_map</tt> for the graph.<br>
|
||||
</blockquote>
|
||||
|
||||
UTIL/OUT: <tt>distance_map(DistanceMap distance_map)</tt>
|
||||
<blockquote>
|
||||
The shortest path weight from the source vertex <tt>start_vertex</tt> to each
|
||||
vertex in the graph <tt>graph</tt> is recorded in this property map. The
|
||||
shortest path weight is the sum of the edge weights along the
|
||||
shortest path. The type <tt>DistanceMap</tt> must be a model of <a
|
||||
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
|
||||
Property Map</a>. The vertex descriptor type of the graph needs to
|
||||
be usable as the key type of the distance map.
|
||||
|
||||
The value type of the distance map is the element type of a <a
|
||||
href="./Monoid.html">Monoid</a> formed with the <tt>distance_weight_combine</tt>
|
||||
function object and the <tt>distance_zero</tt> object for the identity
|
||||
element. Also the distance value type must have a <a
|
||||
href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html">
|
||||
StrictWeakOrdering</a> provided by the <tt>distance_compare</tt> function
|
||||
object.<br>
|
||||
<b>Default:</b> <a
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a
|
||||
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type of size
|
||||
<tt>num_vertices(graph)</tt> and using the <tt>index_map</tt> for the index
|
||||
map.<br>
|
||||
</blockquote>
|
||||
|
||||
IN: <tt>distance_compare(CompareFunction distance_compare)</tt>
|
||||
<blockquote>
|
||||
This function is use to compare distances to determine which vertex
|
||||
is closer to the source vertex. The <tt>DistanceCompareFunction</tt> type
|
||||
must be a model of <a
|
||||
href="http://www.sgi.com/tech/stl/BinaryPredicate.html">Binary
|
||||
Predicate</a> and have argument types that match the value type of
|
||||
the <tt>DistanceMap</tt> property map.<br>
|
||||
|
||||
<b>Default:</b>
|
||||
<tt>std::less<D></tt> with <tt>D=typename
|
||||
property_traits<DistanceMap>::value_type</tt><br>
|
||||
</blockquote>
|
||||
|
||||
IN: <tt>distance_combine(CombineFunction distance_weight_combine)</tt>
|
||||
<blockquote>
|
||||
This function is used to combine distances to compute the distance
|
||||
of a path. The <tt>DistanceWeightCombineFunction</tt> type must be a model of <a
|
||||
href="http://www.sgi.com/tech/stl/BinaryFunction.html">Binary
|
||||
Function</a>. The first argument type of the binary function must
|
||||
match the value type of the <tt>DistanceMap</tt> property map and
|
||||
the second argument type must match the value type of the
|
||||
<tt>WeightMap</tt> property map. The result type must be the same
|
||||
type as the distance value type.<br>
|
||||
|
||||
<b>Default:</b> <tt>boost::closed_plus<D></tt> with
|
||||
<tt>D=typename property_traits<DistanceMap>::value_type</tt><br>
|
||||
</blockquote>
|
||||
|
||||
IN: <tt>distance_inf(D distance_infinity)</tt>
|
||||
<blockquote>
|
||||
The <tt>distance_infinity</tt> object must be the greatest value of any <tt>D</tt> object.
|
||||
That is, <tt>distance_compare(d, distance_infinity) == true</tt> for any <tt>d != distance_infinity</tt>.
|
||||
The type <tt>D</tt> is the value type of the <tt>DistanceMap</tt>.<br>
|
||||
<b>Default:</b> <tt>std::numeric_limits<D>::max()</tt><br>
|
||||
</blockquote>
|
||||
|
||||
IN: <tt>distance_zero(D distance_zero)</tt>
|
||||
<blockquote>
|
||||
The <tt>distance_zero</tt> value must be the identity element for the
|
||||
<a href="./Monoid.html">Monoid</a> formed by the distance values
|
||||
and the <tt>distance_weight_combine</tt> function object.
|
||||
The type <tt>D</tt> is the value type of the <tt>DistanceMap</tt>.<br>
|
||||
<b>Default:</b> <tt>D()</tt>with
|
||||
<tt>D=typename property_traits<DistanceMap>::value_type</tt><br>
|
||||
</blockquote>
|
||||
|
||||
OUT: <tt>visitor(DijkstraVisitor v)</tt>
|
||||
<blockquote>
|
||||
Use this to specify actions that you would like to happen
|
||||
during certain event points within the algorithm.
|
||||
The type <tt>DijkstraVisitor</tt> must be a model of the
|
||||
<a href="./DijkstraVisitor.html">Dijkstra Visitor</a> concept.
|
||||
The visitor object is passed by value <a
|
||||
href="#2">[2]</a>.<br>
|
||||
<b>Default:</b> <tt>dijkstra_visitor<null_visitor></tt><br>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<H3>Complexity</H3>
|
||||
|
||||
<P>
|
||||
The time complexity is <i>O(V log V)</i>.
|
||||
|
||||
|
||||
<h3>Visitor Event Points</h3>
|
||||
|
||||
<ul>
|
||||
<li><b><tt>vis.initialize_vertex(u, g)</tt></b>
|
||||
is invoked on each vertex in the graph before the start of the
|
||||
algorithm.
|
||||
<li><b><tt>vis.examine_vertex(u, g)</tt></b>
|
||||
is invoked on a vertex as it is removed from the priority queue
|
||||
and added to set <i>S</i>. At this point we know that <i>(p[u],u)</i>
|
||||
is a shortest-paths tree edge so
|
||||
<i>d[u] = delta(s,u) = d[p[u]] + w(p[u],u)</i>. Also, the distances
|
||||
of the examined vertices is monotonically increasing
|
||||
<i>d[u<sub>1</sub>] <= d[u<sub>2</sub>] <= d[u<sub>n</sub>]</i>.
|
||||
<li><b><tt>vis.examine_edge(e, g)</tt></b>
|
||||
is invoked on each out-edge of a vertex immediately after it has
|
||||
been added to set <i>S</i>.
|
||||
<li><b><tt>vis.edge_relaxed(e, g)</tt></b>
|
||||
is invoked on edge <i>(u,v)</i> if <i>d[u] + w(u,v) < d[v]</i>.
|
||||
The edge <i>(u,v)</i> that participated in the last
|
||||
relaxation for vertex <i>v</i> is an edge in the shortest paths tree.
|
||||
<li><b><tt>vis.discover_vertex(v, g)</tt></b>
|
||||
is invoked on vertex <i>v</i> when the edge
|
||||
<i>(u,v)</i> is examined and <i>v</i> has not yet been discovered (i.e. its distance was infinity before relaxation was attempted on the edge). This
|
||||
is also when the vertex is inserted into the priority queue.
|
||||
<li><b><tt>vis.edge_not_relaxed(e, g)</tt></b>
|
||||
is invoked if the edge is not relaxed (see above).
|
||||
<li><b><tt>vis.finish_vertex(u, g)</tt></b>
|
||||
is invoked on a vertex after all of its out edges have
|
||||
been examined.
|
||||
</ul>
|
||||
|
||||
<H3>Example</H3>
|
||||
|
||||
<P>
|
||||
See <a href="../example/dijkstra-no-color-map-example.cpp">
|
||||
<TT>example/dijkstra-no-color-map-example.cpp</TT></a> for an example of using Dijkstra's algorithm.
|
||||
|
||||
<H3>See also</H3> <a href="dijkstra_shortest_paths.html">dijkstra_shortest_paths</a> for a version of dijkstra's shortest path that uses a color map.
|
||||
|
||||
<H3>Notes</H3>
|
||||
|
||||
<p>Based on the documentation for <a href="dijkstra_shortest_paths.html">dijkstra_shortest_paths</a>.
|
||||
|
||||
<p><a name="1">[1]</a>
|
||||
The algorithm used here saves a little space by not putting all <i>V -
|
||||
S</i> vertices in the priority queue at once, but instead only those
|
||||
vertices in <i>V - S</i> that are discovered and therefore have a
|
||||
distance less than infinity.
|
||||
|
||||
<p><a name="2">[2]</a>
|
||||
Since the visitor parameter is passed by value, if your visitor
|
||||
contains state then any changes to the state during the algorithm
|
||||
will be made to a copy of the visitor object, not the visitor object
|
||||
passed in. Therefore you may want the visitor to hold this state by
|
||||
pointer or reference.
|
||||
|
||||
<p><a name="3">[3]</a>
|
||||
The algorithm will not work correctly if any of the edge weights are equal to infinity since the infinite distance value is used to determine if a vertex has been discovered.
|
||||
|
||||
<p><a name="4">[4]</a>
|
||||
Calls to the visitor events occur in the same order as <tt>dijkstra_shortest_paths</tt> (i.e. <i>discover_vertex(u)</i> will always be called after <i>examine_vertex(u)</i> for an undiscovered vertex <i>u</i>). However, the vertices of the graph given to <i>dijkstra_shortest_paths_no_color_map</i> will <b>not</b> necessarily be visited in the same order as <i>dijkstra_shortest_paths</i>.
|
||||
|
||||
<br>
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2009</TD><TD>
|
||||
Trustees of Indiana University</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: dijkstra_visitor</Title>
|
||||
@@ -115,12 +111,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: distance_recorder</Title>
|
||||
@@ -68,7 +64,7 @@ See the example for <a href="./bfs_visitor.html"><tt>bfs_visitor</tt></a>.
|
||||
<TR><TD><TT>DistanceMap</TT></TD>
|
||||
<TD>
|
||||
A <a
|
||||
href="../../property_map/WritablePropertyMap.html">WritablePropertyMap</a>,
|
||||
href="../../property_map/doc/WritablePropertyMap.html">WritablePropertyMap</a>,
|
||||
where the key type and the value type are the vertex descriptor type
|
||||
of the graph.
|
||||
</TD>
|
||||
@@ -166,12 +162,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Edge List Class</Title>
|
||||
@@ -211,12 +207,12 @@ Returns the target vertex of edge <TT>e</TT>.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
|
||||
<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<A
|
||||
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Edmunds-Karp Maximum Flow</Title>
|
||||
<Title>Boost Graph Library: Edmonds-Karp Maximum Flow</Title>
|
||||
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
|
||||
ALINK="#ff0000">
|
||||
<IMG SRC="../../../boost.png"
|
||||
@@ -19,15 +15,15 @@
|
||||
|
||||
<BR Clear>
|
||||
|
||||
<H1><A NAME="sec:edmunds_karp_max_flow">
|
||||
<TT>edmunds_karp_max_flow</TT>
|
||||
<H1><A NAME="sec:edmonds_karp_max_flow">
|
||||
<TT>edmonds_karp_max_flow</TT>
|
||||
</H1>
|
||||
|
||||
<PRE>
|
||||
<i>// named paramter version</i>
|
||||
template <class <a href="./Graph.html">Graph</a>, class P, class T, class R>
|
||||
typename detail::edge_capacity_value<Graph, P, T, R>::value_type
|
||||
edmunds_karp_max_flow(Graph& g,
|
||||
edmonds_karp_max_flow(Graph& g,
|
||||
typename graph_traits<Graph>::vertex_descriptor src,
|
||||
typename graph_traits<Graph>::vertex_descriptor sink,
|
||||
const bgl_named_params<P, T, R>& params = <i>all defaults</i>)
|
||||
@@ -37,7 +33,7 @@ template <class <a href="./Graph.html">Graph</a>,
|
||||
class CapacityEdgeMap, class ResidualCapacityEdgeMap,
|
||||
class ReverseEdgeMap, class ColorMap, class PredEdgeMap>
|
||||
typename property_traits<CapacityEdgeMap>::value_type
|
||||
edmunds_karp_max_flow(Graph& g,
|
||||
edmonds_karp_max_flow(Graph& g,
|
||||
typename graph_traits<Graph>::vertex_descriptor src,
|
||||
typename graph_traits<Graph>::vertex_descriptor sink,
|
||||
CapacityEdgeMap cap, ResidualCapacityEdgeMap res, ReverseEdgeMap rev,
|
||||
@@ -45,7 +41,7 @@ edmunds_karp_max_flow(Graph& g,
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
The <tt>edmunds_karp_max_flow()</tt> function calculates the maximum flow
|
||||
The <tt>edmonds_karp_max_flow()</tt> function calculates the maximum flow
|
||||
of a network. See Section <a
|
||||
href="./graph_theory_review.html#sec:network-flow-algorithms">Network
|
||||
Flow Algorithms</a> for a description of maximum flow. The calculated
|
||||
@@ -79,6 +75,8 @@ This algorithm provides a very simple and easy to implement solution to
|
||||
the maximum flow problem. However, there are several reasons why this
|
||||
algorithm is not as good as the <a
|
||||
href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a>
|
||||
or the <a
|
||||
href="./kolmogorov_max_flow.html"><tt>kolmogorov_max_flow()</tt></a>
|
||||
algorithm.
|
||||
|
||||
<ul>
|
||||
@@ -95,7 +93,7 @@ algorithm.
|
||||
<H3>Where Defined</H3>
|
||||
|
||||
<P>
|
||||
<a href="../../../boost/graph/edmunds_karp_max_flow.hpp"><TT>boost/graph/edmunds_karp_max_flow.hpp</TT></a>
|
||||
<a href="../../../boost/graph/edmonds_karp_max_flow.hpp"><TT>boost/graph/edmonds_karp_max_flow.hpp</TT></a>
|
||||
|
||||
<P>
|
||||
|
||||
@@ -127,7 +125,7 @@ IN: <tt>capacity_map(CapacityEdgeMap cap)</tt>
|
||||
<blockquote>
|
||||
The edge capacity property map. The type must be a model of a
|
||||
constant <a
|
||||
href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>. The
|
||||
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property Map</a>. The
|
||||
key type of the map must be the graph's edge descriptor type.<br>
|
||||
<b>Default:</b> <tt>get(edge_capacity, g)</tt>
|
||||
</blockquote>
|
||||
@@ -136,7 +134,7 @@ OUT: <tt>residual_capacity_map(ResidualCapacityEdgeMap res)</tt>
|
||||
<blockquote>
|
||||
This maps edges to their residual capacity. The type must be a model
|
||||
of a mutable <a
|
||||
href="../../property_map/LvaluePropertyMap.html">Lvalue Property
|
||||
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property
|
||||
Map</a>. The key type of the map must be the graph's edge descriptor
|
||||
type.<br>
|
||||
<b>Default:</b> <tt>get(edge_residual_capacity, g)</tt>
|
||||
@@ -146,7 +144,7 @@ IN: <tt>reverse_edge_map(ReverseEdgeMap rev)</tt>
|
||||
<blockquote>
|
||||
An edge property map that maps every edge <i>(u,v)</i> in the graph
|
||||
to the reverse edge <i>(v,u)</i>. The map must be a model of
|
||||
constant <a href="../../property_map/LvaluePropertyMap.html">Lvalue
|
||||
constant <a href="../../property_map/doc/LvaluePropertyMap.html">Lvalue
|
||||
Property Map</a>. The key type of the map must be the graph's edge
|
||||
descriptor type.<br>
|
||||
<b>Default:</b> <tt>get(edge_reverse, g)</tt>
|
||||
@@ -158,13 +156,13 @@ UTIL: <tt>color_map(ColorMap color)</tt>
|
||||
breadth-first search stage. At the end of the algorithm, the white
|
||||
vertices define the minimum cut set. The map must be a model of
|
||||
mutable <a
|
||||
href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>.
|
||||
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property Map</a>.
|
||||
The key type of the map should be the graph's vertex descriptor type, and
|
||||
the value type must be a model of <a
|
||||
href="./ColorValue.html">ColorValue</a>.<br>
|
||||
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
|
||||
of <tt>default_color_type</tt> of size <tt>num_vertices(g)</tt> and
|
||||
using the <tt>i_map</tt> for the index map.
|
||||
@@ -174,12 +172,12 @@ UTIL: <tt>predecessor_map(PredEdgeMap pred)</tt>
|
||||
<blockquote>
|
||||
Use by the algorithm to store augmenting paths. The map must be a
|
||||
model of mutable <a
|
||||
href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>.
|
||||
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property Map</a>.
|
||||
The key type must be the graph's vertex descriptor type and the
|
||||
value type must be the graph's edge descriptor type.<br>
|
||||
|
||||
<b>Default:</b> an <a
|
||||
href="../../property_map/iterator_property_map.html">
|
||||
href="../../property_map/doc/iterator_property_map.html">
|
||||
<tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
|
||||
of edge descriptors of size <tt>num_vertices(g)</tt> and
|
||||
using the <tt>i_map</tt> for the index map.
|
||||
@@ -191,10 +189,14 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
|
||||
<tt>[0, num_vertices(g))</tt>. This property map is only needed
|
||||
if the default for the color or predecessor map is used.
|
||||
The vertex index map must be a model of <a
|
||||
href="../../property_map/ReadablePropertyMap.html">Readable Property
|
||||
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
|
||||
Map</a>. The key type of the map must be the graph's vertex
|
||||
descriptor type.<br>
|
||||
<b>Default:</b> <tt>get(vertex_index, g)</tt>
|
||||
Note: if you use this default, make sure your graph has
|
||||
an internal <tt>vertex_index</tt> property. For example,
|
||||
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
|
||||
not have an internal <tt>vertex_index</tt> property.
|
||||
</blockquote>
|
||||
|
||||
|
||||
@@ -207,28 +209,29 @@ some constant <i>U</i>.
|
||||
<h3>Example</h3>
|
||||
|
||||
The program in <a
|
||||
href="../example/edmunds-karp-eg.cpp"><tt>example/edmunds-karp-eg.cpp</tt></a>
|
||||
href="../example/edmonds-karp-eg.cpp"><tt>example/edmonds-karp-eg.cpp</tt></a>
|
||||
reads an example maximum flow problem (a graph with edge capacities)
|
||||
from a file in the DIMACS format and computes the maximum flow.
|
||||
|
||||
|
||||
<h3>See Also</h3>
|
||||
|
||||
<a href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a>.
|
||||
<a href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a><br>
|
||||
<a href="./kolmogorov_max_flow.html"><tt>kolmogorov_max_flow()</tt></a>.
|
||||
|
||||
<br>
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/users/people/jeremy_siek.html">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
<!-- LocalWords: HTML Siek Edmunds BGCOLOR ffffff ee VLINK ALINK ff IMG SRC
|
||||
<!-- LocalWords: HTML Siek Edmonds BGCOLOR ffffff ee VLINK ALINK ff IMG SRC
|
||||
-->
|
||||
<!-- LocalWords: gif ALT BR sec edmunds karp TT DIV CELLPADDING TR TD PRE lt
|
||||
<!-- LocalWords: gif ALT BR sec edmonds karp TT DIV CELLPADDING TR TD PRE lt
|
||||
-->
|
||||
<!-- LocalWords: typename VertexListGraph CapacityEdgeMap ReverseEdgeMap gt
|
||||
-->
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <boost/graph/adjacency_list.hpp>
|
||||
#include <boost/graph/isomorphism.hpp>
|
||||
//#include "isomorphism-v3.hpp"
|
||||
#include <boost/property_map.hpp>
|
||||
#include <boost/property_map/property_map.hpp>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <map>
|
||||
@@ -102,5 +102,5 @@ void test_isomorphism()
|
||||
int test_main(int, char* [])
|
||||
{
|
||||
test_isomorphism();
|
||||
return EXIT_SUCCESS;
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) The Trustees of Indiana University
|
||||
--
|
||||
-- Use, modification and distribution is subject to the Boost Software
|
||||
-- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
-- http://www.boost.org/LICENSE_1_0.txt)
|
||||
--
|
||||
-- Authors: Douglas Gregor
|
||||
-- Andrew Lumsdaine
|
||||
Copyright (c) 2004, 2005 The Trustees of Indiana University
|
||||
|
||||
Use, modification and distribution is subject to the Boost Software
|
||||
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
Authors: Douglas Gregor
|
||||
Jeremiah Willcock
|
||||
Andrew Lumsdaine
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Erdös-Renyi Generator</Title>
|
||||
@@ -45,7 +46,10 @@ public:
|
||||
|
||||
erdos_renyi_iterator();
|
||||
erdos_renyi_iterator(RandomGenerator& gen, vertices_size_type n,
|
||||
double probability = 0.0, bool allow_self_loops = false);
|
||||
double fraction = 0.0, bool allow_self_loops = false);
|
||||
erdos_renyi_iterator(RandomGenerator& gen, vertices_size_type n,
|
||||
edges_size_type m, bool allow_self_loops = false);
|
||||
|
||||
// Iterator operations
|
||||
reference operator*() const;
|
||||
pointer operator->() const;
|
||||
@@ -56,21 +60,28 @@ public:
|
||||
};
|
||||
</PRE>
|
||||
|
||||
<p> This class template implements a generator for Erdöos-Renyi
|
||||
<p> This class template implements a generator for Erdös-Renyi
|
||||
graphs, suitable for initializing an <a
|
||||
href="adjacency_list.html"><tt>adjacency_list</tt></a> or other graph
|
||||
structure with iterator-based initialization. An Erdöos-Renyi
|
||||
structure with iterator-based initialization. An Erdös-Renyi
|
||||
graph <em>G = (n, p)</em> is a graph with <em>n</em> vertices
|
||||
that. The probability of having an edge <em>(u, v)</em> in <em>G</em>
|
||||
is <em>p</em> for any vertices <em>u</em> and <em>v</em>. Typically,
|
||||
there are no self-loops, but the generator can optionally introduce
|
||||
self-loops with probability <em>p</em>.</p>
|
||||
self-loops with probability <em>p</em>. This generator will not
|
||||
produce any parallel edges and will produce edges in sorted order (as
|
||||
required by, e.g., the <a
|
||||
href="compressed_sparse_row.html"><tt>compressed_sparse_row_graph</tt></a>).</p>
|
||||
|
||||
<p>Erdös-Renyi graphs typically exhibit very little
|
||||
structure. For this reason, they are rarely useful in modeling
|
||||
real-world problems. However, they are often used when determining
|
||||
the theoretical complexity of complex graph algorithms.</p>
|
||||
|
||||
<p>If you want the possibility of generating parallel edges and don't
|
||||
care about sorted order, use the <a
|
||||
href="erdos_renyi_generator.html"><tt>erdos_renyi_iterator</tt></a>.</p>
|
||||
|
||||
<h3>Where Defined</h3>
|
||||
|
||||
<a href="../../../boost/graph/erdos_renyi_generator.hpp"><tt>boost/graph/erdos_renyi_generator.hpp</tt></a>
|
||||
@@ -85,14 +96,26 @@ Constructs a past-the-end iterator.
|
||||
|
||||
<pre>
|
||||
erdos_renyi_iterator(RandomGenerator& gen, vertices_size_type n,
|
||||
double probability = 0.0, bool allow_self_loops =
|
||||
false);
|
||||
double fraction = 0.0, bool allow_self_loops = false);
|
||||
</pre>
|
||||
<blockquote>
|
||||
Constructs an Erdös-Renyi generator iterator that creates a
|
||||
graph with <tt>n</tt> vertices and edges with probability
|
||||
<tt>probability</tt>. Probabilities are drawn from the random number
|
||||
generator <tt>gen</tt>. Self-loops are permitted only when
|
||||
graph with <tt>n</tt> vertices and a given <tt>fraction</tt> of the
|
||||
total number of edges that a simple graph may have.
|
||||
<tt>probability</tt>. Random vertices and edges are selected using the
|
||||
random number generator <tt>gen</tt>. Self-loops are permitted only when
|
||||
<tt>allow_self_loops</tt> is <tt>true</tt>.
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
erdos_renyi_iterator(RandomGenerator& gen, vertices_size_type n,
|
||||
edges_size_type m, bool allow_self_loops = false);
|
||||
</pre>
|
||||
<blockquote>
|
||||
Constructs an Erdös-Renyi generator iterator that creates a
|
||||
graph with <tt>n</tt> vertices and <tt>m</tt> edges.
|
||||
<tt>probability</tt>. Random vertices and edges are selected using the
|
||||
random number generator <tt>gen</tt>. Self-loops are permitted only when
|
||||
<tt>allow_self_loops</tt> is <tt>true</tt>.
|
||||
</blockquote>
|
||||
|
||||
@@ -119,9 +142,9 @@ int main()
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2005</TD><TD>
|
||||
<A HREF="../../../people/doug_gregor.html">Doug Gregor</A>, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
|
||||
<A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
|
||||
<TD nowrap>Copyright © 2005</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/doug_gregor.html">Doug Gregor</A>, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
|
||||
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
|
||||
Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2002
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Jeremy Siek makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2002
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: Exceptions</Title>
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. We make no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>Boost Graph Library: FAQ</Title>
|
||||
@@ -77,7 +73,7 @@ disadvantage of an adaptor class (compared to overloaded functions) is
|
||||
that one has to physically wrap and unwrap the objects as they go
|
||||
into/out of BGL algorithms. So the overloaded function route is more
|
||||
convenient. Granted, this is not a huge difference, but since there
|
||||
weren't other strong reasons, it was enough for us to choose member
|
||||
weren't other strong reasons, it was enough for us to choose free
|
||||
functions.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
# -*- makefile -*-
|
||||
# Copyright (c) 2002 Trustees of Indiana University
|
||||
#
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
.SUFFIXES: .fig .gif .tif .jpeg
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 69 KiB |
@@ -1,14 +1,10 @@
|
||||
<HTML>
|
||||
<!--
|
||||
-- Copyright (c) Jeremy Siek 2000
|
||||
--
|
||||
-- Permission to use, copy, modify, distribute and sell this software
|
||||
-- and its documentation for any purpose is hereby granted without fee,
|
||||
-- provided that the above copyright notice appears in all copies and
|
||||
-- that both that copyright notice and this permission notice appear
|
||||
-- in supporting documentation. Silicon Graphics makes no
|
||||
-- representations about the suitability of this software for any
|
||||
-- purpose. It is provided "as is" without express or implied warranty.
|
||||
Copyright (c) Jeremy Siek 2000
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
-->
|
||||
<Head>
|
||||
<Title>File Dependency Example</Title>
|
||||
@@ -85,14 +81,27 @@ href="../example/file_dependencies.cpp"><TT>examples/file_dependencies.cpp</TT><
|
||||
<H2>Graph Setup</H2>
|
||||
|
||||
<P>
|
||||
Here we show the construction of the graph. For simplicity we have
|
||||
Here we show the construction of the graph. First, these are the required
|
||||
header files:
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
#include <iostream> // std::cout
|
||||
#include <utility> // std::pair
|
||||
#include <boost/graph/graph_traits.hpp>
|
||||
#include <boost/graph/adjacency_list.hpp>
|
||||
#include <boost/graph/topological_sort.hpp>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
For simplicity we have
|
||||
constructed the graph "by-hand". A compilation system such
|
||||
as <TT>make</TT> would instead parse a <TT>Makefile</TT> to get the
|
||||
list of files and to set-up the dependencies. We use the
|
||||
<TT>adjacency_list</TT> class to represent the graph. The
|
||||
<TT>vecS</TT> selector means that a <TT>std::vector</TT> will be used
|
||||
to represent each edge-list, which provides efficient traversal. The
|
||||
<TT>directedS</TT> selector means we want a directed graph, and the
|
||||
<TT>bidirectionalS</TT> selector means we want a directed graph with access to both the edges outgoing from each vertex and the edges incoming to each vertex, and the
|
||||
<TT>color_property</TT> attaches a color property to each vertex of the
|
||||
graph. The color property will be used in several of the algorithms in
|
||||
the following sections.
|
||||
@@ -127,11 +136,10 @@ the following sections.
|
||||
};
|
||||
|
||||
using namespace boost;
|
||||
typedef adjacency_list<vecS, vecS, directedS,
|
||||
property<vertex_color_t, default_color_type>,
|
||||
property<edge_weight_t, int>
|
||||
typedef adjacency_list<vecS, vecS, bidirectionalS,
|
||||
property<vertex_color_t, default_color_type>
|
||||
> Graph;
|
||||
Graph g(N, used_by, used_by + sizeof(used_by) / sizeof(Edge));
|
||||
Graph g(used_by, used_by + sizeof(used_by) / sizeof(Edge), N);
|
||||
typedef graph_traits<Graph>::vertex_descriptor Vertex;
|
||||
</PRE>
|
||||
|
||||
@@ -195,86 +203,42 @@ earliest time that a file can be built assuming that an unlimited
|
||||
number of files can be built at the same time? The main criteria for
|
||||
when a file can be built is that all of the files it depends on must
|
||||
already be built. To simplify things for this example, we'll assume
|
||||
that each file takes 1 time unit to build (even header files). The
|
||||
that each file takes 1 time unit to build (even header files). For
|
||||
parallel compilation, we can build all of the files corresponding to
|
||||
vertices with no dependencies, e.g., those that have
|
||||
an <i>in-degree</i> of 0, in the first step. For all other files, the
|
||||
main observation for determining the ``time slot'' for a file is that
|
||||
the time slot must be one more than the maximum time-slot of the files
|
||||
it depends on.
|
||||
|
||||
<P>
|
||||
This idea of calculating a value based on the previously computed
|
||||
values of neighboring vertices is the same idea behind Dijkstra's
|
||||
single-source shortest paths algorithm (see <a
|
||||
href="./dijkstra_shortest_paths.html"><tt>dijkstra_shortest_paths()</tt></a>). The
|
||||
main difference between this situation and a shortest-path algorithm
|
||||
is that we want to use the maximum of the neighbors' values instead of
|
||||
the minimum. In addition, we do not have a single source
|
||||
vertex. Instead we will want to treat all vertices with in-degree of
|
||||
zero as sources (i.e., vertices with no edges coming into them). So we
|
||||
use Dijkstra's algorithm with several extra parameters instead
|
||||
of relying on the defaults.
|
||||
|
||||
<P>
|
||||
To use <TT>dijkstra_shortest_paths()</TT>, we must first set up the vertex
|
||||
and edge properties that will be used in the algorithm. We will need
|
||||
a time property (replacing the distance property of Dijkstra's
|
||||
algorithm) and an edge weight property. We will use a
|
||||
<TT>std::vector</TT> to store the time. The weight property has already
|
||||
been attached to the graph via a plug-in so here we just declare an
|
||||
map for the internal weight property.
|
||||
<P>We start be creating a vector <code>time</code> that will store the
|
||||
time step at which each file can be built. We initialize every value
|
||||
with time step zero.</p>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
std::vector<int> time(N, 0);
|
||||
typedef std::vector<int>::iterator Time;
|
||||
using boost::edge_weight_t;
|
||||
typedef boost::property_map<Graph, edge_weight_t>::type Weight;
|
||||
Weight weight = get(edge_weight, g);
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
The next step is to identify the vertices with zero in-degree which
|
||||
will be our ``source'' vertices from which to start the shortest path
|
||||
searches. The in-degrees can be calculated with the following loop.
|
||||
<p>Now, we want to visit the vertices against in topological order,
|
||||
from those files that need to be built first until those that need
|
||||
to be built last. However, instead of printing out the order
|
||||
immediately, we will compute the time step in which each file should
|
||||
be built based on the time steps of the files it depends on. We
|
||||
only need to consider those files whose in-degree is greater than
|
||||
zero.</p>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
std::vector<int> in_degree(N, 0);
|
||||
Graph::vertex_iterator i, iend;
|
||||
Graph::out_edge_iterator j, jend;
|
||||
for (boost::tie(i, iend) = vertices(g); i != iend; ++i)
|
||||
for (boost::tie(j, jend) = out_edges(*i, g); j != jend; ++j)
|
||||
in_degree[target(*j, g)] += 1;
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Next we need to define comparison of the "cost". In this
|
||||
case we want each file to have a time stamp greater than any of its
|
||||
predecessors. Therefore we define comparison with the
|
||||
<TT>std::greater<int></TT> function object. We also need to
|
||||
tell the algorithm that we want to use addition to combine time
|
||||
values, so we use <TT>std::plus<int></TT>.
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
std::greater<int> compare;
|
||||
std::plus<int> combine;
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
We are now ready to call <TT>uniform_cost_search()</TT>. We just
|
||||
loop through all the vertices in the graph, and invoke the algorithm
|
||||
if the vertex has zero in-degree.
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
for (boost::tie(i, iend) = vertices(g); i != iend; ++i)
|
||||
if (in_degree[*i] == 0)
|
||||
boost::dijkstra_shortest_paths(g, *i,
|
||||
distance_map(&time[0]).
|
||||
weight_map(weight).
|
||||
distance_compare(compare).
|
||||
distance_combine(combine));
|
||||
</PRE>
|
||||
<pre>
|
||||
for (i = make_order.begin(); i != make_order.end(); ++i) {
|
||||
if (in_degree (*i, g) > 0) {
|
||||
Graph::in_edge_iterator j, j_end;
|
||||
int maxdist = 0;
|
||||
for (tie(j, j_end) = in_edges(*i, g); j != j_end; ++j)
|
||||
maxdist = std::max(time[source(*j, g)], maxdist);
|
||||
time[*i]=maxdist+1;
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
|
||||
<P>
|
||||
Last, we output the time-slot that we've calculated for each vertex.
|
||||
@@ -391,8 +355,8 @@ dependency would be flagged as a user error.
|
||||
<HR>
|
||||
<TABLE>
|
||||
<TR valign=top>
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
<TD nowrap>Copyright © 2000-2001</TD><TD>
|
||||
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
|
||||
</TD></TR></TABLE>
|
||||
|
||||
</BODY>
|
||||
|
||||