找回密码
 欢迎注册
查看: 11803|回复: 0

[求助] 麻烦大家帮我看一下这个算法该怎么弄

[复制链接]
发表于 2010-9-7 14:24:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
大家好,我有一个算法问题不知道该怎么解决,麻烦帮我看一下吧。假设有五个人ABCDE,每个人都有不同的10个方案1~10.其中号码越小的越好,即每个人都最喜欢自己的1号方案,但一个人的方案可能和另外一个人的方案有冲突,这样他们就不能同时选这两个方案。现在要把所有不冲突的最好的方案选出来(pareto最优解集)。举例来说,若每个人的1号方案都不冲突,则不需要往下继续;若其中B1与E1冲突,则看E2与其他1是否冲突,冲突则继续看E3、E4...,不冲突则记录下来作为一个解(此时不需要继续看E3,因为他的效果不如E2好);接下来E再选1,看B2与其他1是否冲突,同样按上面的方法选择。不过在上面E2的选择中,可能E2与B1不冲突,但与C1冲突,这时可先继续看E3等等是否冲突并记录,在将E回到2,C选C2验证。总之就是遇到冲突了就固定一个,让另一个继续往下找一个最好的,然后将另一个回到冲突点固定,原来那个往下找(即每次冲突都要让双方各找一个不冲突解)。我想要的就是这样一个不冲突的解集。
不知道我描述清楚了没有,我本来想用分枝定界(或剪枝),但也不知该怎么写,感觉逻辑上好像很麻烦,希望大家能给我提些意见,谢谢!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-25 00:49 , Processed in 0.048448 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表