写这篇主要是想与线性规划求解集合覆盖问题做个性能对比,基于后者的实现方法可参考博文。
本文中数据集X及集族生成规则同上一篇,这里不再介绍。整个贪心算法解决集合覆盖问题的实现代码如下。
# 集合覆盖问题-part1-贪心算法
import time
import random
from itertools import chain
import matplotlib.pyplot as plt
# 生成有限集X
X = set()
iter_ = [100,200, 500]
time_cost = []
for n in iter_:
start_t = time.clock()
X = random.sample(range(1, 10000), n)
print('集合X中元素个数:', len(X))
print('集合X:', X)
# 生成子集
S0 = random.sample(X, 20)
n1