freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于netremoting技術并行計算程序的設計與實現(xiàn)畢業(yè)設計(文件)

2025-07-10 01:35 上一頁面

下一頁面
 

【正文】 獲取的那個代理對象,用它來訂閱服務器的事件是訂閱不到的。BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider()。 } //無限生命周期 public override object InitializeLifetimeService() { return null。 小結 Remoting技術框架構建中各個重點模塊的描述。以42個地點為例,如果要列舉所有路徑后再確定最佳行程,那么總路徑數(shù)量之大,幾乎難以計算出來。它的解是多維的、多局部極值的、趨于無窮大的復雜解的空間,搜索空間是n個點的所有排列的集合,大小為(n1)!。TSP的歷史很久,最早的描述是1759年歐拉研究的騎士周游問題,即對于國際象棋棋盤中的64個方格,走訪64個方格一次且僅一次,并且最終返回到起始點。通過枚舉(n1)!條周游路線,從中找出一條具有最小成本的周游路線的算法,其計算時間顯然為O(n!)。在求解旅行商問題時,程序中采用FIFO檢索(First In First Out),它的活結點表采用一張先進先出表(即隊列)?;罱Y點一旦成為擴展結點,就一次性產(chǎn)生其所有兒子結點。(1)隊列式(FIFO)分支限界法按照隊列先進先出(FIFO)原則選取下一個節(jié)點為擴展節(jié)點。對這r1個孩子結點分別估算可能的目標函數(shù)bound(x1),其含義:以該結點為根的子樹所有可能的取值不大于bound(x1),即:bound(x1)≥bound(x1,x2)≥…≥ bound(x1,…,xn)若某孩子結點的目標函數(shù)值超出目標函數(shù)的下界,則將該孩子結點丟棄;否則,將該孩子結點保存在待處理結點表PT中。double minDistance = 999999。 if (my_dt == null) {minDistance = 1。//起始根節(jié)點 = [0][0].ToString()。//結尾節(jié)點即為起始節(jié)點 QueueTreeNode queue = new QueueTreeNode()。//定義新的根節(jié)點 root = ()。 int result = 0。 rootParent = root。 } if (result == 0) { foreach (TreeNode xx in ) {//兄弟節(jié)點中是否存在 if ( == [j][0].ToString()) { result = 1。x cityCount 。 = (int)[x][1]。 = (int)[j][1]。 node[i].Text = (() + (cityA)).ToString()。 } //將孩子節(jié)點加入隊列 foreach (TreeNode ss in ) { if ( == 0) {//第一子節(jié)點的入隊判斷 for (int m = 0 。 } } } else {(ss)。x++) { if ( == [x][0].ToString()) { break。 (node)。 } else if (() minDistance) { minDistance = ()。此時,連接成功時,服務器會返回連接成功的消息和必要的數(shù)據(jù),如客戶端編號,如圖51所示:圖51 客戶端成功連接到服務器端 連接成功后,服務器會返回連接成功的提示,在“來自服務器的消息”框中顯示出來。選擇任意一個客戶端作為發(fā)起并行計算的客戶端,那么其它客戶端就作為參與并行計算的機器。這樣做的目的,是為了防止線程阻塞、數(shù)據(jù)發(fā)送錯亂的現(xiàn)象出現(xiàn),這種現(xiàn)象出現(xiàn)的原因是因為,當數(shù)據(jù)在網(wǎng)絡中傳輸?shù)乃俣冗^慢,而服務器運行發(fā)送數(shù)據(jù)的速度過快,這種情況下,就可能存在客戶端沒有接收到第一個數(shù)據(jù),而接收到第二個數(shù)據(jù)的情況。客戶端計算得到結果之后,將結果返回給服務器,服務器統(tǒng)計所有參與并行計算的客戶端返回的結果之后,求出最優(yōu)解,并將結果返回給請求并行計算的客戶端。每次系統(tǒng)計算時,手動用秒表計時,秒表計時的結果也與客戶端顯示的耗時基本相同,這樣也不在累贅的說明計時操作過程了。作為對比,首先需要給出不同數(shù)量城市的情況下,串行計算耗時的記錄,具體數(shù)據(jù),見表51所示:表51 串行計算耗時(1個客戶端)城市數(shù)量5678910單個客戶端最多節(jié)點數(shù)156789第一次/ms71120208860779584970第二次/ms74182214856777185219第三次/ms68115215848774584898第四次/ms80106233877779885021第五次/ms6599245840780385107平均/ms72124223856778285043表51中記錄了串行計算時,不同城市數(shù)量對耗時的影響情況,由于城市數(shù)量少時,耗時比較短,時間數(shù)值比較小,所以進行了5次測算,求平均值,以減小誤差。表52 并行計算耗時(4個客戶端)城市數(shù)量5678910單個客戶端最多節(jié)點數(shù)122223第一次/ms201214271459233229365第二次/ms193222278469235029278第三次/ms198262284437234630102平均/ms197233278455234329582表52中記錄了4臺客戶端并行計算,分別解決不同旅行商城市數(shù)量情況下的最優(yōu)解,每種城市數(shù)量各計時3次,求平均值,以盡量減小結果誤差。表53中記錄了不同的參與并行計算的客戶端的數(shù)量,每個數(shù)量的客戶端都進行了3次實驗以及結果的記錄,并根據(jù)3次記錄求平均值,以保證結果的準確度。其中,由于城市數(shù)量只有6個,因此每次運行計算耗時都不長,記錄的結果可能會產(chǎn)生較大的誤差。 結論通過從上面4個方面進行測試,并對測試結果的記錄分析,可以得到一下幾點結論:(1)城市數(shù)量較少時,串行計算比并行計算更有優(yōu)勢,因為數(shù)據(jù)的傳遞也需要一定時間;(2)城市數(shù)量較多時,并行計算比串行計算更有優(yōu)勢;(3)對于TSP問題,并行計算的耗時隨城市數(shù)量的增長而呈指數(shù)增長趨勢;(4)在城市數(shù)量較多且城市數(shù)量不變的情況下,增加參與并行計算的客戶端的數(shù)量可以減少并行計算耗時,但耗時減少的效率會隨客戶端的增加而逐漸降低且趨向于0。第6章 結語第6章 結語 總結隨著人類科學技術的日益進步,人們需要解決很多大型的、復雜的問題,這些問題的解決通常都需要非常巨大的計算量。首先介紹旅行商問題的概念,再對旅行商問題做了一定的分析,利用分支界限算法思想,并結合并行計算,設計程序來解決這一問題。結果分析:(1)從表中可以看出,城市數(shù)量比較小時,客戶端數(shù)量的增加反而會導致計算時間的增長,這和3中計算的結果相反;(2)單個節(jié)點計算耗時隨客戶端數(shù)量的增加而增加,這和3中得出的結果是一致的。表53 城市數(shù)量較多(10個)不同數(shù)量客戶端并行計算耗時客戶端數(shù)量123456789單個客戶端最多節(jié)點數(shù)953322221第一次/ms870914986632045313462695425814279373035425107第二次/ms865545163733121323812760026115283993030025855第三次/ms853955311932580317102880726393289473149825894平均/ms8634751541325823181227787261072842830717256191個節(jié)點耗時/ms95941030810860106041389413054142141535925619結果分析:(1)客戶端數(shù)量為1個時,即整個旅行商問題的計算都是由1號客戶端完成的,也就是串行單獨計算,1個客戶端要計算9個節(jié)點,耗時是最多的;(2)總體來看,隨著客戶端數(shù)量的增長,計算耗時依次遞減,但是時間減少的幅度越來越少;(3)在并行計算的過程中,由于并非所有客戶端都計算同樣多的節(jié)點,有的多,有的少,所以單個客戶端計算的最多節(jié)點的數(shù)量相同時,整體的計算耗時變化不大,反而會有少幅的增長;(4)單個客戶端計算的最多節(jié)點數(shù)減少時,計算耗時是隨之減少的;(5)隨著參與并行計算的客戶端的數(shù)量的增加,計算1個節(jié)點的耗時越來越長。結論:(1)并行計算耗時隨城市數(shù)量的增長而增長;(2)當城市數(shù)量到達一定數(shù)目以后,并行計算耗時隨城市數(shù)量的增長呈現(xiàn)指數(shù)增長的趨勢;(3)當城市數(shù)量較小時,串行計算計算效率更好;反之,當城市數(shù)量較大時,并行計算效率更高。結論:(1)串行計算耗時隨城市數(shù)量的增加而呈指數(shù)增長的趨勢;(2)串行計算不會對計算效率產(chǎn)生任何影響。 測試、記錄、分析與結論 測試、記錄與分析由于城市數(shù)量的不同,參與并行計算的客戶端的數(shù)量的不同,以及網(wǎng)絡傳輸速度等其他因素的影響,計算的時間長度是不同的。如圖57:圖57 客戶端完成并行計算并得到最終結果 程序的正確性上面是6個城市的運行情況,經(jīng)過自己手動計算,每個參與并行計算的客戶端的本地計算結果是正確的,返回給服務器,服務器統(tǒng)計之后返回給客戶端的最優(yōu)解也是正確的;同時,還測試了4個城市,5個城市的情況,系統(tǒng)計算的結果和手動計算的結果是吻合的。但其實這樣做還是有缺點的,由于需要等待消息成功發(fā)送,客戶端成功接收到消息并成功接收到客戶端返回的“成功接收數(shù)據(jù)”的信號,因此發(fā)送數(shù)據(jù)消耗的時間就會因此變長。見圖53,54和55:圖53 客戶端生成數(shù)據(jù)圖54 服務器端收到客戶端發(fā)送的數(shù)據(jù)圖55 其他客戶端接收到服務器端發(fā)送的數(shù)據(jù)點擊并行計算,客戶端開始計時,同時客戶端向服務器端發(fā)出“開始計算”的信號,服務器端收到信號后,向各個客戶端分配旅行商問題的第一級子節(jié)點,節(jié)點的分配盡量滿足“平均分配”的原則,即第一級子節(jié)點最多的客戶端和第一級子節(jié)點最少的客戶端之間子節(jié)點數(shù)量差在1以內。服務器端也同時記錄下連接到服務器的客戶端的IP地址,這個IP地址就是由客戶端通過遠程對象發(fā)送到服務器上的。 } }//if }//while }//if return minNode。 minNode = node。 = 。 for (x = 0 。m++) { if ( == [m].ToString()) { (ss)。 i++。 node[i] = new TreeNode(())。 CityInfo cityB = new CityInfo()。 } } CityInfo cityA = new CityInfo()。 } } } //都不存在時,初始化賦值 if (result == 0) { int x。//存在 break。j cityCount 。//重新設置當前節(jié)點的孩子節(jié)點數(shù)目childAmount if (childAmount != 0) {//非結尾節(jié)點 TreeNode[] node = new TreeNode[childAmount]
點擊復制文檔內容
數(shù)學相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1