欢迎光临散文网 会员登陆 & 注册

深兰交大AI算法 五期

2022-09-07 23:37 作者:超绝可爱邹园缘  | 我要投稿

解的表示与评价

在算法设计之前,还得设计一下解的表示方式(已报名深兰ai算法 底部评)。在背包问题中,所要做的决策是拿或者不拿某个物品,那么这一行为在计算机中如何表示比较好呢?

因为该问题的决策只有两种状态,所以我们可以用0表示不拿,1表示拿。N个物品我们就可以用一个N维的数组x进行表示,当:


\[\left\{ \begin{aligned} x[i] & = 0 & 不拿物品i \\ x[i] & = 1 & 拿物品i \end{aligned} \right. \]


此外,我们还得用个变量表示目标值,由于约束的存在,我们还得标识该解是否满足所有约束了……等等,那么就把这堆东西集成到一个class里面吧:

class kp_solution():    def __init__(self):        self.decision    = []  #  决策变量        self.total_value = 0   #  decision决策对应的目标值        self.feasible    = False #  decision决策是否满足所有约束

现在解已经用计算机语言表示出来了,如何去评价一个解已经十分明了了:根据问题的参数,计算决策获得的价值,以及判断该决策是否可行。


深兰交大AI算法 五期的评论 (共 条)

分享到微博请遵守国家法律