[回目錄]

 

meta-heuristic algorithm ,啟發式演算法,

可能我的習慣較不好,在口語或文章時,常直接說是尋優式演算法,

此系列文章若不意出現尋優式演算法,即意指 meta-heuristic algorithm 。

 

Coding 前 ...

 

可能是論文季,這陣子收到不少信函尋問關於啟發式演算法 coding 問題,

給的第一個意見是,去把 C 或 C++ 念完或念過以下章節後,再來談問題。

 

✔  Software and IDE 軟體安裝 (Dev-C++ 或 Microsoft Visual Studio Express 或會用 gcc )

✔  Basic Data Type 基本資料型態

✔  Basic Input and Output 基本輸出入 ( printf 、scanf 等 )

✔  Condition 判斷式 ( if-else 、switch-case )

✔  Loop 迴圈 ( for 、while 、do while )

✔  Array 陣列

✔  function 函式 ( math.h 、自定義函式、call by value、call by pointer、call by reference)

✔  struct 結構 ( 含 typedef )

✔  Dynamic Memory Mangement 動態配置記憶體 (動態配置陣列)

✔  File process 檔案處理

 

至於指標,我認為在寫這些尋優式演算法時,不會用到非常多,只有配合 call by pointer 時會使用。

上面這些的確幾乎快把一本 C 語言快讀完,但如果目標不是要把 C 語言學得很強,只是要會用的話,

只需買一本看得懂的書回來,中文書也無妨,寫尋優式演算法在只要求可以跑、正確的情況下,

我認為是還不到「鑽研」的地步。

 

至於其它 coding 寫不寫得出來,一方面端視對於問題本身之了解程度;

另一方面端視對於程式語言之熟悉度,問題了解程度我沒辦法幫,常聽一些連自己都不確定的問題,

最後還要靠隔空抓藥,是真的無能為力。

 

筆者自白

 

基於自首無罪,必須自白,免得會讓某些人產生「作者很強」之錯覺。

本身並沒念過任何相關專業的書籍,也沒上過任何相關的課程,

像是 AI 、 meta-heuristic 、machine learnning,

勉強上過商科的 data mining,聽了三天的 PSO 演講,

資料來源純粹從學網上下載幾篇關於 meta-heuristic algorithm 之 paper,

觀念、名詞等專業度勢必薄弱,謹記錄一些曾看過、念過之相關 paper,

加以整理、實作 coding,再加上一些分析與實作後的心得,

願予以剛學 programming,必須硬著頭皮 coding meta-heuristic algorithm 之苦手一些幫助。

 

講些什麼?

 

meta-heuristic algorithm  我學的真的不算多,

基因演算法、粒子移動演算法、螞蟻演算法、模擬退火法、類神經網路;

其中類神經網路分支實在是多到恐佈,它絕對足夠單獨出一本書,此系列文並不深入針對各模型探討;

然而就其它四種,基因演算法 (GA)、粒子移動(PSO)、螞蟻演算法、模擬退火法 (SA),

基本上 coding 起來,基因演算法算是寫最長、最麻煩的 (有興趣的話可以先看小弟 另一篇 blog 範例) ;

而螞蟻、退火法歷史都比粒子移動還久,故開頭時挑「稍」新一點的 pso 演算法,

但也預計這系列文章寫完必須花一段時間。

 

另有一較新的演算法是讓我感到好奇的,台灣人所發表之 meta-heuristic algorithm ,

蟑螂演算法,待有閒之時再補起。

 

注意事項

 

1. 在發文過程中,發現 IE 常會開不完網頁,建議使用 FireFox 瀏覽。

2. 所有程式碼並不算是大程式,普遍性約2、3百行,最多約5、6百行,不算大程式,若對程式語言不熟者,建議直接找周圍熟的人做討論,學習效率較高。

3. 覺得該文寫得不錯,請按個「讚」鼓勵;雖沒提及什麼不可告人的秘密,但請尊重原著,欲用於學術,請註明原作為 eidsonx / edison.shih (加在註解也可) ,謝絕轉載。

 

- 以上

by EdisonX / Edison.Shih. / tropical72

 

[回目錄]

edisonx 發表在 痞客邦 PIXNET 留言(0) 人氣()