999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

圖的steiner最小樹問題及其求解

2009-04-29 00:00:00楊凌云
電腦知識與技術 2009年25期

摘要:斯坦納樹問題是組合優化學科中的一個問題。屬于NP-難問題,即無法在多項式時間內得到最優解。本文主要討論了圖的steiner最小樹問題,并給出了近似算法,該算法是在破圈法的基礎上進行了改進,并且引用了agent的思想。最后對算法進行了分析。

關鍵詞:Steiner最小樹 NP-難題 破圈法

中圖分類號:TP312文獻標識碼:A文章編號:1009-3044(2009)25-7312-02

Graphical Steiner Minimum Tree Problem and Solusion

YANG Ling-yun

(College of Computer and Information Engineering, Henan University, Kaifeng 475001,China)

Abstract: Steiner tree problem is one of the subject of combinatorial optimization problem. It belongs to NP-hard problems that cann’t find the optimal solution in polynomial time. This article discusses the minimum steiner tree problem in graphs, and gives the approximate algorithm, which is improved on loop damage method, and quoted the agent's thinking. Finally, an analysis of the algorithm.

Key words: steiner minimum tree; NP-hard problem; loop damage method

現實生活中經常要求解決這樣的問題,即將若干給定點相連并使連線的總長最短。即最小生成樹問題(Minimum Spanning Tree—MST)。最小生成樹問題是運籌學、組合優化中的常見問題,即尋找一棵連接給定點并使樹的總長度最短的生成樹.若要求解n個點的最小生成樹,一般我們首先想到的是求連接這n個點的最小生成樹,擴展我們的思維,相象如果不拘泥于這n個點,我們再加入一些新點,是否會使我們的最小生成樹更優呢?事實證明,如果不拘泥于這n個點,而引入除這n個點之外的另外幾個點的話,則有可能使連接各區域的通信線路的總長更短。這是Steiner最小樹問題的來源。

1 問題描述

圖的Steiner最小樹(Graphical Steiner Minimum Tree,簡記GSMT)問題由Hakimi和Levin于1971年首次提出 。其定義為:給定無向圖G=(V,E),其中V為點集,E為邊集,邊的權值(大于0)代表費用函數,假如現在有點集P?哿V,點集S?哿V,現在要求在網絡中尋找一棵包含點集P中所有點的子樹T,使得到的樹T的費用最小。稱T為圖G關于P的steiner樹,不屬于P的點稱為steiner點。這里要注意的一點,生成的steiner樹的任steiner點的度都應該大于等于2。

在實際中有廣泛的應用,例如,布置天然氣管道時,當氣源位置和用戶的地理位置確定后,如何鋪設管道使得管網布局最優問題。網絡的有線通訊問題與通訊站點數量及其相互離密切相關,通訊費用與線路長度成正比,因此有關如何布線以使整個網絡達到連通要求且線路最短的問題具有重要意義。通過增加“虛設”站點構造出Steiner最小樹的方法能夠有效解決這個問題。超大規模集成電路設計,交通線路規劃,車輛調度與編組等都屬于steiner最小樹問題。

眾所周知,Steiner樹問題是NP-難的,除非P=NP,否則Steiner樹問題沒有多項式時間的算法。那么當輸入規模很大時,我們就不可能在多項式時間內找到它的精確最優解。因此,我們開始致力于找到一個好的近似算法,給出好的近似解。

最小生成樹是連接S點集中所有點的最小長度的樹,它沒有向給定的點集中插入任何額外的點,可以在O(㏒n)時間內構造完成,并且是SMT的一個很好的近似。圖的Steiner最小樹的Steiner比為1/2。

2 算法思想

尋求連通圖支撐樹的方法,任取一個圈,從圈中去掉一邊,對余下的圖重復這個步驟,直到不含圈時為止,即得到一個支撐樹,稱這種方法為破圈法 。

Agent是在一定環境下能靈活主動地完成某個任務的實體,它具有自主性、學習性、交互性 。 Agent的自主性是指能為將來目標預先行動,學習性是指能夠將經驗轉變為自己的知識,交互性是指不同Agent之間或者Agent與環境之間能夠進行信息交流。

令集合P為給定點集,S為待選點集(即steiner點,記為s-點),集合V=P∪S,頂點Vi與Vj間的距離記為d(vi,vj)。初始狀態為給定的原點集P及P內頂點間的連接關系(邊長,邊集),若存在邊e(vi,vj),則兩點間的距離d(vi,vj)即為此邊的長度,若兩點間不存在邊則給此邊一個高的懲罰值。若對S中一個點Vs,存在邊e(Vs, Vj),e(Vs, Vi),Vi, Vj∈P,且d(Vs, Vi)+d(Vs, Vj)

對s-點的選擇是從S集合中隨機選擇。

3 求解步驟

定義一個agent類,設置若干個agent對象,初始狀態V=P,計算P中任意兩個原點Pi與Pj之間的最短距離,記為Old_D(Pi,Pj)。最多添加的s-點總數為k。當前每個agent.hyp集合中可以包含的s-點總數的上界為add_number(0≤add_num≤m, 1≤m≤k),初始值為1。

Class agent {

int Number_of_steiner; //當前已經添加s-點的個數

item hyp;// 保存其設想添加的s-點集合

float sum_difference;

bool activity; //agent的狀態

};

