註冊 | 登入 | 全文檢索 | 排行榜 |
![]() |
» JWorld@TW
» Java 程式分享區
» Networking
![]() ![]() |
![]() ![]() ![]() ![]() |
本主題所含的標籤 |
作者 | Re:網路圍棋對奕程式 [Re:worookie] |
hhocean
![]() ![]() ![]() ![]() ![]() ![]() 發文: 153 積分: 4 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 想請問一下, 我以前也想寫過圍棋的程式, 但是卡在一個關鍵, 就是取子要怎麼判斷? 我知道以圍棋術語來講, 「氣」沒有了,就可以取子, 但是對程式來說,要怎麼去判斷呢? ![]() ![]() |
作者 | Re:[遊戲]網路圍棋對奕程式 [Re:worookie] |
sai
![]() ![]() ![]() ![]() ![]() ![]() 發文: 265 積分: 1 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 不曉得你打算要怎麼合作研究? ![]() ![]() 整合勞保、公保及勞工、公務員的退休制度,讓年資可以帶著走,這樣可以讓公部門和私部門的人才有機會交流,才不會讓公部門變成一灘死水! |
作者 | Re:[遊戲]網路圍棋對奕程式 [Re:worookie] |
sai
![]() ![]() ![]() ![]() ![]() ![]() 發文: 265 積分: 1 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 要兩台電腦是沒什麼問題,反正Java跨平台, 找起機器來方便多了, 不過,要等一段時間嘛~~~~ 那就等你確定後再說會比較好。 ![]() ![]() 整合勞保、公保及勞工、公務員的退休制度,讓年資可以帶著走,這樣可以讓公部門和私部門的人才有機會交流,才不會讓公部門變成一灘死水! |
作者 | Re:[遊戲]網路圍棋對奕程式 [Re:nekokiller] |
worookie
![]() Small Ship 版主 ![]() 發文: 2092 積分: 21 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() nekokiller wrote: 目前我還不是很懂 MPI... 正在設計我的圍棋程式的基本架構說, 想先請教個平行處理的問題: 假設有一個計算, 包含了 5 種變化 (為求簡化, 變化難度假設皆為相等). 我門的目的是要把這 5 種變化算完, 然後找出最佳的答案. 現在假設有 5 台同等級的電腦可供使用, 那要如何使用這 5 台電腦來獲得最佳效應呢? 目前我想到的有兩種執行模式: (1) 由 5 台電腦分別去算 5 種變化, 等通通算好後, 再來一起比較 5 種結果. (2) 由 5 台電腦合力去把 5 種變化一個接著一個的算完. 上述兩種方法各有優缺點, 例如: - 第 (1) 種的方法, 並無法充分發揮 Alpha-Beta 的功能 (Alpha-Beta 的介紹, 可參見這裡的討論), 也就是說由於各電腦分開運算, 合作不夠密切, 造成有很多不必要的計算. - 第 (2) 種的方法, 可充分發揮 Alpha-Beta 的功能, 但是合作可能過於密切, 造成網路傳輸資料的過熱 (overhead). 也就是說花太多時間在"合作"上面, 對於"計算"部份反而忽略了. 不知道諸位先進有無高見, 您覺得哪種模式較好呢? (如果覺得離題太遠的話, 我再把此討論移到 J2SE 版去討論) ![]() ![]() |
作者 | Re:[遊戲]網路圍棋對奕程式 [Re:worookie] |
nekokiller
![]() ![]() ![]() ![]() ![]() ![]() 發文: 13 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() worookie wrote: 小弟的看法,還要了解那5個變化本身,每一個變化的計算中,有沒有辦法平行化。 因為假設一個計算過程中,又分好幾道步驟,而每一道步驟之間有強烈的先後順序關係,就是說第一步一定要先算完,才能算第二步的話,這種計算是無法平行化的,就是只能交由一顆CPU處理。反之,如果第一步還沒算完,第二步、第三步其實可以獨立先計算的話,那就可以平行化,同時處理,就可以交由多顆獨立的CPU處理。 如果那5種變化,每一種都不適合平行化,那麼應該要先考慮 (1) 的作法。如果那5種變化,都可以平行化,那麼 (1) 的作法所花費的時間,跟(2) 的作法所花費的"計算"時間,應該是一樣的。(我是以我實作上的經驗來假設) 而 作法(2) 的確會有網路傳輸資料的過熱的問題,在總花費時間的比較上,作法(2) 比 作法(1) 多出來的時間量,恰好就是網路傳輸的時間。 (而實作上,網路傳輸過熱,造成的影響很大,一不小心就能導致5台電腦的 CPU 都在閒置,網路卡都在拚命的傳資料,傳輸時間就遠大於計算時間,我稱之為網路崩潰) 誠如您所言,作法(1)也有缺點,合作不夠密切的必然問題。但這是可以調整的,就是在計算過程中,在程式中有需要的地方,我們可以再加上一些程式碼,讓那5台電腦在需要的時候,彼此交換一下資料,交流一下,讓重複計算的部分降到最低。(也就是程式碼平行化的課題,平行程式設計的課題) 而作法(2)的網路傳輸過熱問題,恐怕除了砸錢,買最好的網路通訊設備之外,只要到了網路傳輸的上限,可能就會束手無策了。 不過我想,兩種作法可以實驗比較,或許我有未考慮之處。 ![]() ![]() |
作者 | Re:[遊戲]網路圍棋對奕程式 [Re:nekokiller] |
worookie
![]() Small Ship 版主 ![]() 發文: 2092 積分: 21 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() nekokiller wrote: 感謝您的看法... 因為討論內容和原來標題有點遠了, 我會另外在 J2SE 版開個新的討論串. ![]() ![]() |
|
» JWorld@TW » Java 程式分享區 » Networking |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() |