常見算法及問題場景——圖

最短路徑

現實場景

1、一批貨從北京到廣州的的最快,或最省錢的走法。?
把路線中各城市當作圖的頂點,各城市之間的花費時間,或金錢當作邊的權重,求兩點之間的最短路徑。?
2、在城市群中建一個倉儲基地,建在什么位置可以讓各個城市的送貨速度都比較快。?
同1,把各城市間的送貨速度當作邊的權重,求倉儲基地到各城市間的最短路徑。

算法

1、Dijkstra,單源最短路徑。?
2、Floyd,兩點最短路徑。?
參考鏈接:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html

社區發現

現實場景

用于社交網絡中的社區(或話題)發現,基本特點是,社區之間聯系稀疏,社區內部聯系緊密。如,給定新浪微博的用戶關系數據,找出其中的的社區,以及核心節點。

算法

標簽傳播、主要特征向量、多層模塊度、隨機游走、邊介數等幾個系列算法。

各算法的優劣,有一個評價體系,即計算其 Modularity Measure(模塊化度量值)。?
具體的算法介紹,及Modularity Measure值計算,可以參考這里:http://blog.csdn.net/itplus/article/details/9286905?
關于Fast Unfolding更詳細的介紹,可以參考這里:http://blog.csdn.net/google19890102/article/details/48660239

網絡評價

現實場景

現實中存在各種的網絡:社區聚集、好友關系、電力網、交通網等,網絡特點各不相同,計算機科學上,把這些現實網絡劃分為隨機網絡、小世界網絡、規則網絡、無標度網絡等多種抽象的網絡模型,用網絡模型去解釋現實網絡。并定義了一套可量化的標準特征來描述各種網絡模型。

概念

1、平均路徑長度。路徑長度,是指網絡中任意兩節點之間的最短路徑。平均路徑長度是指所有節點之間的平均最短距離。?
2、網絡直徑。網絡中所有節點之間的最大路徑長度。?
3、度分布。度,是指網絡結構中與某節點相連接的邊的數目為該節點的度。社交網絡中度數較多的節點通常是公眾人物。?
網絡中各個的節點度的分布情況就為度分布,如泊松分布、二項分布等。?
4、介數。節點的介數,指經過該節點的最短路徑占整個網絡所有最短路徑的比例。如,社交網絡中的某些關鍵人物。?
5、接近中心度。一個節點通過最短路徑到達其它節點的難易程度。對于網絡中的邊緣節點,其接近中心度會比較小。如,偏遠城市,社交網絡中的非主流人物。?
6、Clustering coefficient(聚集系數)。主要衡量一個節點的鄰節點之間的連接情況,鄰節點之間連接越多,聚集系數越大。?
7、網絡密度。網絡中節點固定情況下,邊數量越多,則密度越大,即節點之間聯系更緊密。?
8、互惠指數。即有向網絡中的無向程度。

K-Core

現實場景

社交網絡中,有一批KOL存在,他們的影響力遠超普通大眾。

算法

