回溯法--最优加工顺序(机器零件加工)

package com.duoduo.day316;
/**
 * 最优加工顺序(机器零件加工问题)
 * 问题描述:  有n个机器零件,每个零件必须先由机器1处理,再由机器2处理。零件Ji需要机器1,2处理时间为T1i,T2i.
 * 			 如何安排零件加工顺序,使第一个零件从机器1上加工开始到最后一个零件在机器2上加工完成,所需的总加工时间最短?
 * 问题转化:  拿实例进行分析发现:机器1可以连续加工,机器2开始的时间=max(当前机器1的下线时间f1, 机器2 的下线时间f2)
 * 算法设计:  1 定义问题解空间:{x1,x2...xn}分量xi表示第i个加工的零件号 ,n个零件组成的集合为S={1,2..n},xi的取值为S-{x1,x2..X(i-1))
 * 			2 解空间的组织结构: 一棵排列树   树深度为n  n!个叶子节点
 * 			3 搜索解空间    约束条件-----每一种顺序均可以  -----没有约束
 * 				       限界条件----f2<bestf   f2=0,bestf=无穷大(初始值)  f2:当前已完成的零件在机器2上加工结束的时间  
 * 																		bestf:当前找到的最优方案的加工时间
 * @author 多多
 *
 */
import com.duoduo.day316.*;
import java.util.Scanner;
public class Test5_6 {
	static int max=100;   			//默认数组大小
	static int n,bestf,f1,f2;   		// n为零件个数   bestf为最优方案加工总时间   f1当前机器1 上加工的完成时间   f2当前机器2上加工的完成时间
	static int []x=
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值