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

该博客探讨了如何使用回溯法来确定机器零件加工的最优顺序。通过介绍时间复杂度和空间复杂度的概念,文章深入讲解了排列树在解决此类问题中的应用。以n=3为例,详细阐述了如何通过递归交换序列中的数字来生成n个数的全排列。
摘要由CSDN通过智能技术生成
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=
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值