演算法初探
二.演算法(Algrothm)
1.演算法的定義
用來解決問題方法及步驟,簡單來說,就是找出解答的方式,好比一個"精確的食譜" ,把我們所遭遇到的問題的解決方法,藉由有系統與條理的方式一步一步的解釋清楚。從上述我們可以知道幾件事情:
a.演算法是用來解決問題
b.演算法將解法分解成不同步驟
c.演算法的解決問題的步驟是精確的,不靠人類的直覺與猜測
因為上面的幾個特性,我們才能夠藉由將演算法利用程式語言編寫成程式.利用電腦做運行計算,來解決我們生活上的問題。
(1)狹義演算法:執行者是人.出現了一些不明確的內容
活動設計-找出下圖中不明確.模擬兩可的內容.說看看是否為符合演算法規準?
a.食譜
(2)廣義演算法:執行者是電腦.不能出現了不明確的內容.如食譜中的少許.適量.差不多.模棱兩可內容
演算法的表示方式
EX:
while (我還沒死) { 問女朋友要不要嫁給我; if (答案=YES) { 拿出戒指; break; } else delay(1天); } 去結婚; |
參考網站
http://210.240.9.7/mod/page/view.php?id=218
活動設計-練習將生活中的例子(自然語言)轉換為流程圖或抽象的虛擬碼或圖形
以上採用自然語言來描述.但感覺有點囉唆及冗長
例子2
例子3
決策評估
解決 ”怎麼由板橋到高雄的交通問題 |
a.評估指標
今天如果某人希望用最短的時間從板橋到高雄,我們所期待的就是以最少通勤時間為主,評估指標就是最短時間;如果某人想要的是最節省的方式,那評估指標就是花最少的錢。演算法中的評估指標非常重要,這指標將用來計算評估你解答的品質,用以找出最好的答案。當然,評估指標可以是綜合指標,也就是可以把兩個以上的指標放入一個評估的算式中
b.合理假設
當有了好的評估指標後,你就可以把有可能的 “怎麼由板橋到高雄台北” 方式,來套入評估指標中計算,但這其中有個非常大的問題,底下直接用舉例的方式說明。
如果說 “怎麼由板橋到高雄” 我們以最短時間來做為評估指標,我們就要開始考慮飛機、高鐵、火車、客運、開車…等交通方式來評估,大部分的朋友一定會選擇高鐵,但如果不計成本來說,高鐵不一定是最快速的,今天如果請 F1 車手開著頂級跑車由板橋載你到高雄呢?或是有直升機專程接送呢?
所以在這樣的狀況下,我們要有基本假設,把目前某人能力範圍外的選項拿掉,例如說他有懼高症,那我們就會把直升機選項拿掉;他不想花超過 2000 元,就可能把頂級跑車選項拿掉…,這樣所找到的解,才會是合理又正常的解。
但有沒有人想要便宜又快速的方式由板橋前往高雄呢?這絕對有,在這狀況下,我們又要回到評估指標那邊,把時間與花費做成一個綜合性的指標,簡單說,就是把時間與花費都加上權重來衡量。這時候你可以問那個麻煩的人說,速度與金錢對你由板橋前往高雄的重要性,如果速度佔 70% 重要,金錢佔 50% 重要,那你的評估指標就可以做成
速度* 70% 金錢 * 50%
c.選擇演算法
有了評估指標、基本假設後,接下來就要擬定演算法了,就是把有可能的選項一一放入評估指標中,看看哪個比較好就選哪一個,這就是所謂的窮舉法。
窮舉法對於小型的題目(專案)來說,是非常好用的方式,因為你不用花時間去思考其他演算法,因為使用窮舉法所花的時間都比你驗證其他演算法來的短,但對於大型題目(專案)來說,窮舉法就不是個好方法
資料來源:
例子4.選填志願
(1)務實面對現實
a..參考100年北聯排序(滿分36分)
引自林群數學
b 查詢自己的落點區間比率(待1050616查詢個人區間比率排名後.分總排名及男女排名) (28分以下可增加0.5%)
評估指標
(1)校風及學生競爭力(大學升學率)
101-104大學升學率
(2)交通便利性
(3)家人的期待與自我期許-雞首或牛後
(4)家人的期待與自我期許-雞首或牛後
參考資料
陽光大大(FB)
http://tsjh301.blogspot.tw/2014/06/compulsory-education.html?m=1
12年國教家長聯盟(FB)
2.演算法的重要性-是程式設計的靈魂
程式=演算法+資料結構 程式=演算法+資料結構+程式設計方法+語言工具和環境 |
用十分鐘學會《資料結構、演算法和計算理論》
3.演算法相關書籍及常見演算法
常見演算法(適合高中以上)
4.演算法相關新聞
Google 的人工智慧系統AlphaGo 阿爾法狗打敗人類圍棋冠軍,在三月九日到十五 日的五戰圍棋對弈中取得首勝,為人工智慧發展寫下重要里程碑。 中國圍棋(西方稱為Go)的歷史悠久且複雜無比,南韓棋王李世是全 球最佳棋士之一,他自十二歲成為職業棋士以來,已拿下十八個世界冠軍頭銜。他表示,因為人有犯錯的風險,所以可能無法打敗AlphaGo。現年 三十三歲的他在第一場對弈登場前說:「人之所以為人,是因為他們會犯錯。」 人為錯誤不僅是他唯一的弱點。李世表示,人類棋手對弈時可揣摩對方的反應與心理,但這次看不到這些線索,讓他頗不習慣。 反觀AlphaGo 這個機器棋手則有許多優勢。它從十萬多場圍棋比賽中模仿高手的棋譜,然後和自己下棋,從錯誤中「學習」。Google 的DeepMind 團隊也設計一套程式,讓AlphaGo 可以預測每一步棋對比賽的長遠影響, 從而判斷哪步落子會必勝。