有限集合A,函数int   val(subSet)接受A的一个子集返回整数。求A的子集使val()最小(或比较小)。  
  val()的实现应该与算法无关。现在只知道相近的子集(比如差一两个元素)的val()也相近。  
  这是NPC问题,简单的完全搜索不用说了。是不是可以用演化算法?如果可以,第一代怎么得到,遗传、变异规则怎么选?请给点建议。  
  如果有好的贪心算法也可以。
补充一下,  
  1。集合的规模在几万以上。  
  2。val()的定义域是A的幂集,也就是val()接受A的任意子集。


----------------------------------------------------------

只能动态规划阿  
  效率和val函数的值域有关  
  设val的值域是正整数,最大值为K  
  集合A中有n个元素  
  则动态规划的复杂度是O(A*n)Top 

PS:这就是背包问题的变形


待理解

posted on 2008-01-14 16:30  许维光  阅读(580)  评论(0编辑  收藏  举报