回溯法与分支限界法
一、稳定婚姻问题(必做)
有n对男女要配成n对夫妇,其中第i位男士对第j位女士的爱恋程度为p[i][j],第i位女士对第j位男士的爱恋程度为q[i][j],显然p[i][j]不一定等于q[j][i]。将他们组成n对夫妇,如果存在这样一个男男士和女士,这两人不是夫妇,但他们互相喜欢的程度胜过对自己的配偶的喜爱,这样的n对夫妇称为不稳定婚姻。如果不存在这样的男士和女士,则称为稳定婚姻。请利用回溯法求解n对男女的所有稳定婚姻配对和最佳稳定婚姻配对(n对夫妇婚姻总体的满意程度:S= Σ p[i][i’] *q[i’][i],其中第i位男士的配偶为第i’位女士)。
注意: 1.假设p[i][j]、q[i][j]的取值为0.3-1.0,值越大代表满意度越高。
2.需描述回溯法算法思想(解空间、状态树、搜索方法、限界函数)
3.严格按照回溯法的算法框架编写
二、0-1背包问题(2选1)
给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,如何选择才能使得物品的总价格最高?请利用优先队列式分支限界法求解该问题。
注意: 1、优先队列结构可以使用库函数
2.需描述回溯法算法思想(解空间、状态树、搜索方法、限界函数)
3.严格按照分支限界法的算法框架编写
三、N皇后问题(2选1)
在N*N的棋盘上放置彼此不受攻击的N个皇后。按照国际象棋的规则,皇后可以攻击与之处于同一行或同一列或同一斜线上的棋子。N皇后的问题等价于在N*N大小的棋盘中放置N个皇后,任何2个皇后都不放在同一行或同一列或同一斜线上。使用队列式分支限界法,求出N个皇后的一种放置方案。
1、队列结构可以使用库函数
2.需描述回溯法算法思想(解空间、状态树、搜索方法、限界函数)
3.严格按照分支限界法的算法框架编写
上机13 回溯法解决婚姻匹配文体
- 回溯法
- 算法思想:
可以使用回溯法解决婚姻匹配文题。具体如下:通过