COIN-OR LEMON

LEMON 簡介

LEMON 是 COIN-OR(提供了大量的運籌學(xué)相關(guān)算法如B&C等) 開源項目下的一個組件般渡,是一個圖論算法庫,提供了圖論組合優(yōu)化中幾乎所有的基礎(chǔ)算法拉背。
  LEMON最大的優(yōu)勢有三點:

1. 運行效率高

依據(jù)LEMON的自己的官網(wǎng)說明文檔(Introduction to LEMON)盒蟆,LEMON表現(xiàn)出了比BGL更高運行效率咐柜,可以說是目前最快的圖論算法庫。

Dijkstra's algorithm

planar embedding algorithms

2. 數(shù)據(jù)結(jié)構(gòu)簡單易用通孽,方便上手

在逐漸熟悉了LEMON的基本操作之后序宦,由衷感嘆LEMON中無向圖 ListGraph 比BGL中的undirectedS好用太多!由于BGL的無向圖不支持reverse_edge操作背苦,導(dǎo)致很多簡單的操作都要大費周折互捌。還有g(shù)raph map,LEMON的屬性安裝特別直觀易懂行剂,有python基礎(chǔ)的一看就懂疫剃,相比之下BGL簡直反人類!

3. 可以方便的輸出eps格式的網(wǎng)絡(luò)可視化圖像

這是一個非常令人驚喜的功能硼讽,c++下做可視化一直是個很麻煩的東西巢价。LEMON下使用graphToEps()函數(shù),直接即可生成eps格式圖像固阁,簡單有效的程度甚至超越networkx+matplotlib的組合壤躲!

在VS2015環(huán)境下編譯 LEMON庫

由于各方面的原因,最終還是決定在windows下搭建平臺备燃。雖然官方的說明文檔提供了一定的搭建指導(dǎo)說明碉克,但是使用環(huán)境非常古老加之還有疏漏的地方,對初學(xué)者而言非常不友善并齐。本人在折騰了兩天之后漏麦,終于成功搭建客税。
  以下詳細介紹了在windows10 x64+VS2015的環(huán)境下編譯并調(diào)用開發(fā)LEMON庫的全過程。

準(zhǔn)備工作

必要工具 :

正式開始編譯

  1. 安裝cmake 需選擇add-path更耻,其他一路next


    add-path
  2. 安裝ghost script和gsview ,一路next即可
  3. 解壓lemnon1.3.1捏膨,本文中解壓到D盤根目錄秧均,即解壓后得到目錄D:/lemon1.3.1。(也可解壓至其他路徑)
  4. 在D:/lemon1.3.1下建立新文件夾号涯,命名為build
  5. 運行cmake-gui


    運行cmake-gui
  6. 如圖所示填寫路徑目胡。第一項是源碼所在位置,第二項是目標(biāo)位置链快。然后點擊左下角 Configure


  7. 選擇編譯環(huán)境誉己,切記需要在x64環(huán)境下使用的選擇 xxx Win64


  8. 點擊finish后,稍等片刻域蜗,結(jié)果如圖所示


  9. 再次點擊configure巫延,然后點擊generate,帶自動生成完成后地消,即可關(guān)閉cmake炉峰。


  10. 打開build文件夾,雙擊打開LEMON.sln
  1. 將左上角活動配置改為Release


  2. 項目->生成項目脉执,或者F7疼阔。編譯成功結(jié)果如下圖所示:

調(diào)用LEMON庫

  • 新建項目->空項目
  • 左上角活動配置設(shè)為Release和x64
  • 項目->屬性->VC++目錄,包含目錄添加:D:\lemon-1.3.1\buildD:\lemon-1.3.1兩項半夷;鏈接器->常規(guī)->附加庫目錄 添加D:\lemon-1.3.1\build\lemon\Release婆廊;鏈接器->輸入->附加依賴項 添加lemon.lib


一個簡單的例子

#include <iostream>
#include <lemon/list_graph.h>
using namespace std;
using namespace lemon;
void main()
{
    ListGraph G;
    ListGraph::Node u, v;
    u = G.addNode();
    v = G.addNode();
    G.addEdge(u, v);
    for (ListGraph::EdgeIt e(G);e!=INVALID;++e)
    {
        cout << G.id(G.u(e)) << "--" << G.id(G.v(e)) << endl;
    }
}

運行結(jié)果


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巫橄,一起剝皮案震驚了整個濱河市淘邻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湘换,老刑警劉巖宾舅,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異彩倚,居然都是意外死亡筹我,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門帆离,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔬蕊,“玉大人,你說我怎么就攤上這事哥谷“逗唬” “怎么了麻献?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長猜扮。 經(jīng)常有香客問我勉吻,道長,這世上最難降的妖魔是什么破镰? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任餐曼,我火速辦了婚禮压储,結(jié)果婚禮上鲜漩,老公的妹妹穿的比我還像新娘。我一直安慰自己集惋,他們只是感情好孕似,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刮刑,像睡著了一般喉祭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雷绢,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天泛烙,我揣著相機與錄音,去河邊找鬼翘紊。 笑死蔽氨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的帆疟。 我是一名探鬼主播鹉究,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼踪宠!你這毒婦竟也來了自赔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤柳琢,失蹤者是張志新(化名)和其女友劉穎绍妨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柬脸,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡痘绎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肖粮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片孤页。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖涩馆,靈堂內(nèi)的尸體忽然破棺而出行施,到底是詐尸還是另有隱情允坚,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布蛾号,位于F島的核電站稠项,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鲜结。R本人自食惡果不足惜展运,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望精刷。 院中可真熱鬧拗胜,春花似錦、人聲如沸怒允。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纫事。三九已至勘畔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丽惶,已是汗流浹背炫七。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钾唬,地道東北人万哪。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像知纷,于是被迫代替她去往敵國和親壤圃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容