的演演算法
1. 演演算法是什麼主要的數學意義是什麼
東風數學主要特徵:1具有實用性,有較強的社會性;2演算法程序化模型化;3寓理與算並且是開放的歸納系統
西方數學主要特徵:1封閉的邏輯演繹體系季節化的演算法;2古希臘的數字與神秘性結合;3將數學抽象化;4希臘數學重視數學在美學上的意義
希臘人在數學上的貢獻主要是創立了平面幾何,立體幾何,平面與球面三角,數論。推廣了算數與代數。
東方數學注重實用性社會性,使數學與我們的生活密切聯系,二者都推動了現代數學的發展,都開創了數學的先河。
2. 誰能解釋基因演演算法
基因演演算法 1975年 John Holland 學者所提出
成為非常著名的演演算法
Genetic Algorithm (GA)
基因演演算法 又稱: 遺傳演演算法
基因演演算法的概念
將問題編碼成 染色體的型式
基因: 0 or 1
染色體: x = 0 1 0 0 1 1 0
設計 適應函數 (fitness function)
f(x) :適應函數,給一 x 可得一 適應值 f(x)
適應值愈高, 表愈適應環境
基因演演算法三個基本動作
選擇(Selection)與復制 (Reproction):
X = 0 1 0 0 1 1 0
選擇 適應值高 之染色體
復製成多個染色體
基因演演算法三個基本動作
交換 (crossover):
父:0 1 0 0 1 1 0 0 1 1 1 0 1 0
母:1 0 1 1 0 0 1 1 0 0 0 1 0 1
交換 基因演演算法三個基本動作
突變 (mutation):
0 1 0 0 1 1 0
1 選擇 產生初始族群
計算適應値 復制 交換
突變 產生下一子代
是否滿足 停止條件
產生最適個體
否是 基因演演算法 基本架構圖
取材自:輔仁大學資管系林文修老師
選擇與 基因操作階段
評估階段 初始階段 生成下一世代
問題否是 生成母體
評估適應函數
符合停止條件?
選擇 復制 交換 突變
開始 結束 編碼 適應函數
領域知識 表現型 基因型
解碼 基因演演算法 之流程圖
取材自:輔仁大學資管系林文修老師
演演算法步驟 Step1:隨機產生N個染色體
Step2:利用適應函數算出每個染色體的適應值
Step3 : 選擇與復制: 選擇 適應值高 之染色體 復製成多個染色體
Step4:利用交換及突變的動作產生新的染色體
Step5:測試新染色體的適應值是否達到門檻值
是:則 停止
否:則 Go to Step3
範例1 假設 x 在 (0,31) 之間,y = x ,求 x = ,y 可得最大值
將問題編碼成 基因的型式
x : 0 0 0 0 0~1 1 1 1 1
設計 適應函數 (fitness function)
f (x) = y = x
範例1 <Step 1, 2, 3>
取4組染色體 x f (x) f (x) /m 復制個數
0 1 1 1 0 (14) 196 0.71 1
1 1 0 0 0 (24) 576 2.07 2
1 0 0 0 1 (17) 289 1.04 1
0 0 1 1 1 ( 7) 49 0.18 0
m = = 278
196+576+289+49
4 範例1 <Step 4.1> 交換
x f (x)
0 1 1 1 0 0 1 0 0 0 (8) 8 = 64
1 1 0 0 0 1 1 1 1 0 (30) 30 = 900
1 1 0 0 0 1 1 0 0 1 (25) 25 = 625
1 0 0 0 1 1 0 0 0 0 (16) 16 = 256
交換 交換 範例1 <Step 4.1> 交換
交換點 下一子代 x f (x)
0 1 1 1 0 2 0 1 0 0 0 8 64
1 1 0 0 0 2 1 1 1 1 0 30 900
1 1 0 0 0 4 1 1 0 0 1 25 625
1 0 0 0 1 4 1 0 0 0 0 16 256
範例1 <Step4.2>突變 (機率0.1)
4個染色體× 5個基因 = 20個基因
20 × 0.1 = 2 有2個基因要突變
1 st:0 1 0 0 0 0 1 1 0 0 (12)
第一個染色體之第3基因突變
3 rd:1 1 0 0 1 1 0 0 0 1 (17)
第三個染色體之第2基因突變
範例1 <Step5>
停止條件有三種可能方法:
設定繁衍代數 (ex:1000代)
收斂 (ex:最佳適應值已50代未改進)
適應值達到門檻
否則,Go to Step3
編碼(coding)-1
運用基因演化演算法的目的是求問題的解,在初始階段的編碼步驟是把與問題相關變數的值(或稱為問題解)以特定編碼的方式將其組合成一條染色體 (chromosome,或稱為字串string),每一條染色體即代表一可能的問題解答,
最簡單而且被廣泛使用的是標准二進位編碼法(Standard binary encoding)。這種編碼法是將染色體內的每個基因用二進位碼{0,1}來表示,而編碼後的染色體即是一串由01組合字串(string)。
3. 等值演演算法和主析取範式法的區別
等值演演算法和主析取範式法的區別:演算法不同,含義不同。
一、演算法不同:已知:p->q┐pvq,左邊┐(pq),┐((p->q)^(q->p)),(p^┐q)v(q^┐p),右邊(pvq)^(┐pv┐q),(p^┐q)v(q^┐p)左邊。
二、含義不同:¬(P∨Q)→R⇔¬(¬(PVQ))∨R⇔(PVQ)VR⇔PVQVR,使該式為真,則P,Q,R中至少有一項為真即可,因此所有成真賦值範式如下:PQR;001;010;011;100;101;110;111。
證明:
假設非永假式A(P1,P2,P3,Pn)有兩個不同的主析取範式A1和A2則A<=>A1,A<=>A2,故A1<=>A2,由於A1和A2是兩個不同的主析取範式故,至少存在一最小項mi,是mi只存在於A1和A2兩者之一中,不妨設mi在A1中,而不再A2中。設mi在A1中有一組成真指派R,於是在R指派下,主析取範式A1為真,但在R指派情況下,主析取範式A2為假,這與A1<=>A2相矛盾。
4. 台灣的大學課程演演算法相當於大陸的哪門課
就是大陸學校里的演算法設計與分析
5. Bresenham直線演演算法的演算方法
Bresenham直線演算法描繪的直線。假設我們需要由 (x0, y0) 這一點,繪畫一直線至右下角的另一點(x1, y1),x,y分別代表其水平及垂直坐標,並且 x1 - x0 > y1 - y0。在此我們使用電腦系統常用的坐標系,即x坐標值沿x軸向右增長,y坐標值沿y軸向下增長。
因此x及y之值分別向右及向下增加,而兩點之水平距離為x1 − x0且垂直距離為y1-y0。由此得之,該線的斜率必定介乎於1至0之間。而此演算法之目的,就是找出在x0與x1之間,第x行相對應的第y列,從而得出一像素點,使得該像素點的位置最接近原本的線。
對於由(x0, y0)及(x1, y1)兩點所組成之直線,公式如下:
因此,對於每一點的x,其y的值是
因為x及y皆為整數,但並非每一點x所對應的y皆為整數,故此沒有必要去計算每一點x所對應之y值。反之由於此線之斜率介乎於1至0之間,故此我們只需要找出當x到達那一個數值時,會使y上升1,若x尚未到此值,則y不變。至於如何找出相關的x值,則需依靠斜率。斜率之計算方法為m = (y1 − y0) / (x1 − x0)。由於此值不變,故可於運算前預先計算,減少運算次數。
要實行此演算法,我們需計算每一像素點與該線之間的誤差。於上述例子中,誤差應為每一點x中,其相對的像素點之y值與該線實際之y值的差距。每當x的值增加1,誤差的值就會增加m。每當誤差的值超出0.5,線就會比較靠近下一個映像點,因此y的值便會加1,且誤差減1。
下列偽代碼是這演算法的簡單表達(其中的plot(x,y)繪畫該點,abs返回的是絕對值)。雖然用了代價較高的浮點運算,但很容易就可以改用整數運算(詳見最佳化一節):
function line(x0, x1, y0, y1)
int deltax := x1 - x0
int deltay := y1 - y0
real error := 0
real deltaerr := deltay / deltax // 假設 deltax != 0 (非垂直線),
// 注意:需保留除法運算結果的小數部分
int y := y0
for x from x0 to x1
plot(x,y)
error := error + deltaerr
if abs(error) ≥ 0.5 then
y := y + 1
error := error - 1.0
6. Algorithm演演算法的介紹
Algorithm演演算法本來是學術(如數學、程序)領域中的用語,然而當套用在音樂電子器材上的時候,它指的是:不同的數字效果器串接的順序。 大部份的數字效果處理機都已含有各種演算法。
7. 基因遺傳演演算法是個啥求詳解
基因遺傳演演算法主要理論就是優勝劣汰的進化論。
它的主要精神是透過每次迭代都能比上次更進步,逐步演化,表現出針對一個目標函數尋求最佳解的過程。但是因為是隨機搜索,所以雖然基因演演算法設置如交配、突變等來避免,卻仍可能會陷入區域最佳解;也有可能最後得到的不是最佳解,只是在結束條件之前找到的最好的解。
基本的基因演演算法流程:
1.初始化族群:假定這個族群中有4條染色體,每條染色體有5個基因。
基因 -從目標函數的角度來看,就是自變數。
例如:用基因演演算法解目標函數 f(X,Y,Z)=2X+3Y-Z,
限制式為「X,Y,Z={1,0}」※,
求目標函數的最大值。
此題目對應到染色體的概念,就有3個基因,
三個基因分別代表X、Y、Z三個自變數的值。
染色體 -單一組解
例如:有很多符合目標函數限制式的(X,Y,Z),
其中一組是(x1,y1,z1)=(1,0,0),
函數值 f(x1,y1,z1)為2*1+3*0-0=2。
此例中,這組解當然不是最佳解,但它是這個題目的一個可行解。
*想像我們用直覺解題,拿張計算紙,把所有可行解都列出來,
然後比較所有我們想得到的可行解,最後可以得
到最佳的一組(X,Y,Z),因為它的f(X,Y,Z)為最大值。
族群 -多組解的集合
例如:族群中有四條染色體,這四條染色體就是四組可行解。
2.設定交配率和突變率:假定交配率a為0.6,突變率b為0.1。
交配率 -每個世代中,族群內有多少比率的染色體會互相交配。
突變率 -每個世代中,族群內的染色體有多少機率會突變。
3.迭代世代。
For iter=10 -假定做十次優勝劣汰。
3.1. 天擇:在這個世代中,根據每條染色體的權重,隨機選擇母代來產生後代,
用以做下一個運算。
通常使用輪盤法來作天擇,也就是說,
如果染色體甲的解是這個族群中最好的,
那麼甲的權重就是最高的。反之則是最低的。
*輪盤法:假定這次族群為「[1,1,1],[0,1,1],[1,0,1],[1,0,0]」,
四條染色體的適應值分別是「4,2,1,2」,
適應值總和為4+2+1+2=9,
則四條染色體被選到的機會為「4/9,2/9,1/9,2/9」
=「0.4,0.2,0.1,0.2」。這個機會就是權重。
為了不讓每次選擇都選到同一條染色體,所以只是
「有比較高的機會」選擇到「有更好適應值的染色體」,
而不是一定會選擇這個好適應值的染色體。
3.2. 交配:母代產生後,依照交配率a,隨機選擇染色體來作交配。
比較交配前的子代1和交配後的子代2,在8條染色體中,
選擇適應值最好的4條染色體留下來。
最簡單的交配方式就是交換兩條染色體的某個基因。
*例如,染色體S=[0,1,0],染色體Q=[1,1,1],交配位於首位的基因,
則可以得到新的兩條染色體S'=[1,1,0]、Q'=[0,1,1]。
3.3. 突變:交配完後,依照突變率b,決定這一個世代要不要突變。
假設要突變,則若突變後子代3的適應值比突變前子代2好,就用子代3取代子代2。
最簡單的突變方式就是隨機選擇某條染色體的某個基因,改變它。
*例如,隨機選中染色體M=[1,0,1],隨機突變中間的基因,
得到新染色體M'=[1,1,1] 。
3.4. 更新:最後得到的族群中,所有染色體的適應值。
END For
4. 比較所有染色體的適應值,列出最好的那一個染色體為演演算法最後的解。
※一般使用二元染色體,限制染色體的基因只會等於零或壹。
在此處只是方便解說,所以直接把限制式設成零和壹。
假設我們用二元染色體來解目標函數f(x)=x^2的最大值,限制式為0<=x<=7,x為整數。
用基因演演算法求解,則需要產生log_2(8)=3個基因,
簡單說來,就是用二進位表示一個有限整數值。
(也可以把基因想成電腦的位元數,我們用三個位元來表示一個有限的整數值。)
這樣做的話,突變的方法就是直接把某個基因轉成零或壹,
不用設定要更改多少值(例如加3、加100或減0.8)(基因演演算法應該一般不會這樣做);
計算適應值時,互相轉換二進位與十進位。
基因三個,則可以表達:
111=2^2+2^1+2^0=4+2+1=7
110=2^2+2^1=4+2=6
101=2^2+2^0=4+1=5
100=4
001=1
000=0
011=3
010=2
8. 進化論演演算法
進化首先是生物學的概念。根據達爾文「生物進化論」的觀點:生物的發展和演變是根據自然選擇的方式進行。生物機能和形態的變化,可從它所處的環境中尋找解釋。生物的進化過程也許完全不是隨機的,高級生物的進化過程很可能是「合情的產生與檢驗」的過程,即也許自然界掌握著一種很高明的「自動程序設計」方法進行遺傳「程序」的書寫。 模仿上述生物進化論所形成的應用演算法稱為進化論演算法。[1]
9. 等化器的可適性演演算法(for MSE)
通訊傳輸等化器設計,很重要的就是要找出最佳的tap-delay-line filter系數,找出一組可以誤差最小的系數。而在時變(time-invariant)通道中,通道狀況隨時在改變,所以在設計等化器時便要因應不同的通道狀況,隨時調整計算出使誤差最小的系數,這種演演算法變稱為adaptive algorithms。 可適性(adaptive)演演算法的好壞可由下列幾項標准判定:
收斂速度:演演算法在經過多少次重復運算後可以相當接近最後想要的結果
每次重復運算(iteration)的計算量
錯誤調整(misadjustment)的大小
LMS演演算法
LMS演演算法通常包含兩部分(由以下兩者相互運作行程一回授(feedback loop)
率波程序(filtering process): 1.計算線系濾波器輸出對輸入信號的反應
2.比較輸出信號和想要的信號(desire signal)得到預測誤差
可適性程序(adaptive process):對於估測誤差,自動調整等化器參數 d(n):為想得到的信號 u(n):等化器輸入信號 y(n):等化器輸出信號 w(n):可時變的tap-delay line filter系數
由於LMS演演算法不需要事先求得u(n)的自相關函數(ACF)及u(n)和d(n)的交相關函數(CCF),因此在運算上簡化許多,也由於w(n)是e(n)及u(n)的 函式(e(n)u(n)是隨機程序),所以LMS演演算法是一統計濾波器(stochastic filter)。
在設計LMS-based可適性濾波器時,如何決定step-size u使LMS演演算法收斂是一項相當重要的議題 當0<u<2/ŋ時,LMS演演算法收斂(ŋ_max是u*u的最大特徵值 RLS演演算法對每個n值,我們根據W[N]來估計新的最小平方差解,我們在用w(n)來尋找,來表示新的w(n+1)估計值時,希望避免LS演演算法全部從頭重做的情況,用RLS演演算法的好處是我們不用將矩陣反置(inverse),如此一來可以節省運算POWER
演演算法:
1.初始條件:P(0)=δ^(-1)˙I , w(0)=0 ,δ是一大於零很小的常數
2.for n=1,2,.... 計算k(n),z(n),w(n)
LMS和RLS兩者比較:
1.LMS 演演算法的運算量少,為L 的等級(L為濾波器的長度),但收斂速度受到輸入信號的統計特性所影響,需花較多時間達到要求的收斂性能
2.RLS 演演算法雖然收斂速度快,但卻需要巨大的運算量,為L平方的等級。
10. 離散數學 等值演演算法
設p:派趙出國,q:派錢出國,r:派孫出國,s:派李出國,t:派周出國。則各條件分別符號化為:
(1)p→q,(2)(sVt),(3)(qA7r)V(-q^r),(4)(rAs)V(→rA-s),(5)1-+(p^q) 要求滿足各條件,
因而要求(1)~(5)的合取式為真.設:A≈(p→q)A(sV1)八((q八→r)V(→qλr))A((rAs)V(r八-s))∩(t→(p^q))
為了求出各派遣方案,應求出A的析取範式,最好是主析取範式,主析取範式中含的極小項個數為派遣方案數,由各極小項的成真賦值給出如何派法.所以要求出A的主析取範式。
下面給出求A的主析取範式的主要步驟:
易知,成真賦值為00110與11001。
方案1:孫、李出國,而趙.錢、周不去。
方案2:趙、錢、周出國,而孫、李不去。
(10)的演演算法擴展閱讀
隨著信息時代的到來,工業革命時代以微積分為代表的連續數學佔主流的地位已經發生了變化,離散數學的重要性逐漸被人們認識。離散數學課程所傳授的思想和方法,廣泛地體現在計算機科學技術及相關專業的諸領域,從科學計算到信息處理,從理論計算機科學到計算機應用技術,從計算機軟體到計算機硬體,從人工智慧到認知系統,無不與離散數學密切相關。
由於數字電子計算機是一個離散結構,它只能處理離散的或離散化了的數量關系, 因此,無論計算機科學本身,還是與計算機科學及其應用密切相關的現代科學研究領域,都面臨著如何對離散結構建立相應的數學模型;又如何將已用連續數量關系建立起來的數學模型離散化,從而可由計算機加以處理。
離散數學是傳統的邏輯學,集合論(包括函數),數論基礎,演算法設計,組合分析,離散概率,關系理論,圖論與樹,抽象代數(包括代數系統,群、環、域等),布爾代數,計算模型(語言與自動機)等匯集起來的一門綜合學科。離散數學的應用遍及現代科學技術的諸多領域。
離散數學也可以說是計算機科學的基礎核心學科,在離散數學中的有一個著名的典型例子-四色定理又稱四色猜想,這是世界近代三大數學難題之一,它是在1852年,由英國的一名繪圖員弗南西斯·格思里提出的,他在進行地圖著色時,發現了一個現象,「每幅地圖都可以僅用四種顏色著色,並且共同邊界的國家都可以被著上不同的顏色」。
那麼這能否從數學上進行證明呢?100多年後的1976年,肯尼斯·阿佩爾(Kenneth Appel)和沃爾夫岡·哈肯(Wolfgang Haken)使用計算機輔助計算,用了1200個小時和100億次的判斷,終於證明了四色定理,轟動世界,這就是離散數學與計算機科學相互協作的結果。