演算法是:
仔細地、一步一步解決問題的方法。
Christo Papadimitriou
而不能給演算法定義的學者,則是以實例來說明甚麼是演算法。
第一個例子,是所謂迷宮問題。
迷宮問題,給定一個迷宮,如何找出走出迷宮的路經。
首先先定義圖: 圖是由一定數量的節點組成,再加上把節點連接起來的線,稱之為邊。
一座迷宮是由通道(邊)和樞紐點(節點)組合而成的,我們也可以稱之為一個圖,此時就可以做DFS(Depth First Search),每個路徑最多會被經過兩次,而包含出口的路徑會被經過一次
這裡面的原理就是,一個迷宮裡面有起點和終點,而起點和終點是為唯二可以一個節點有奇數個邊的例外。
DFS是系統性搜尋整個網路的眾多方法之一,它的原則是從起始節點開始往深處搜尋,直到確認終點是甚麼為止。
動作為:
從一個節點往下一個節點出發,如果節點還沒被拜訪過就繼續往下走。
從DFS可以衍伸出三個演算法的典型基石:
1. Recursion,遞迴
2. if-question,假設問題
3. Bow,蝴蝶結,針對節點的相鄰節點進行任何可能動作的搜尋
而這些基石的運作下,DFS可以處理不同的輸入資料(迷宮)。因此,演算法是能在多元化的過程中,合理處置多元案例的縝密規則。
演算法的多元性就在於,根據不同的輸入資料,會衍伸出不同的結果出來(和食譜不同,根據食譜做出來的料理都是相同的)
演算法就是可以在簡單原則之下,保有其結果的多元性
第二個例子還說明演算法給定的規則下所生成的多樣性
這稱之為生存遊戲(Game of life),由數學家約翰‧霍爾頓‧康威(John Horton Conway)想出來的。
1. 遊戲在一張方格線紙上進行
2. 每個玩家可以隨意挑選一個格子當作兔子
3. 每一輪後,兔子周遭八個格子要是少於兩隻(< 2)兔子就會死掉(擦掉)
4. 每一輪後,兔子周遭八個格子要是多過三位(>3),兔子也 會死掉(擦掉)
5. 每一輪後,周圍有三隻兔子的格子裡面會自動產生一隻兔子
根據這些規則,再給不同組的起始資料,就可以有許多不同的結果
由這些敘述可以知道,演算法是傳換符號的規則。它是一個機器,當給它一些資料,它會回給你結果或是說還沒做完。
而只要直覺上可以計算的東西都是可以納進圖靈機的範圍內。但演算法的原始定義並非圖靈機的形式定義,而是我們在直覺上可以去被計算的東西。
唯一和圖靈機運作不同的是量子力學(量子電腦),之後章節會再提及。
仔細地、一步一步解決問題的方法。
Christo Papadimitriou
而不能給演算法定義的學者,則是以實例來說明甚麼是演算法。
第一個例子,是所謂迷宮問題。
迷宮問題,給定一個迷宮,如何找出走出迷宮的路經。
首先先定義圖: 圖是由一定數量的節點組成,再加上把節點連接起來的線,稱之為邊。
一座迷宮是由通道(邊)和樞紐點(節點)組合而成的,我們也可以稱之為一個圖,此時就可以做DFS(Depth First Search),每個路徑最多會被經過兩次,而包含出口的路徑會被經過一次
這裡面的原理就是,一個迷宮裡面有起點和終點,而起點和終點是為唯二可以一個節點有奇數個邊的例外。
DFS是系統性搜尋整個網路的眾多方法之一,它的原則是從起始節點開始往深處搜尋,直到確認終點是甚麼為止。
動作為:
從一個節點往下一個節點出發,如果節點還沒被拜訪過就繼續往下走。
從DFS可以衍伸出三個演算法的典型基石:
1. Recursion,遞迴
2. if-question,假設問題
3. Bow,蝴蝶結,針對節點的相鄰節點進行任何可能動作的搜尋
而這些基石的運作下,DFS可以處理不同的輸入資料(迷宮)。因此,演算法是能在多元化的過程中,合理處置多元案例的縝密規則。
演算法的多元性就在於,根據不同的輸入資料,會衍伸出不同的結果出來(和食譜不同,根據食譜做出來的料理都是相同的)
演算法就是可以在簡單原則之下,保有其結果的多元性
第二個例子還說明演算法給定的規則下所生成的多樣性
這稱之為生存遊戲(Game of life),由數學家約翰‧霍爾頓‧康威(John Horton Conway)想出來的。
1. 遊戲在一張方格線紙上進行
2. 每個玩家可以隨意挑選一個格子當作兔子
3. 每一輪後,兔子周遭八個格子要是少於兩隻(< 2)兔子就會死掉(擦掉)
4. 每一輪後,兔子周遭八個格子要是多過三位(>3),兔子也 會死掉(擦掉)
5. 每一輪後,周圍有三隻兔子的格子裡面會自動產生一隻兔子
根據這些規則,再給不同組的起始資料,就可以有許多不同的結果
由這些敘述可以知道,演算法是傳換符號的規則。它是一個機器,當給它一些資料,它會回給你結果或是說還沒做完。
而只要直覺上可以計算的東西都是可以納進圖靈機的範圍內。但演算法的原始定義並非圖靈機的形式定義,而是我們在直覺上可以去被計算的東西。
唯一和圖靈機運作不同的是量子力學(量子電腦),之後章節會再提及。
留言