版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;class
2、 Best (public int generations; /最佳適應值public String str;/最佳染色體public double fitness; /最佳適應值public class SGAFrame extends JFrame (private JTextArea textArea;private String str =;private Best best = null;/最佳染色體private String ipop = new String10;/染色體private int gernation = 0;染色體public static final int G
3、ENE = 5; /基因數(shù)/* Launch the application* param args*/public static void main(String args) (try SGAFrame frame = new SGAFrame(); frame.setVisible(true);catch (Exception e) e.printStackTrace();/*/public SGAFrame() (super();this.ipop = inialPops();getContentPane().setLayout(null);setBounds(100, 100, 461
4、, 277);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JLabel label = new JLabel();label.setText(X 的區(qū)間:);label.setBounds(23, 10, 88, 15);getContentPane().add(label);final JLabel label_1 = new JLabel();label_1.setText(0,1);label_1.setBounds(92, 10, 84, 15);getContentPane().add(label_1);final JBu
5、tton button = new JButton();button.addActionListener(new ActionListener() (public void actionPerformed(final ActionEvent e) ( SGAFrame s = new SGAFrame();str = str + cess() + n;textArea.setText(str););button.setText(求最大值);button.setBounds(323, 27, 99, 23);getContentPane().add(button);final JLab
6、el label_2 = new JLabel();label_2.setText(利用標準遺傳算法求解函數(shù)f(x)=xA2的最大值:);label_2.setBounds(23, 31, 318, 15);getContentPane().add(label_2);final JPanel panel = new JPanel(); panel.setLayout(new BorderLayout();panel.setBounds(23, 65, 399, 164); getContentPane().add(panel);final JScrollPane scrollPane = ne
7、w JScrollPane(); panel.add(scrollPane, BorderLayout.CENTER);textArea = new JTextArea();scrollPane.setViewportView(textArea);/*初始化一條染色體(用二進制字符串表示)* return 一條染色體*/private String inialPop() (String res =;for (int i = 0; i 0.5) res += 0; else res += 1;return res;/*初始化一組染色體* return染色體組*/private String in
8、ialPops() String ipop = new String10;for (int i = 0; i 10; i+) ipopi = inialPop();return ipop;/*將染色體轉(zhuǎn)換成x的值* param str 染色體* return染色體的適應值*/private double calculatefitnessvalue(String str) (int b = Integer.parseInt(str, 2);double x =b;double fitness =x*x;return fitness;/*計算群體上每個個體的適應度值;*按由個體適應度值所決定的某個
9、規(guī)則選擇將進入下一代的個體;*/private void select() (double evals = new double10; / 所有染色體適應值double p = new double10;/ 各染色體選擇概率double q = new double10;/ 累計概率double F = 0;/累計適應值總和for (int i = 0; i best.fitness)( / 記錄最優(yōu)個體best.fitness = evalsi;best.generations = gernation;best.str = ipopi;F = F + evalsi; /所有染色體適應值總和f
10、or (int i = 0; i 10; i+) (pi = evalsi / F;if (i = 0)qi = pi;else (qi = qi - 1 + pi;for (int i = 0; i 10; i+) (double r = Math.random();if (r = q0) (ipopi = ipop0;else (for (int j = 1; j 10; j+) (if (r qj)(ipopi = ipopj;break;/*交叉操作*交叉率為25%,平均為25%的染色體進行交叉*/private void cross() (String temp1, temp2;fo
11、r (int i = 0; i 10; i+) (if (Math.random() 0.25) (double r = Math.random();int pos = (int) (Math.round(r * 1000) % GENE;if (pos = 0) (pos = 1;temp1 = ipopi.substring(0, pos)+ ipop(i + 1) % 10.substring(pos);temp2 = ipop(i + 1) % 10.substring(0, pos)+ ipopi.substring(pos); ipopi = temp1;ipop(i + 1) /
12、 10 = temp2;/*基因變異操作* */private void mutation() (for (int i = 0; i = 10) chromosomeNum = 9;String temp;if (ipopchromosomeNum.charAt(mutationNum - 1) = 0) (if (mutationNum = 1) (temp = 1 + ipopchromosomeNum.substring(mutationNum);else (if (mutationNum != GENE) (temp = ipopchromosomeNum.substring(0, m
13、utationNum -1) + 1+ ipopchromosomeNum.substring(mutationNum);else (temp = ipopchromosomeNum.substring(0, mutationNum -1) + 1;else (if (mutationNum = 1) (temp = 0 + ipopchromosomeNum.substring(mutationNum);else (if (mutationNum != GENE) (temp = ipopchromosomeNum.substring(0, mutationNum -1) + 0+ ipopchromosomeNum.substring(mutationNum);else (temp = ipopchromosomeNum.substring(0, mutation
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年單位集體用餐協(xié)議模板解析
- 2024年機票代理購買協(xié)議范本
- 2024防火安全門供應安裝協(xié)議
- 2024年建筑項目保險協(xié)議范例全書
- DB11∕T 1725-2020 蔬菜病蟲害全程綠色防控技術(shù)規(guī)程
- 2024年上海勞務派遣協(xié)議格式
- 2024年度牛肉購銷協(xié)議范本
- 2024年汽車托管租賃模板協(xié)議
- 2024年道路施工合作協(xié)議范本
- 文書模板-《住房換瓦協(xié)議書》
- 膝關(guān)節(jié)骨性關(guān)節(jié)炎的階梯治療
- 牛肝菌種植技術(shù)培訓課件
- MOOC 職場英語-西南交通大學 中國大學慕課答案
- 2069-3-3101-002WKB產(chǎn)品判定準則-外發(fā)
- 學校食堂炊事員安全培訓
- 新版中日交流標準日本語中級詞匯表.上冊
- (2024年)互聯(lián)網(wǎng)醫(yī)院整體方案介紹課件
- JTG C10-2007 公路勘測規(guī)范
- 未來科技與藝術(shù)的交融
- 牧原人才測評試題及答案
- (高清版)DZT 0216-2020 煤層氣儲量估算規(guī)范
評論
0/150
提交評論