⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graph1.java

📁 这是用遗传编程算法来拟合曲线的一个经典程序
💻 JAVA
字号:
/*作者:徐朝*/
/*keystonexu@yahoo.com.cn*/
package regression.gui;
import kernel.*;
import regression.function.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Observer;
import java.util.Observable;
import java.applet.*;
public class Graph1  extends Applet implements ActionListener,Observer
{
	Graphs g;
	Kernel kernel;
	Evaluation e;
	TextArea t;
	Label mess;
	Button start;
	Thread thread;
	MessageGp message;
	 public void init() 
	 {
	 	double[] y;
	 	setBackground(Color.lightGray);
		this.kernel = new Kernel(new Parameter(),new Sets(), new Evaluation());
		kernel.addObserver(this);
		e = (Evaluation)(kernel.evaluate);
		setLayout(null);
		t = new TextArea(40,20);
		t.setText("");				
		y = e.getData();	
		g = new Graphs(y,null,Graphs.SCATTER);
		g.setBounds(220,20,500,300);
		t.setBounds(20,20,200,500);
		start = new Button("开始曲线拟合");
		start.setBounds(250,350,100,30);
		start.addActionListener(this);
		Label pro = new Label("每代最优程序的语法树");
		pro.setBounds(50,0,150,20);
		add(g);
		add(t);
		add(start);
		add(pro);
		 	
	 	
	 }
	public void update(Observable ob, Object arg)
    {
        message = (MessageGp)arg;
        double[] y = e.getData(message.individual);
		g.setData(y,message.individual.adjustedFitness,
		message.currentGeneration);
		t.setText("");
		t.setFont(new Font("宋体",Font.PLAIN,10));
		t.setText(message.individual.program.toString(false)); 
	    
    }
	
	public void actionPerformed(ActionEvent e) 
    {
    	if(e.getActionCommand().equals("开始曲线拟合"))
    	{
    		start.setLabel("停止曲线拟合");
    		thread = new Thread(kernel);
    		thread.start();

    	}
    	if(e.getActionCommand().equals("停止曲线拟合"))
    	{
    		start.setLabel("开始曲线拟合");
    		thread.stop();
    	}

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -