2 u012556659 u012556659 于 2015.05.26 15:07 提问

java最优组合算法问题,编程实现字母最优组合生成最优解 10C

要求:输入A~K中的任意几个字母(无重复),对这些字母进行组合。输出最优组合的最小组数n和组合方案,使用java语言。

约束条件:A可以和B一组;
A可以和E、F、G一组;
C、D、H要单独分组;
I可以和E、F、G一组;
J可以和E、F、G一组;
K可以和E、F、G一组;
如果可以,希望用退火算法的思想来解决本问题。毕设赶着要用这个算法,希望尽快提供解决方案,拜谢!

3个回答

u010655288
u010655288   2015.05.28 17:37

两两组合,还是可以多个组合?

u012556659
u012556659 怎样组合取决于你的算法和组合条件,比如C就必须单独一组,类似的还有D、H;又比如A可以和B一组也可以和EFG中的一个或多个一组,谁和谁一组却决于输入的字母和分组方式,但目标不变,就是得到一个分组组数最小的最优分组方法
2 年多之前 回复
u012556659
u012556659 回复u012556659:
2 年多之前 回复
u012556659
u012556659 输入的字符是A~K的随机几个字母,可以是一个A,也可以是ABCDEFGHIJK,只要满足以上组合条件即可,主要是得到一个最优的组合方式,使其组数最小。。有兴趣麻烦看一下,我给你们加分
2 年多之前 回复
nanwang21
nanwang21   2015.05.29 10:23

必须是4个一组吗?还是随即几个一组都可以?

u012556659
u012556659 只要分组是按要求的就行,无论怎么分组都可以,但必须分组的组数最小,比如输入ABCD字符串应该输出"AB,C,D"最小分组为组数为3
2 年多之前 回复
u012556659
u012556659   2015.06.03 13:58

其实这个问题是我从列车专项修制定维修计划中抽象出来的。原要求为:列车调度员合法的登录系统后,以保证预分配列车在维修任务完成后能够尽快回到原固定交路上运行为计划目标,自动制定半月专项修计划,在制定专项修计划时,需要考虑专项修之间的约束。具体约束如下:
①专项修与空心轴探伤能一起进行。
②专项修与牵引电机注脂、齿轮箱换油、空压机换油等可以一起进行。
③LU探伤、镟轮要单独扣修。
④I2修不能与任何其他作业项目混合,M修则可以与齿轮箱换油、牵引电机注脂、空压机换油等一起进行。
⑤列车调度员每天的维修量一定,不能安排超过列车调度员维修能力数量的列车进行维修。
所以这里求助各位高手设计一个最优组合算法求的最优组合时的最小分组组数和分组情况。

Csdn user default icon
上传中...
上传图片
插入图片