车间调度 遗传算法
Posted nirvana · rebirth
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了车间调度 遗传算法相关的知识,希望对你有一定的参考价值。
直接运行即可。
算法模块在服务器部署。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
SocketAddress address = new InetSocketAddress("82.157.191.64", 12345);
Socket sock = new Socket();
sock.connect(address);
BufferedReader is = null;
PrintWriter os = null;
os = new PrintWriter(sock.getOutputStream()); //管道的写工具
is = new BufferedReader(new InputStreamReader(sock.getInputStream())); //管道的读工具
int n, m;
Scanner sc = new Scanner(System.in);
System.out.println("所有数据请用空格或换行分割,不要添加其他字符");
System.out.println("机器编号从0开始,请不要超出指定数量m");
System.out.println("请输入工件数量n 机器数量m:");
String str = new String();
n = sc.nextInt();
m = sc.nextInt();
str += n + " " + m + " ";
for (int i = 0; i < n; ++i) {
int p;
System.out.println("请输入job_" + i + "的工序数量p");
p = sc.nextInt();
str += p + " ";
while (p-- > 0) {
int x, y;
System.out.println("请输入机器号x, 运行时间y");
x = sc.nextInt();
y = sc.nextInt();
str += x + " " + y + " ";
}
}
os.write(str);
os.flush();
System.out.println("已发送...");
str = "";
while ((str = is.readLine()) != null) {
if(str.equals("-1")) {
break;
}
System.out.println(str);
}
os.close();
is.close();
sock.close();
}
}
以上是关于车间调度 遗传算法的主要内容,如果未能解决你的问题,请参考以下文章
车间调度基于遗传算法求解混合流水车间调度最优问题matlab源码