48、用于构建二元覆盖阵列的新型回溯算法

用于构建二元覆盖阵列的新型回溯算法

1. 引言

构建覆盖阵列(CA)的目标是在给定参数 v、k 和 t 的情况下,最小化行数。目前有多种构建组合模型的方法,包括递归方法、代数方法、贪心方法和元启发式方法(如模拟退火和禁忌搜索),但这些都是近似方法。唯一尝试系统枚举候选解以保证找到最优 CA 的方法是 EXACT,它是一种回溯算法,能消除同构 CA,并引入了小模块的概念以减少搜索空间。

2. 相关工作

构建 CA 的现有方法有:
- 递归方法
- 代数方法
- 贪心方法
- 元启发式方法(模拟退火、禁忌搜索)

EXACT 算法由 Yan 和 Zhang 提出,它采用特定规则消除同构 CA,引入小模块概念,还集成了 SCEH 剪枝技术。2008 年,他们对 EXACT 进行了改进,添加了新规则,但仅对一个实例(CA(24; 4, 12, 2))的已知最优解有所改进。

3. 新型回溯算法

可以将 CA 表示为一个二维的 N × k 矩阵,每行是一个测试用例,每列代表被测系统的一个参数。算法基于分支限界技术,是一个迭代过程:
1. 生成所有含 ⌊N/2⌋ 个 0 的列的子集。
2. 构建固定块,curr = t。
3. 将第 l + 1 列插入矩阵 M 的 curr 位置。
4. curr = curr + 1。
5. 检查是否按行有序,若否,则回溯到上一列,curr = curr - 1。
6. 进行部分 t 元验证。
7. 检查 curr 是否等于 k,若是则结束,生成 CA。

其流程图如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值