graph-tool 是德国人为BGL做的python接口,不仅将BGL的全部功能实现,还加上CGAL的部分功能。由于BGL的参考文档大量使用C++的高级语法和boost的高级用法,如名字绑定和property_map,示例又偏少,学习BGL的难度曲线较陡,因此建议通过学习graph-tool来加深了解BGL。
graph-tool 主页:http://graph-tool.skewed.de
安装方法【本人机器为 OS X 10.9.5, i7 2.3, 16GB DDR3】:
1、在 mac 下,安装 xcode、xcode命令行、MacPorts;
2、运行:sudo port install py-graph-tool 过程中要下载和编译 boost、cgal等,占用较多CPU、内存和硬盘,费时较长;
3、运行:python2.7【阿甘注:注意不要运行python,因为这是系统默认的python,而我们要用到的python是port给我们下载安装的,放在 /opt/local/Library/Frameworks/Python.framework/Versions/2.7 】
4、在python环境下,尝试命令:from graph_tool.all import * ,如成功则证明graph-tool 下载安装成功,如有warning则查看还缺什么模块。以我自己为例,提示缺少了 matplotlib模块,于是,去 MacPorts 的ports页面【https://www.macports.org/ports.php】上找 matplotlib,然后回到 terminal,退出 python 环境,运行:sudo port install py-matplotlib
安装完成后,根据例子程序:http://graph-tool.skewed.de/static/doc/quickstart.html 进行学习
通过比较python例程和C++例程,学习BGL的使用方法,理解 property_map 的用法,graph 的创建,add_vertex 和 add_edge 等函数的使用。