【演算法】
<P align=center><STRONG><FONT size=5>【<FONT color=red>演算法</FONT>】</FONT></STRONG></P> <P><STRONG>Algorithm</STRONG></P><P><STRONG></STRONG> </P>
<P><STRONG>【辭書名稱】圖書館學與資訊科學大辭典</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>演算法是指一組用以解決問題而可以逐步執行的步驟或程序而言。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>演算法的英文字源最早來西元9世紀波斯數學家穆罕默德.克瓦里茲(Mohammedal-Khowarizmi)的名字,後來演變成拉丁文中的Algorismus。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>根據歷史記載,穆罕默德.克瓦里茲是最早發明逐步演算十位數加減乘除運算法則的數學家。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>現今在電腦科學上,凡可用於解決電腦程式的執行或運算的任何方法,均可稱之為演算法。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>由於電腦演算法的研究,常與資料的組織方式有關,因此,電腦演算法的研究也常涉及資料結構(DataStructures)的研究。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>演算法的設計中,首要建立一套基本法則,利用這些基本法則為基礎才能建構出完整的演算法。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>例如,以機器人控制的演算法建構為例,基本的硬體要件包括機器輪軸、機器手臂、及電眼;</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>動作的基本法則包括前進、移動、倒退與轉彎。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>以繪圖的演算法為例,必須的基本要件有直線、圓形、方型;</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>動作的基本法則有縮小、放大與旋轉。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>具備這些基本法則後,才能再組合出更高等的演算法。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>演算法的表示方式可以使用一般自然語言或電腦程式語言來表示。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>若以電腦程式語言撰寫,則演算法的基本要件稱之為指令組(InstructionSet),動作法則屬於資料型態(DataType)。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>演算法以電腦程式撰寫後即成一般俗稱的程式或編碼化演算法(CodedAlgorithm)。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>編碼化演算法的優點是對演算法細部規則的表達非常清楚,但不容易看清整個演算法的結構,常給人見樹不見林的感覺。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>相對的,以自然語言敘述的演算法,整體架構很清楚,但細節往往交待不清。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>折中的方式,是以電腦程式語言說明演算法的運作規則,以自然語言說明演算法的整體結構。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>這也是目前許多電腦教科書或電腦書籍,在說明某種演算法常採用的作法。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>電腦演算法的研究有以下幾個主題:(1)數學演算法(MathematicalAlgorithms):研究如何利用電腦來執行整數、多項式或矩陣的運算法則,排序(Sorting),研究各種電腦資料檔案結構及如何執行檢索的方式;</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>檢索(Searching),各種資料結構檢索效率與方法的研究;</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>(2)字串處理演算法(StringProcessingAlgorithm),研究各種電腦內字串的檢索與檔案壓縮與解壓縮的方法;</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>(3)幾何學演算法(GeometricAlgorithm),研究點、線與其他幾何圖型的問題解決方法;</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>(4)圖形演算法(GraphAlgorithm),用以探究各種圖形解題方法,如求最短距離、網路流量路徑等。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG>其他相關的主題尚有動態規畫(DynamicProgramming),線性規畫(LinerProgramming)與全面檢索(ExhausticSearching)等演算法的研究。</STRONG></P>
<P><STRONG></STRONG> </P>
<P><STRONG></STRONG> </P>轉自:http://edic.nict.gov.tw/cgi-bin/tudic/gsweb.cgi?o=ddictionary
頁:
[1]