数学建模社区-数学中国
标题:
[求助]求助
[打印本页]
作者:
chlh066
时间:
2006-5-28 00:11
标题:
[求助]求助
如何解决最优化分组问题
作者:
liujie8109
时间:
2007-10-10 11:21
没人过问! 求助帖都没人看!
作者:
madio
时间:
2007-10-10 11:57
现有N个小于50的数字。把他们分成若干组,每组中最多有M个数字,且每组中的数字之和不大于50。先求组数最少的分法?
---------------------------------------------------------------
用贪心策略,从小到大逐个类加,和超过50就分出一组,得到的也许不是最优解,但肯定是较优解。
---------------------------------------------------------------
这儿有一个更优的方法:
void fun()
{
排序:按从大到小排成一列L;
while(L非空)
{
将L中从头开始取数并放到一个数组A中,直到总数加上下一个数的和
大于或等于50停止;然后又从L最后往前取数到该数组A中,直到总数
加上下一个数的和大于或等于50停止。
}
}
---------------------------------------------------------------
要实现比较优秀的算法须考虑实际状态与目标状态之间的差别最小,即让每组数的和接近50且小于50,
各组数的和均匀.
---------------------------------------------------------------
补充:还需使每组数字最多,接近M个
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5