Initialize agent:每個agent.hyp初始化為空集,s-點的個數為0,Sum_Difference為0。

Repeat {

Test(){

if add>k

add=1;

for i=1 to agentNumber {

add=add_number-agent[i].Number_of_steiner;// 即目前已添加的s-點總數與當前要求達到的最大的s-點總數之間的差距

V=V+hyp;

If (add>0) { //if 1

從集合S-{hyp}中任意選取add個s-點進行有關公式1的判斷;

將使得公式1為真的點集temp加入集合V;

重新計算集合V中任意兩個原點Pi與Pj之間的最短距離,記為New_D(Pi,Pj);

計算,記為sum_Difference。

If sum_Difference>0{

agent.activity=true;

去除temp中度為1的點;

hyp=hyp+temp;

修改Number_of_steiner的值;

}

}//end of if 1

} //end of Test

Diffuse(){

for every active agent A {//suppose A

select random agent B; //suppose B

if (agentB.activity = =true) {//if 2

if(agentA.number_of_steiner = =agentB. number_of_steiner) {//if 3

if (agentA.hyp = =agentB.hyp) {

agentB.hyp置為空集;

agentB.activity=1;

}

if(agentA.sum_difference

A 復制 B的hyp及Steiner點數;

if(agentA.sum_difference>agentB.sum_difference)

B 復制 A的hyp及Steiner點數;

}//end of if 3

}//end of if 2

} end of Diffuse

if add_number

add_number++;

else{

保存sum_difference最大的集合及狀態;

Break;}

}

4 算法分析

如一家煤氣公司要給多個城鎮提供氣源,如圖1所示,現假定要給V1,V2,V3提供氣源。其余的點為steiner點。為了尋求最優解,煤氣公司現派若干人員去考查鋪設管道的具體方案。最后采用較優的方案。

通過多次實驗,得到的樹長最優值為8,如圖2所示。樹長最差值為10,樹長平均值為8.924。

5 結束語

破圈法的時間復雜度為O(n3),假如設agent的個數為m,則本算法的時間復雜度為O(mn3)。本算法同時還涉及到設置多少個agent才合適的問題,設置的太多則影響算法的時間復雜度,相反則可能得不到預期的結果。agent的個數很難確定,所以算法還需改進。

參考文獻:

[1] Hakimi SL1Steiner problem in graphs and its imp lications1Networks,1971,1: 113-133.

[2] Kou L, Markowsky G,Berman L1 A fast algorithm for Steiner trees1 Acta Info, 1981,15:141-145.

[3] 《運籌學》教材編寫組.運籌學[M].3版.北京:清華大學出版社,2005:258.

[4] 蔡自興,徐光祐.人工智能及其應用[M].3版.北京:清華大學出版社,2007: 315.

主站蜘蛛池模板: 国产无码精品在线| 国产女人水多毛片18| 成人在线观看不卡| 亚洲性色永久网址| 成人精品区| 日本人妻一区二区三区不卡影院| 精品国产www| 午夜福利免费视频| 国产成人无码Av在线播放无广告| 91毛片网| 91成人在线免费观看| 欧美在线一二区| 国产黄色视频综合| 精品国产91爱| 国产视频只有无码精品| 99精品这里只有精品高清视频| 国产精品丝袜视频| 亚洲国产精品VA在线看黑人| 色悠久久综合| 国产综合欧美| 久久午夜影院| 欧美日韩中文国产va另类| 日韩在线2020专区| 被公侵犯人妻少妇一区二区三区| 国产精品成人AⅤ在线一二三四| 重口调教一区二区视频| 亚洲人成高清| 日韩精品欧美国产在线| 日韩精品久久无码中文字幕色欲| 日韩欧美色综合| 高清久久精品亚洲日韩Av| 免费观看男人免费桶女人视频| 日韩欧美国产另类| 亚洲人成在线精品| 欧美一区二区三区国产精品| 亚洲男人的天堂网| 免费jizz在线播放| 乱码国产乱码精品精在线播放| 在线无码私拍| 成人在线亚洲| 67194亚洲无码| 这里只有精品在线播放| 国产成人综合亚洲欧美在| 男人天堂亚洲天堂| 久久综合AV免费观看| 国产在线欧美| 久久人人97超碰人人澡爱香蕉| 毛片免费在线| 久久99国产综合精品1| 四虎国产在线观看| 午夜不卡视频| 亚洲一区网站| 欧美午夜理伦三级在线观看| 欧美特黄一级大黄录像| 亚洲国产欧美国产综合久久 | 91网站国产| 国产精品va| 国产欧美高清| 久久这里只有精品23| 91在线播放国产| 国产在线拍偷自揄观看视频网站| 亚洲欧洲综合| 嫩草影院在线观看精品视频| 91视频区| aⅴ免费在线观看| 亚洲性一区| 国产小视频在线高清播放| 亚洲三级影院| 色爽网免费视频| 五月婷婷精品| 国产无人区一区二区三区| 日本精品视频一区二区| 亚洲欧美成人在线视频| 99热最新网址| 在线免费无码视频| 国产麻豆精品在线观看| 国产午夜福利片在线观看| 婷婷亚洲视频| 亚洲性影院| 四虎精品国产永久在线观看| 国产菊爆视频在线观看| 中文字幕色站|