Goblin on Leopard

今日は、GOBLIN (A Graph Object Library for Network Programming Problems) という、グラフアルゴリズム関連のC++クラスライブラリの導入記録です。
# ほんとは、ライブラリを利用したコードの例まで書きたかったのですが、ブログの更新頻度維持のためリリース。まだ、体調がえらい。

Ipelet の練習問題として、グラフアルゴリズム系のものいろいろを考えています。特に、TSP を計算するライブラリを使いたいなぁと思って、いろいろ物色していました。はじめ、Concorde をインストールしようとあれこれやっていましたが、QSopt がうまくリンクできません。配布されているバイナリファイルが Intel Mac 対応ではないのか、正しく動きません。それで、GLPK ベースの Goblin をインストールしてみました。

  • Makefile.conf の編集
    • (30) libtcl = tcl8.5
    • (31) libtk = tk8.5
    • (47) wish_name = /opt/local/bin/wish
    • (58) CXXFLAGS -g -Wall -fPIC
    • (61) LDFLAGS = -L/opt/local/lib
  • lib_src/globals.cpp の編集(14行目) → #include もしくは #include <sys/malloc.h>
  • Makefile の編集
    • (322) $(LD) -dynamiclib -o $@ $^ $(LDFLAGS) $(LIBS)
    • (330) $(LD) -dynamiclib -o $@ $^ $(LDFLAGS) $(LIBS)

/opt/goblin 以下に実行ファイルとライブラリファイルが配置される。

  • おしまい

下の画像は、/opt/goblin/bin/goblet の実行例です。K3,3 とPetersenの平面性判定の結果を示しています。
[:W400]

関係ないけど、八ヶ岳の麓とかも初雪だったんですって (11/3)。