一个优化算法,有难度
问题描述如下:
设有一含有M个元素的集合S,有N个产生式,每个产生式的形式可以表示为P(s,d),s,d均为S的非空子集。现设某用户希望由这N个产生式,得到一个目标集ud(也为S的非空子集),该用户可以提供一个源集us(为S的非空子集),us中的每个元素都附带一个权值c(权值各不相同)。请教一个算法,能够快速准确的找到us的一个子集,满足条件:(1)由该子集可以得到目标集ud;(2)该子集中各元素的权值之和是满足(1)的所有子集中最小的一个。
可以假定已经存在函数f(s,d),可以判定由s是否可以得到d。当然,若s1是s2的子集,而f(s1,d)=1(表示由s1可以得到d),则f(s2,d)=1。
由于可用分不多(只能20分),还望高手们赐教。