数学建模社区-数学中国

标题: [求助]求助 [打印本页]

作者: 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