關于K-Core的詳細解釋,及其算法實現,可以參考這里:網絡節點度、H指數與核數之間的優美關系(http://blog.sciencenet.cn/blog-3075-950475.html)

二分圖匹配

現實場景

1、通過數代人的努力,你終于趕上了剩男剩女的大潮,假設你是一位光榮的新世紀媒人,在你的手上有N個剩男,M個剩女,每個人都可能對多名異性有好感,請為他們兩兩配對,最大程度減少剩男剩女個數。?
2、有一些員工要完成一些任務。各個員工完成不同任務所花費的時間都不同。每個員工只分配一項任務。每項任務只被分配給一個員工。怎樣分配員工與任務以使所花費的時間最少?

算法

1、匈牙利算法?
2、任務分配問題一般可以在多項式時間內轉化成最大流量問題(Maximum Flow Problem)

匈牙利算法參考文章:http://blog.csdn.net/dark_scope/article/details/8880547

二分圖匹配問題轉最大流問題的方法可參考這里:?
http://blog.csdn.net/caipeichao2/article/details/35306659

最小費用、最大流

現實場景

1、從城市A到城市B之間運輸一批貨物,中間路過多個城市,有多條路線可供選擇,兩兩城市之間的運輸費用不等,找出一條費用最小的路線。?
2、把一批快遞經由鐵路由城市A運到城市B,中間路過多個城市。在做任意兩個城市間的鐵路線上可運送的物資數量是有限的,我們要考慮使鐵路線承載量最大,不讓鐵路資源閑置,同時讓快遞運輸時經過更多的城市,以承攬更多快遞業務。如果把鐵路網上的車站看作是圖的頂點,兩個車站間的鐵路線看作是圖的邊,把任意兩城市間的鐵路線上的允許最大運送量稱為容量。這就是一個經典的求網絡最大流問題。

概念

1、邊權重的意義。不同場景下,每條邊的值有不同的意義,問題1中,邊的權重為費用,問題2中,邊的權重為剩余容量。?
2、增廣路徑。在圖中,可能存在多條從源點到目標點的可行路徑,每一條都是一條增廣路徑。最小費用、最大流問題就是找到多條增廣路徑中滿足最小費用、最大流條件的一條。

算法

1、最小費用問題可轉化為求最短路徑問題。?
2、Edmond-Karp算法。?
可參考文檔:http://www.cnblogs.com/zsboy/archive/2013/01/27/2878810.html?
3、Ford-Fulkerson算法。?
可參考文檔:http://www.cnblogs.com/kuangbin/archive/2011/07/26/2117636.html

最大連通子圖

現實場景

1、計算機網絡中的病毒通常會基于一種病毒存在多種變種病毒,變種病毒與原病毒之間大部分代碼相似。因此,把兩種病毒之間的函數調用關系用圖表示出來,分析其最大連通子圖是否相似,就可以判斷是否變種病毒。?
2、圖像分割中,尋找圖像的最大連通域。

概念

最大連通子圖。是指把圖劃分為N個子圖后,子圖內所有節點相連,子圖間沒有節點相連。這N個子圖就是原圖的最大連通子圖。

歐拉回路

現實場景

1、七橋問題。?
2、去北京動物園瀏覽,能否設計一條這樣的路線:既可以游遍所有景點,又不走重復路。

概念

1、歐拉回路。是指,通過圖(無向圖或有向圖)中所有邊一次且僅一次行遍圖中所有頂點的通路(回路)稱為歐拉通路(回路)。?
2、滿足特定條件的圖才能稱為歐拉圖。

算法

Fleury算法

哈密頓回路

現實場景

導游帶團北京一日游遍,需要設計一條路線,可以走遍所有景點,且只走一次。

概念

1、哈密頓回路。在一個圖中,由指定的起點前往指定的終點,途中經過所有其他節點且只經過一次。?
2、哈密頓回路并不一定存在。?
3、屬NP完全問題,難以在有效時間內找到解決方案。

最小生成樹

現實場景

1、在電路設計中,常常需要把一些電子元件的插腳用電線連接起來。如果每根電線連接兩個插腳,把所有n個插腳連接起來,只要用n-1根電線就可以了。在所有的連接方案中,我們通常對電線總長度最小的連接方案感興趣。?
2、要在n個城市之間鋪設光纜,主要目標是要使這 n 個城市的任意兩個之間都可以通信,找出一條使用最短的光纖連通這些城市的鋪設方法。

算法

1、Prim算法?
2、Kruskal算法

拓撲排序

現實場景

1、一個大工程,通常由多個任務組成,這些子工程之間有的有依賴關系,有的沒有,假設同時只能做一個任務,請排出一個順序來。?
2、一個計算機專業的學生必須完成一系列課程才能畢業。如學習《數據結構》課程就必須安排在學完它的兩門先修課程《離散數學》和《算法語言》之后。學習《高等數學》課程則可以隨時安排,因為它是基礎課程,沒有先修課。

概念

1、有向無環圖(DAG)。?
2、AOV表示法。圖的節點表示任務,有向邊表示先后順序,最終形成的是一個有向無環圖,才能進行拓撲排序。

算法

1、Kahn算法?
2、DFS

關鍵路徑

現實場景

一個工程如何優化任務的安排,才能最大程度縮短工期?

概念

1、在拓撲排序之后,才能進行關鍵路徑的優化。?
2、AOE表示法。用圖的節點表示任務,有向邊表示任務的先后順序,邊的權重表示任務所花時間。?
3、找到兩個關鍵點進行優化:完成整項工程至少需要多少時間?哪些活動是影響工程進度的關鍵?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387342.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387342.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

EF ++屬性會更新實體

var lastBaby await _babyRepository.FirstOrDefaultAsync(); lastBaby.sort; -- sort原本為1 -- 最終會生成一條語句更新sort字段 exec sp_executesql NSET NOCOUNT ON;UPDATE [Babies] SET [BirthOrder] p0, [LastModificationTime] p1WHERE [Id] p2;SELECT ROWCOUNT; ,N…

分類算法應用場景實例二十則

1 O2O優惠券使用預測 以優惠券盤活老用戶或吸引新客戶進店消費是O2O的一種重要營銷方式。然而隨機投放的優惠券對多數用戶造成無意義的干擾。對商家而言,濫發的優惠券可能降低品牌聲譽,同時難以估算營銷成本。個性化投放是提高優惠券核銷率的重要技術&am…

Shell03

查看字符數的方法: seq -s " " 100 #以空格為分隔符,輸出從1到100 seq 100 #以換行為分隔符 charsseq -s " " 100 echo $chars echo ${#chars} #統計字符數 echo $(expr length "$chars") #統計字符數 echo $cha…

luogu P3244 [HNOI2015]落憶楓音

傳送門 md這題和矩陣樹定理沒半毛錢關系qwq 首先先不考慮有環,一個\(DAG\)個外向樹個數為\(\prod_{i2}^{n}idg_i(\)就是\(indegree_i)\),因為外向樹每個點入度為一,對于一個點有入度個父親可選,然后乘法原理起來就是答案 現在可能加一條邊會有環,那么答案可以考慮總方案減不合法…

EM算法 案例量則

例子一:理論: 簡版:猜(E-step),反思(M-step),重復; 啰嗦版: 你知道一些東西(觀察的到的數據), 你不知道一些東西(觀察不到…

遠程拷貝代碼 指定端口

將本地testdir拷貝到遠程服務器tmp目錄下 scp -r -p 9022 testdir xiaoming192.168.0.2:/tmp/ 轉載于:https://www.cnblogs.com/sea-stream/p/10436199.html

C#編寫TensorFlow人工智能應用 TensorFlowSharp

TensorFlowSharp入門使用C#編寫TensorFlow人工智能應用學習。 TensorFlow簡單介紹 TensorFlow 是谷歌的第二代機器學習系統,按照谷歌所說,在某些基準測試中,TensorFlow的表現比第一代的DistBelief快了2倍。 TensorFlow 內建深度學習的擴展支持…

簡單的MVC與SQL Server Express LocalDB

M模式: 類,表示數據的應用程序和使用驗證邏輯以強制實施針對這些數據的業務規則。V視圖: 應用程序使用動態生成 HTML 響應的模板文件。C控制器: 處理傳入的瀏覽器請求的類中檢索模型數據,然后指定將響應返回到瀏覽器的…

馬爾可夫鏈 (Markov Chain)是什么鬼

作者:紅猴子鏈接:https://www.zhihu.com/question/26665048/answer/157852228來源:知乎著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。馬爾可夫鏈 (Markov Chain)是什么鬼 它是隨機…

malloc/free 和 new/delete

(本文參考于網上) 首先兩者都可用于申請動態內存和釋放內存。 對于非內部數據類型的對象而言,只用malloc/free無法滿足動態對象的要求。對象在創建的同時要自動執行構造函數,對象在消亡之前要自動執行析構函數。由于malloc/free是庫…

主題模型-LDA淺析

個性化推薦、社交網絡、廣告預測等各個領域的workshop上都提到LDA模型,感覺這個模型的應用挺廣泛的,會后抽時間了解了一下LDA,做一下總結: (一)LDA作用 傳統判斷兩個文檔相似性的方法是通過查看兩個文檔共…

dorado-SplitSpanel控件

1.這是一個界面布局控件 2.分為SideControl邊區域和MainControl主區域 3.常用屬性 3.1 collapsed:打開頁面時,邊區域是否顯示 3.2 position:邊區域占總的大小 轉載于:https://www.cnblogs.com/ergougougou/p/10438752.html

mysql-視圖、事物等

一、視圖 視圖是一個虛擬表(非真實存在),其本質是【根據SQL語句獲取動態的數據集,并為其命名】,用戶使用時只需使用【名稱】即可獲取結果集,可以將該結果集當做表來使用。 使用視圖我們可以把查詢過程中的臨…

CAFFE怎樣跑起來

0、參考文獻 [1]caffe官網《Training LeNet on MNIST with Caffe》; [2]薛開宇《讀書筆記4學習搭建自己的網絡MNIST在caffe上進行訓練與學習》([1]的翻譯版,同時還有作者的一些注解,很贊); 1、*.sh文件如何執行? ①方…

運行caffe自帶的兩個簡單例子

為了程序的簡潔,在caffe中是不帶練習數據的,因此需要自己去下載。但在caffe根目錄下的data文件夾里,作者已經為我們編寫好了下載數據的腳本文件,我們只需要聯網,運行這些腳本文件就行了。 注意:在caffe中運…

quartz.net 執行后臺任務

... https://www.cnblogs.com/zhangweizhong/category/771057.html https://www.cnblogs.com/lanxiaoke/category/973331.html 宿主在控制臺程序中 using System;using System.Collections.Specialized;using System.IO;using System.Threading.Tasks;using Quartz;using Quart…

運行caffe自帶的mnist實例詳細教

為了程序的簡潔,在caffe中是不帶練習數據的,因此需要自己去下載。但在caffe根目錄下的data文件夾里,作者已經為我們編寫好了下載數據的腳本文件,我們只需要聯網,運行這些腳本文件就行了。 Mnist介紹:mnist是…

6 軟件的安裝

6 軟件包管理 6.1 簡介 軟件包分類: 源碼包 源代碼(大多數是C語言) 安裝時慢,容易報錯 >腳本安裝包 對源碼包進行改裝,使安裝更簡單,不多。 rpm包 二進制包 Ubuntu系列的二進制包不是rpm&#xf…

STD函數的內部計算公式

各股票軟件的標準差函數STD是不同的,而布林線的上下軌是以STD為基礎計算出來的,所以使用布林線應小心。以2008/3/28的上證綜指為例,利用如下代碼:"收盤價3日STD:STD(CLOSE,3);",三日收盤價分別是&#xff1a…