A. 什麼是分布式計算
什麼是分布式計算
分布式計算(Distributed Computation)是一種計算方法,和集中式計算是相對的。隨著計算技術的發展,有些應用需要非常巨大的計算能力才能完成,如果採用集中式計算,需要耗費相當長的時間來完成。分布式計算將該應用分解成許多小的部分,分配給多台計算機進行處理。這樣可以節約整體計算時間,大大提高計算效率。
B. 什麼是啟發式搜索並以八數碼難題為例,說明其原理
啟發式搜索就是在狀態空間中的搜索對每一個搜索的位置進行評估,得到最好的位置,再從這個位置進行搜索直到目標。這樣可以省略大量無謂的搜索路徑,提高了效率。在啟發式搜索中,對位置的估價是十分重要的。採用了不同的估價可以有不同的效果。我們先看看估價是如何表示的。
啟發中的估價是用估價函數表示的,如:
最佳優先搜索的最廣為人知的形式稱為A*搜索(發音為「A星搜索」).它把到達節點的耗散g(n)
和從該節點到目標節點的消耗h(n)結合起來對節點進行評價:f(n)=g(n)+h(n)
因為以g(n)給出了從起始節點到節點n的路徑耗散,而h(n)是從節點n到目標節點的最低耗散路徑的估計耗散值,因此f(n)=經過節點n的最低耗散解的估計耗散.這樣,如果我們想要找到最低耗散解,首先嘗試找到g(n)+h(n)值最小的節點是合理的。可以發現這個策略不只是合理的:倘若啟發函數h(n)滿足一定的條件,A*搜索既是完備的也是最優的。
如果把A*搜索用於Tree-Search,它的最優性是能夠直接分折的。在這種情況下,如果h(n)是一個可採納啟發式--也就是說,倘若h(n)從不會過高估計到達目標的耗散--A*演算法是最優的。可採納啟發式天生是最優的,因為他們認為求解問題的耗散是低於實際耗散的。因為g(n)是到達節點n的確切耗散,我們得到一個直接的結論:f(n)永遠不會高估經過節點n的解的實際耗散.
啟發演算法有:
蟻群演算法,遺傳演算法、模擬退火演算法等
蟻群演算法是一種來自大自然的隨機搜索尋優方法,是生物界的群體啟發式行為,現己陸續應用到組合優化、人工智慧、通訊等多個領域。蟻群演算法的正反饋性和協同性使其可用於分布式系統,隱含的並行性更使之具有極強的發展潛力。從數值模擬結果來看,它比目前風行一時的遺傳演算法、模擬退火演算法等有更好的適應性。
C. 分布式演算法的介紹
分布式演算法(Distributed Algorithm)和集中式演算法(Centralized Algorithm)在設計的方法和技巧上,有著非常大的不同,原因在於分布式系統和集中式系統在系統模型和結構上有著本質的區別,集中式演算法所具備的一些基本特徵,在分布式演算法中,已經不復存在。
D. 分布式和雲計算有什麼區別
「雲是一個更上層、更抽象、更玄乎的概念。
而分布式是一個很具體的概念。
若沒有分布式,雲就無從談起。但分布式計算卻不一定都是雲。」
分布式是通過應用設計,將任務進行分解。
雲計算是通過類似網格的東西,由系統自動進行資源組合。
什麼是分布式計算?所謂分布式計算是一門計算機科學,它研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然後把這些部分分配給許多計算機進行處理,最後把這些計算結果綜合起來得到最終的結果。 最近的分布式計算項目已經被用於使用世界各地成千上萬位志願者的計算機的閑置計算能力,通過網際網路,您可以分析來自外太空的電訊號,尋找隱蔽的黑洞,並探索可能存在的外星智慧生命;您可以尋找超過1000萬位數字的梅森質數;您也可以尋找並發現對抗艾滋病病毒的更為有效的葯物。這些項目都很龐大,需要驚人的計算量,僅僅由單個的電腦或是個人在一個能讓人接受的時間內計算完成是決不可能的。
分布式計算是利用互聯網上的計算機的 CPU 的閑置處理能力來解決大型計算問題的一種計算科學。下面,我們看看它是怎麼工作的:
首先, 要發現一個需要非常巨大的計算能力才能解決的問題。這類問題一般是跨學科的、極富挑戰性的、人類急待解決的科研課題。其中較為著名的是:
1.解決較為復雜的數學問題,例如:GIMPS(尋找最大的梅森素數)。
2.研究尋找最為安全的密碼系統,例如:RC-72(密碼破解)。
3.生物病理研究,例如:Folding@home(研究蛋白質折疊,誤解,聚合及由此引起的相關疾病)。
4.各種各樣疾病的葯物研究,例如:United Devices(尋找對抗癌症的有效的葯物)。
5.信號處理,例如:SETI@Home(在家尋找地外文明)。
從這些實際的例子可以看出,這些項目都很龐大,需要驚人的計算量,僅僅由單個的電腦或是個人在一個能讓人接受的時間內計算完成是決不可能的。在以前,這些問題都應該由超級計算機來解決。但是, 超級計算機的造價和維護非常的昂貴,這不是一個普通的科研組織所能承受的。隨著科學的發展,一種廉價的、高效的、維護方便的計算方法應運而生——分布式計算!
隨著計算機的普及,個人電腦開始進入千家萬戶。與之伴隨產生的是電腦的利用問題。越來越多的電腦處於閑置狀態,即使在開機狀態下CPU的潛力也遠遠不能被完全利用。我們可以想像,一台家用的計算機將大多數的時間花費在「等待」上面。即便是使用者實際使用他們的計算機時,處理器依然是寂靜的消費,依然是不計其數的等待(等待輸入,但實際上並沒有做什麼)。互聯網的出現, 使得連接調用所有這些擁有限制計算資源的計算機系統成為了現實。
那麼,一些本身非常復雜的但是卻很適合於劃分為大量的更小的計算片斷的問題被提出來,然後由某個研究機構通過大量艱辛的工作開發出計算用服務端和客戶端。服務端負責將計算問題分成許多小的計算部分,然後把這些部分分配給許多聯網參與計算的計算機進行並行處理,最後將這些計算結果綜合起來得到最終的結果。
當然,這看起來也似乎很原始、很困難,但是隨著參與者和參與計算的計算機的數量的不斷增加, 計算計劃變得非常迅速,而且被實踐證明是的確可行的。目前一些較大的分布式計算項目的處理能力已經可以達到甚而超過目前世界上速度最快的巨型計算機。
您也可以選擇參加某些項目以捐贈的 Cpu 內核處理時間,您將發現您所提供的 CPU 內核處理時間將出現在項目的貢獻統計中。您可以和其他的參與者競爭貢獻時間的排名,您也可以加入一個已經存在的計算團體或者自己組建一個計算小組。這種方法很利於調動參與者的熱情。
隨著民間的組隊逐漸增多, 許多大型組織(例如公司、學校和各種各樣的網站)也開始了組建自己的戰隊。同時,也形成了大量的以分布式計算技術和項目討論為主題的社區,這些社區多數是翻譯製作分布式計算項目的使用教程及發布相關技術性文章,並提供必要的技術支持。
那麼誰可能加入到這些項目中來呢? 當然是任何人都可以! 如果您已經加入了某個項目,而且曾經考慮加入計算小組, 您將在中國分布式計算總站及論壇里找到您的家。任何人都能加入任何由我站的組建的分布式計算小組。希望您在中國分布式總站及論壇里發現樂趣。
參與分布式計算——一種能充分發揮您的個人電腦的利用價值的最有意義的選擇——只需要下載有關程序,然後這個程序會以最低的優先度在計算機上運行,這對平時正常使用計算機幾乎沒有影響。如果你想利用計算機的空餘時間做點有益的事情,還猶豫什麼?馬上行動起來吧,你的微不足道的付出或許就能使你在人類科學的發展史上留下不小的一筆呢!
專業定義 (中國科學技術信息研究所對分布式計算的定義)
分布式計算是近年提出的一種新的計算方式。所謂分布式計算就是在兩個或多個軟體互相共享信息,這些軟體既可以在同一台計算機上運行,也可以在通過網路連接起來的多台計算機上運行。分布式計算比起其它演算法具有以下幾個優點:
1、稀有資源可以共享,
2、通過分布式計算可以在多台計算機上平衡計算負載,
3、可以把程序放在最適合運行它的計算機上,
其中,共享稀有資源和平衡負載是計算機分布式計算的核心思想之一。
實際上,網格計算就是分布式計算的一種。如果我們說某項工作是分布式的,那麼,參與這項工作的一定不只是一台計算機,而是一個計算機網路,顯然這種「螞蟻搬山」的方式將具有很強的數據處理能力。網格計算的實質就是組合與共享資源並確保系統安全。
狹義雲計算是指IT基礎設施的交付和使用模式,指通過網路以按需、易擴展的方式獲得所需的資源(硬體、平台、軟體)。 提供資源的網路被稱為「雲」。「雲」中的資源在使用者看來是可以無限擴展的,並且可以隨時獲取,按需使用,隨時擴展,按使用付費。這種特性經常被稱為像水電一樣使用IT基礎設施。
2、廣義雲計算
廣義雲計算是指服務的交付和使用模式,指通過網路以按需、易擴展的方式獲得所需的服務。這種服務可以是IT和軟體、互聯網相關的,也可以是任意其他的服務。
解釋:
這種資源池稱為「雲」。「雲」是一些可以自我維護和管理的虛擬計算資源,通常為一些大型伺服器集群,包括計算伺服器、存儲伺服器、寬頻資源等等。雲計算將所有的計算資源集中起來,並由軟體實現自動管理,無需人為參與。這使得應用提供者無需為繁瑣的細節而煩惱,能夠更加專注於自己的業務,有利於創新和降低成本。
有人打了個比方:這就好比是從古老的單台發電機模式轉向了電廠集中供電的模式。它意味著計算能力也可以作為一種商品進行流通,就像煤氣、水電一樣,取用方便,費用低廉。最大的不同在於,它是通過互聯網進行傳輸的。
雲計算是並行計算(Parallel Computing)、分布式計算(Distributed Computing)和網格計算(Grid Computing)的發展,或者說是這些計算機科學概念的商業實現。雲計算是虛擬化(Virtualization)、效用計算(Utility Computing)、IaaS(基礎設施即服務)、PaaS(平台即服務)、SaaS(軟體即服務)等概念混合演進並躍升的結果。
總的來說,雲計算可以算作是網格計算的一個商業演化版。早在2002年,我國劉鵬就針對傳統網格計算思路存在不實用問題,提出計算池的概念:「把分散在各地的高性能計算機用高速網路連接起來,用專門設計的中間件軟體有機地粘合在一起,以Web界面接受各地科學工作者提出的計算請求,並將之分配到合適的結點上運行。計算池能大大提高資源的服務質量和利用率,同時避免跨結點劃分應用程序所帶來的低效性和復雜性,能夠在目前條件下達到實用化要求。」如果將文中的「高性能計算機」換成「伺服器集群」,將「科學工作者」換成「商業用戶」,就與當前的雲計算非常接近了。
雲計算具有以下特點:
(1) 超大規模。「雲」具有相當的規模,Google雲計算已經擁有100多萬台伺服器, Amazon、IBM、微軟、Yahoo等的「雲」均擁有幾十萬台伺服器。企業私有雲一般擁有數百上千台伺服器。「雲」能賦予用戶前所未有的計算能力。
(2) 虛擬化。雲計算支持用戶在任意位置、使用各種終端獲取應用服務。所請求的資源來自「雲」,而不是固定的有形的實體。應用在「雲」中某處運行,但實際上用戶無需了解、也不用擔心應用運行的具體位置。只需要一台筆記本或者一個手機,就可以通過網路服務來實現我們需要的一切,甚至包括超級計算這樣的任務。
(3) 高可靠性。「雲」使用了數據多副本容錯、計算節點同構可互換等措施來保障服務的高可靠性,使用雲計算比使用本地計算機可靠。
(4) 通用性。雲計算不針對特定的應用,在「雲」的支撐下可以構造出千變萬化的應用,同一個「雲」可以同時支撐不同的應用運行。
(5) 高可擴展性。「雲」的規模可以動態伸縮,滿足應用和用戶規模增長的需要。
(6) 按需服務。「雲」是一個龐大的資源池,你按需購買;雲可以象自來水,電,煤氣那樣計費。
(7) 極其廉價。由於「雲」的特殊容錯措施可以採用極其廉價的節點來構成雲,「雲」的自動化集中式管理使大量企業無需負擔日益高昂的數據中心管理成本,「雲」的通用性使資源的利用率較之傳統系統大幅提升,因此用戶可以充分享受「雲」的低成本優勢,經常只要花費幾百美元、幾天時間就能完成以前需要數萬美元、數月時間才能完成的任務。
雲計算可以徹底改變人們未來的生活,但同時也用重視環境問題,這樣才能真正為人類進步做貢獻,而不是簡單的技術提升。
E. 智能計算/計算智能、仿生演算法、啟發式演算法的區別與關系
我一個個講好了,
1)啟發式演算法:一個基於直觀或經驗構造的演算法,在可接受的花費(指計算時間和空間)下給出待解決組合優化問題每一個實例的一個可行解,該可行解與最優解的偏離程度不一定事先可以預計。意思就是說,啟發式演算法是根據經驗或者某些規則來解決問題,它求得的問題的解不一定是最優解,很有可能是近似解。這個解與最優解近似到什麼程度,不能確定。相對於啟發式演算法,最優化演算法或者精確演算法(比如說分支定界法、動態規劃法等則能求得最優解)。元啟發式演算法是啟發式演算法中比較通用的一種高級一點的演算法,主要有遺傳演算法、禁忌搜索演算法、模擬退火演算法、蟻群演算法、粒子群演算法、變鄰域搜索演算法、人工神經網路、人工免疫演算法、差分進化演算法等。這些演算法可以在合理的計算資源條件下給出較高質量的解。
2)仿生演算法:是一類模擬自然生物進化或者群體社會行為的隨機搜索方法的統稱。由於這些演算法求解時不依賴於梯度信息,故其應用范圍較廣,特別適用於傳統方法難以解決的大規模復雜優化問題。主要有:遺傳演算法、人工神經網路、蟻群演算法、蛙跳演算法、粒子群優化演算法等。這些演算法均是模仿生物進化、神經網路系統、螞蟻尋路、鳥群覓食等生物行為。故叫仿生演算法。
3)智能計算:也成為計算智能,包括遺傳演算法、模擬退火演算法、禁忌搜索演算法、進化演算法、蟻群演算法、人工魚群演算法,粒子群演算法、混合智能演算法、免疫演算法、神經網路、機器學習、生物計算、DNA計算、量子計算、模糊邏輯、模式識別、知識發現、數據挖掘等。智能計算是以數據為基礎,通過訓練建立聯系,然後進行問題求解。
所以說,你接觸的很多演算法,既是仿生演算法,又是啟發式演算法,又是智能演算法,這都對。分類方法不同而已。
這次樓主不要再老花了哈!
F. 分布式計算的基本信息
廣義定義
所謂分布式計算是一門計算機科學,它研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然後把這些部分分配給許多計算機進行處理,最後把這些計算結果綜合起來得到最終的結果。 最近的分布式計算項目已經被用於使用世界各地成千上萬位志願者的計算機的閑置計算能力,通過網際網路,您可以分析來自外太空的電訊號,尋找隱蔽的黑洞,並探索可能存在的外星智慧生命;您可以尋找超過1000萬位數字的梅森質數;您也可以尋找並發現對抗艾滋病病毒的更為有效的葯物。這些項目都很龐大,需要驚人的計算量,僅僅由單個的電腦或是個人在一個能讓人接受的時間內計算完成是決不可能的。
中國科學院的定義
分布式計算是一種新的計算方式。所謂分布式計算就是在兩個或多個軟體互相共享信息,這些軟體既可以在同一台計算機上運行,也可以在通過網路連接起來的多台計算機上運行。分布式計算比起其它演算法具有以下幾個優點:
1、稀有資源可以共享。
2、通過分布式計算可以在多台計算機上平衡計算負載。
3、可以把程序放在最適合運行它的計算機上。
其中,共享稀有資源和平衡負載是計算機分布式計算的核心思想之一。 分布式計算是利用互聯網上的計算機的中央處理器的閑置處理能力來解決大型計算問題的一種計算科學。下面,我們看看它是怎麼工作的:
首先, 要發現一個需要非常巨大的計算能力才能解決的問題。這類問題一般是跨學科的、極富挑戰性的、人類急待解決的科研課題。其中較為著名的是: 解決較為復雜的數學問題,例如:GIMPS(尋找最大的梅森素數)。 研究尋找最為安全的密碼系統,例如:RC-72(密碼破解)。 生物病理研究,例如:Folding@home(研究蛋白質折疊,誤解,聚合及由此引起的相關疾病)。 各種各樣疾病的葯物研究,例如:United Devices(尋找對抗癌症的有效的葯物)。 信號處理,例如:SETI@Home(在家尋找地外文明)。 在以前,這些問題都應該由超級計算機來解決。但是, 超級計算機的造價和維護非常的昂貴,這不是一個普通的科研組織所能承受的。隨著科學的發展,一種廉價的、高效的、維護方便的計算方法應運而生——分布式計算!
隨著計算機的普及,個人電腦開始進入千家萬戶。與之伴隨產生的是電腦的利用問題。越來越多的電腦處於閑置狀態,即使在開機狀態下中央處理器的潛力也遠遠不能被完全利用。我們可以想像,一台家用的計算機將大多數的時間花費在「等待」上面。即便是使用者實際使用他們的計算機時,處理器依然是寂靜的消費,依然是不計其數的等待(等待輸入,但實際上並沒有做什麼)。互聯網的出現, 使得連接調用所有這些擁有限制計算資源的計算機系統成為了現實。
那麼,一些本身非常復雜的但是卻很適合於劃分為大量的更小的計算片斷的問題被提出來,然後由某個研究機構通過大量艱辛的工作開發出計算用服務端和客戶端。服務端負責將計算問題分成許多小的計算部分,然後把這些部分分配給許多聯網參與計算的計算機進行並行處理,最後將這些計算結果綜合起來得到最終的結果。
當然,這看起來也似乎很原始、很困難,但是隨著參與者和參與計算的計算機的數量的不斷增加, 計算計劃變得非常迅速,而且被實踐證明是的確可行的。目前一些較大的分布式計算項目的處理能力已經可以達到甚而超過目前世界上速度最快的巨型計算機。
您也可以選擇參加某些項目以捐贈Cpu的內核處理時間,您將發現您所提供的 中央處理器 內核處理時間將出現在項目的貢獻統計中。您可以和其他的參與者競爭貢獻時間的排名,您也可以加入一個已經存在的計算團體或者自己組建一個計算小組。這種方法很利於調動參與者的熱情。
隨著民間的組隊逐漸增多, 許多大型組織(例如公司、學校和各種各樣的網站)也開始了組建自己的戰隊。同時,也形成了大量的以分布式計算技術和項目討論為主題的社區,這些社區多數是翻譯製作分布式計算項目的使用教程及發布相關技術性文章,並提供必要的技術支持。
那麼誰可能加入到這些項目中來呢? 當然是任何人都可以! 如果您已經加入了某個項目,而且曾經考慮加入計算小組, 您將在中國分布式計算總站及論壇里找到您的家。任何人都能加入任何由我站的組建的分布式計算小組。希望您在中國分布式總站及論壇里發現樂趣。
參與分布式計算——一種能充分發揮您的個人電腦的利用價值的最有意義的選擇——只需要下載有關程序,然後這個程序會以最低的優先度在計算機上運行,這對平時正常使用計算機幾乎沒有影響。如果你想利用計算機的空餘時間做點有益的事情,還猶豫什麼?馬上行動起來吧,你的微不足道的付出或許就能使你在人類科學的發展史上留下不小的一筆呢! BOINC是Berkeley Open Infrastructure for Network Computing的簡稱,即伯克利開放式網路計算平台。
BOINC是不同分布式計算可以共享的分布式計算平台。不同分布式計算項目可以直接使用BOINC的公用上傳下載系統、統計系統等,這樣不僅可以發揮各個分布式計算之間的協調性,也能使分布式計算的管理、使用更加方便易用。
BOINC項目由美國加州大學伯克利分校(U.C.Berkeley)主持發起。
BOINC項目由美國國家科學基金會(National Science Foundation)贊助。
BOINC有自己的積分系統,因為在BOINC上可以運行的項目千差萬別,比如項目A的任務包(Workunit,簡稱WU)在某台機器里需要3個小時完成,而項目B的任務包在這台機器里需要30個小時才能完成,顯然用WU的數目來衡量工作量是不可行的;類似的,機器性能也有差別,用CPU時間來衡量工作量更是不行的。積分系統只能通過一定的演算法得到用戶實際完成的計算量,這篇文章對BOINC中積分的計算方法進行了說明。 據中國互聯網信息中心(CNNIC)的統計信息,中文網民人數佔世界的比重已經增長到了12%左右,並且還在快速增長著。這里所說的中文網民是包括大陸、香港、澳門、台灣和海外華人的。
相比於互聯網在中國的快速發展,中國的分布式計算卻發展緩慢。就我看來,網民數量的統計並不能十分客觀地反映一個國家信息化程度的高低,而參與分布式計算網民的數量或比例卻可以明顯地看出這個國家科學普及化的水平。在這方面,毋庸置疑,歐美國家是十分領先的。在北歐國家,幾乎一半的電腦參加了分布式計算項目,這是一個驚人的數字。再讓我們來看看我們中國和印度,盡管我們擁有了不少最新科技,且看上去在網路普及化進程中有不錯表現,但是在分布式計算方面卻很薄弱。讓我們來看些例子:
SETI@home是世界上最大的分布式計算項目。從中國的參與人數來看,它在中國也是最著名的項目。它通過使用聯網的計算機下載程序分析射電望遠鏡所收到的訊號,來搜索地球外的生命跡象。
盡管中國在分布式計算中取得了進步,中國的國際排名從29上升到了24,但是我們中國用戶卻仍然只完成了日本用戶完成的工作數的十分之一,而日本,這個高度發達的國家網民人數卻少於中國。看來,提高網民素質、提高科學普及化程度也是十分重要的。印度和一些中東國家也有相似的問題,而中歐國家明顯在這方面作得比較好,不少獨聯體國家所完成的數據量已經超過了俄羅斯聯邦的總合。
Folding@home是一個研究蛋白質折疊,誤解,聚合及由此引起的相關疾病的分布式計算工程。它使用聯網式的計算方式和大量的分布式計算能力來模擬蛋白質折疊的過程,並指引我們對由折疊引起的疾病的一系列研究。
中國參加這個項目的人數在不斷增多,截至2011年3月底,中國3213團隊的用戶數達到3025人,活躍用戶有190人左右。
參與該項目Climateprediction工程是把最新的氣候預測模型通過家庭、學校、辦公室的計算機來進行計算。這些計算完成的結果將會組成世界最大的氣象預測模型。氣候改變了,而我們對此的行動已經是全球重要的話題。這將影響到人類的農業生產、水資源量、生態系統、能源需求、保險花費和很多其他與人類息息相關的方面。確鑿的科學依據表明,地球在在接下來的幾個世紀可能會變得溫暖,但是我們無法估計到底變化會有多大。如果您參加,這將能有助與21世紀的氣候科學預測。
中國已經有了很多計算機,其中不乏性能極其先進的。而他們中的大多數僅僅是打字、播放幻燈而已。這不能不說是一種資源的浪費。
從另外一個角度看,我們不難發現發達國家和發展中國家的差距。我們把這種現象稱為數字鴻溝。另一個現象同樣令人痛心疾首,所有的分布式計算項目都是由發達國家,如:美國、德國、英國、日本等發起的,這一方面也加深了科學鴻溝。斯坦福大學化學系的戈爾哈姆·理查德·切爾曼教授說,分布式計算將加快整個人類的科學進程。科學家們可以完成以前從來想不到要去完成的,或者要花幾十年幾百年才能完成的計算任務。這是的確是千真萬確的,但是這種計算從一定程度上助長了發達國家的科學壟斷。
中國有關部門也開始意識到分布式計算的重要性,一些大學教授和科學家也開始鑽研分布式計算科學,比如:中科院CAS@HOME和清華大學的「清水計劃」。
G. 分布式計算是人工智慧的研究領域嗎
一個多智能體系統(multi-agent system,縮寫M.A.S.),是由在一個環境中交互的多個智能體組成的計算系統。多智能體系統也能被用在解決分離的智能體以及單層系統難以解決的問題。
智能可以由一些方法,函數,過程,搜索演算法或加強學習來實現。盡管存在相當大的重疊,然而一個多智能體系統並不總是一個基於智能體的模型(ABM)表現一致。ABM的目標是尋找遵循簡單規則的智能體(這些智能體不需要體現出太強的「智慧」)集體行為的解釋,通常在自然系統又或者解決具體的工程問題。ABM的術語經常在學術界被運用,而MAS的術語經常在工程技術中運用。多主體系統的研究課題可以給予一個合適的視角去觀察網路貿易,災害應對以及社會結構建模。
H. 什麼是分布式計算
1,分布式計算是一門計算機科學,它研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然後把這些部分分配給許多計算機進行處理,最後把這些計算結果綜合起來得到最終的結果。 也就是利用互聯網上的計算機的 CPU 的閑置處理能力來解決大型計算問題的一種計算科學。 2,最近的分布式計算項目已經被用於使用世界各地成千上萬位志願者的計算機的閑置計算能力,通過網際網路,您可以分析來自外太空的電訊號,尋找隱蔽的黑洞,並探索可能存在的外星智慧生命;您可以尋找超過1000萬位數字的梅森質數;您也可以尋找並發現對抗艾滋病病毒的更為有效的葯物。這些項目都很龐大,需要驚人的計算量,僅僅由單個的電腦或是個人在一個能讓人接受的時間內計算完成是決不可能的。
I. 有關啟發式演算法(Heuristic Algorithm)的一些總結
節選自維基網路:
啟發法 ( heuristics ,源自古希臘語的εὑρίσκω,又譯作:策略法、助發現法、啟發力、捷思法)是指 依據有限的知識 (或「不完整的信息」)在短時間內找到問題解決方案的一種技術。
它是一種依據 關於系統的有限認知 和 假說 從而得到關於此系統的結論的分析行為。由此得到的解決方案有可能會偏離最佳方案。通過與最佳方案的對比,可以確保啟發法的質量。
計算機科學的兩大基礎目標,就是 發現可證明其運行效率良好 且可 得最佳解或次佳解 的演算法。
而啟發式演算法則 試圖一次提供一個或全部目標 。例如它常能發現很不錯的解, 但也沒辦法證明它不會得到較壞的解 ; 它通常可在合理時間解出答案,但也沒辦法知道它是否每次都可以這樣的速度求解。
有時候人們會發現在某些特殊情況下,啟發式演算法會得到很壞的答案或效率極差, 然而造成那些特殊情況的數據結構,也許永遠不會在現實世界出現 。
因此現實世界中啟發式演算法很常用來解決問題。啟發式演算法處理許多實際問題時通常可以在合理時間內得到不錯的答案。
有一類的 通用啟發式策略稱為元啟發式演算法(metaheuristic) ,通常使用隨機數搜索技巧。他們可以應用在非常廣泛的問題上,但不能保證效率。
節選自網路:
啟發式演算法可以這樣定義:一個 基於直觀或經驗構造 的演算法, 在 可接受的花費(指計算時間和空間)下給出待解決組合優化問題每一個實例的一個可行解 , 該可行解與最優解的偏離程度一般不能被預計。 現階段,啟發式演算法以仿自然體演算法為主,主要有蟻群演算法、模擬退火法、神經網路等。
目前比較通用的啟發式演算法一般有模擬退火演算法(SA)、遺傳演算法(GA)、蟻群演算法(ACO)。
模擬退火演算法(Simulated Annealing, SA)的思想借鑒於固體的退火原理,當固體的溫度很高的時候,內能比較大,固體的內部粒子處於快速無序運動,當溫度慢慢降低的過程中,固體的內能減小,粒子的慢慢趨於有序,最終,當固體處於常溫時,內能達到最小,此時,粒子最為穩定。模擬退火演算法便是基於這樣的原理設計而成。
求解給定函數的最小值:其中,0<=x<=100,給定任意y的值,求解x為多少的時候,F(x)最小?
遺傳演算法(Genetic Algorithm, GA)起源於對生物系統所進行的計算機模擬研究。它是模仿自然界生物進化機制發展起來的隨機全局搜索和優化方法,借鑒了達爾文的進化論和孟德爾的遺傳學說。其本質是一種 高效、並行、全局搜索 的方法,能在搜索過程中自動獲取和積累有關搜索空間的知識,並 自適應 地控制搜索過程以求得最佳解。
給定一組五個基因,每一個基因可以保存一個二進制值 0 或 1。這里的適應度是基因組中 1 的數量。如果基因組內共有五個 1,則該個體適應度達到最大值。如果基因組內沒有 1,那麼個體的適應度達到最小值。該遺傳演算法希望 最大化適應度 ,並提供適應度達到最大的個體所組成的群體。
想像有一隻螞蟻找到了食物,那麼它就需要將這個食物待會螞蟻穴。對於這只螞蟻來說,它並不知道應該怎麼回到螞蟻穴。
這只螞蟻有可能會隨機選擇一條路線,這條路可能路程比較遠,但是這只螞蟻在這條路上留下了記號(一種化學物質,信息素)。如果這只螞蟻繼續不停地搬運食物的時候,有其它許多螞蟻一起搬運的話,它們總會有運氣好的時候走到更快返回螞蟻穴的路線。當螞蟻選擇的路線越優,相同時間內螞蟻往返的次數就會越多,這樣就在這條路上留下了更多的信息素。
這時候,螞蟻們就會選擇一些路徑上信息素越濃的,這些路徑就是較優的路徑。當螞蟻們不斷重復這個過程,螞蟻們就會更多地向更濃的信息素的路徑上偏移,這樣最終會確定一條路徑,這條路徑就是最優路徑。
J. 啟發式搜索演算法的演算法舉例
啟發演算法有: 蟻群演算法,遺傳演算法、模擬退火演算法等 蟻群演算法是一種來自大自然的隨機搜索尋優方法,是生物界的群體啟發式行為,現己陸續應用到組合優化、人工智慧、通訊等多個領域。蟻群演算法的正反饋性和協同性使其可用於分布式系統,隱含的並行性更使之具有極強的發展潛力。從數值模擬結果來看,它比目前風行一時的遺傳演算法、模擬退火演算法等有更好的適應性。