在終端機下達指令: brew install scala
2016年5月18日 星期三
Scala IDE for Eclipse 安裝
Help->Install New Software->Add
Name: Scala IDE
Location: http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/site
把 Scala IDE for Eclipse 和 Scala IDE for Eclipse Development Support兩個選項打勾
Name: Scala IDE
Location: http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/site
把 Scala IDE for Eclipse 和 Scala IDE for Eclipse Development Support兩個選項打勾
然後等待一段時間下載
開一個Scala專案
輸入HolloWorld.scala 檔案
object HellWorld extends App {
println ( "hello,")
開一個Scala專案
輸入HolloWorld.scala 檔案
}
執行看看有沒有差
不能使用Application 因為
Application has been deprecated from scala 2.9, probably it has been deleted in scala 2.11 (it still exists in scala 2.10) even though at the moment I can't find proofs for that, use App instead.
執行看看有沒有差
不能使用Application 因為
Application has been deprecated from scala 2.9, probably it has been deleted in scala 2.11 (it still exists in scala 2.10) even though at the moment I can't find proofs for that, use App instead.
2016年5月8日 星期日
基因演算法運用及程式碼
碩士期間剛好有一堂是最佳演算法,講到基因演算法的運用和作業
剛好有機會記下來,與網友們一起討論使用
題目是:
6.挑選與複製方法
7.交配與交配機率
8.突變與突變機率
9.終止條件
1. 題目
Max f (x 1, x2
) = 21.5 + x1 sin(4πx1) + x2 sin(20πx2
)
−3. 0 ≤ x1 ≤ 12.1, 4.1 ≤
x2 ≤ 5.8
試以基因演算法求最大值f
2. 基因演算法(以流程圖或虛擬碼表示即可)
3. 設計編碼方式 (使用二進位編碼來代表 x1 與 x2
的值)
4. 決定群體規模 (族群數量)
5. 設計適應函數 (決定個體適應度的評估標準)
6. 決定挑選與複製方法
7. 定義交配與交配機率
8. 定義突變與突變機率
9. 決定終止條件
10. 結果與討論(含收斂過程圖)
我的解法
2.基因演算法流程圖
我的解法
2.基因演算法流程圖
3.編碼方式
假設某個數值x1=11.1
X1==11.1;
If(x1==11.1)
{
x1=(x1+3)*10;
x1_binary=Integer.toBinary (x1);
x1_binary=Integer.toBinary (x1);
}
x1_binary==10001101;
假設某個數值x1 二進位= 10001101
x1_binary==10001101;
If(x1_binary==10001101)
{
x1=Integer. valueOf(x1_binary);
x1=x1/10-3;
}
X1==11.1;
假設某個數值x1=-3.0
X1==0;
If(x1==-3.0)
{
x1=(x1+3)*10;
x1_binary=Integer.toBinary (x1);
x1_binary=Integer.toBinary (x1);
}x1_binary== 00000000;
假設某個數值x1 二進位= 00000000
x1_binary== 00000000;
If(x1_binary==00000000)
{
x1=Integer.valueOf(x1_binary);
x1=x1/10-3;
}
X1==0;
4.群體規模
(族群數量)
初始群體規模為
int groundCount=10;
經過第一次交配,以後規模擴增為
copulationCount=groundCount*2;
5.適應函數
直接代入
Max f (x1, x2 ) = 21.5 + x1 sin(4πx1) + x2 sin(20πx2 )
求f當適應函數
6.挑選與複製方法
樣本基因利用公式計算出來的各個f值
取出
前10%優秀f樣本基因、前30%優秀樣本基因、前70%優秀樣本基因、前90%優秀樣本基因(輪盤式選擇)
複製完後放入交配池(激增兩倍基因)
7.交配與交配機率
一開始隨機取出兩對基因
把第一對x1前四碼和第二對x2前四碼交配出新基因的x1
把第一對x2前四碼和第二對x1前四碼交配出新基因的x2
強制交配出特定數量
8.突變與突變機率
在交配的時候,有十分之一的機率發生突變,當發生突變的時候,隨機x1或x2發生突變,突變是隨機挑選binary的其中一個做改變。
e.gs., 10001101=>10101101(第三位發生突變)
9.終止條件
其繁延代數跑完,就是終止條件
10.結果與討論
因為我起始基因個數非常的低(設定為10組),所以我依靠演化(交配、突變)來使基因越來越好,但非常依靠繁延代數。
總而言之,每一代的基因都有往好的地方發展出去!所以繁延代數越高,基因品質越好。
以下是程式碼:
以下是程式碼:
訂閱:
文章 (Atom)