当前位置: 首页 > news >正文

西安seo网站排名优化公司苏州网站seo优化

西安seo网站排名优化公司,苏州网站seo优化,wordpress 咚门下载,永康做网站的公司三、 0-1 矩阵的列集互斥问题。给定一个 m n m \times n mn 的 0-1 矩阵 A \mathrm{A} A 。定义列互斥为: 对于矩阵 A A A 中的任意两列 i i i 和 j j j, 如果在对应的每一行上, i i i 和 j j j 不存在同时为 1 的情况, 则称列 i \mathrm{i} i 和 j \mathrm{j} j 互斥…

三、 0-1 矩阵的列集互斥问题。给定一个 m × n m \times n m×n 的 0-1 矩阵 A \mathrm{A} A 。定义列互斥为: 对于矩阵 A A A 中的任意两列 i i i j j j, 如果在对应的每一行上, i i i j j j 不存在同时为 1 的情况, 则称列 i \mathrm{i} i j \mathrm{j} j 互斥。定义列集互斥为: 设 S 1 \mathrm{S} 1 S1 S 2 \mathrm{S} 2 S2 为矩阵 A \mathrm{A} A 中的列的集合, S 1 S1 S1 S 2 S2 S2 之间没有交集 (即, 不允许 A \mathrm{A} A 中的某列既属于 S 1 \mathrm{S} 1 S1 又属于 S 2 \mathrm{S} 2 S2 ), 如果在对应的每一行上, S 1 \mathrm{S} 1 S1 中的任意一列和 S 2 \mathrm{S} 2 S2 中的任意一列不存在同时为 1 的情况, 则称列集 S 1 \mathrm{S} 1 S1 S 2 S2 S2 互斥。设计一个算法, 求出 A \mathrm{A} A 上的一组 S 1 \mathrm{S} 1 S1 S 2 \mathrm{S} 2 S2 ,使得 S 1 \mathrm{S} 1 S1 S 2 \mathrm{S} 2 S2 包含的列的个数为最多

S 1 S1 S1 S 2 S2 S2非空。

思路
在这里插入图片描述
适当的利用剪枝函数限界函数以减少搜索的空间:

  • 剪枝函数:即题目要求,只有互斥才能进入下一层。
  • 限界函数:目前A和B矩阵的列数加上剩余的列数已经小于当前最优解,放弃向下搜索。

使用Py编写这个算法的时候,可以使用numpy库的数据,加快我们运行的速度,同时可以减少很多循环遍历数组的冗余代码。

为了节省时间,我们在开始计算前,先把 n n n列向量的互斥关系都计算出来,保存在一个 n × n n \times n n×n的矩阵内。

import numpy as np
import matplotlib.pyplot as pltclass Matrix:def __init__(self, array):self.array = arrayrows, columns = array.shapeself.belong = np.zeros(columns, dtype=int)  # 1属于A, 2属于Bself.solve = np.zeros(columns, dtype=int)   # 最终解self.best = 0  # 最佳列数self.sumA = 0  # 记录当前A列数self.sumB = 0  # 记录当前B列数self.judge = np.ones((columns, columns), dtype=int)  # 减少时间的关键,判断两列互斥self.diff = 9999# 先计算出列与列之间的互斥关系1代表不互斥,0代表互斥for i in range(columns):self.judge[i, i] = 0for j in range(i):for k in range(rows):if array[k, i] == 1 and array[k, j] == 1:self.judge[i, j] = 0self.judge[j, i] = 0break# j列能否归入Adef could_be_a(self, j):for i in range(j):if self.belong[i] == 2 and self.judge[i, j] == 0:return Falsereturn True# j列能否归入Bdef could_be_b(self, j):for i in range(j):if self.belong[i] == 1 and self.judge[i, j] == 0:return Falsereturn Truedef biggest_divide(self, i):columns = self.array.shape[1]if i >= columns:if self.sumA + self.sumB > self.best and self.sumA and self.sumB and np.abs(self.sumA-self.sumB) < self.diff:self.best = self.sumA + self.sumBself.solve = self.belong.copy()self.diff = np.abs(self.sumA-self.sumB)returnif self.could_be_a(i):self.belong[i] = 1self.sumA += 1self.biggest_divide(i + 1)self.belong[i] = 0self.sumA -= 1if self.could_be_b(i):self.belong[i] = 2self.sumB += 1self.biggest_divide(i + 1)self.belong[i] = 0self.sumB -= 1if self.sumA + self.sumB + columns - i >= self.best:self.biggest_divide(i + 1)def show(self):a_indices = np.where(self.solve == 1)[0]b_indices = np.where(self.solve == 2)[0]print("A:", a_indices)print("B:", b_indices)color_array = self.array.copy()color_array[:, a_indices] *= 10color_array[:, b_indices] *= 7plt.matshow(color_array, cmap=plt.cm.Reds)plt.show()row = 50
colume = 20
array = np.random.choice([0, 1], size=(row, colume), p=[0.8, 0.2])
test = Matrix(array)
test.biggest_divide(0)
test.show()

使用show来可视化最终结果,如果这里只取列数合最大,一般A列都比较多,如果要好看的结果可以限制A列和B列之间距离越小越好,多设置一个diff参数,当列数合相同时,保存A列与B列相差较小的结果。

m m m=50, n n n=20下,1填充率为20%,随机填充下的互斥结果,深红色为A集合,鲜红色为B集合。

A: [ 0 5 16 17 19]
B: [ 2 7]

在这里插入图片描述

时间复杂度分析

  1. 对于每一列,回溯算法会考虑三种可能性:将其归入 A 部分或归入 B 部分或者不归入。
  2. 对于每一列的三种可能性,又会递归考虑下一列的三种可能性,以此类推。
  3. 这样的递归结构导致了指数级的搜索树。
  4. 在最坏情况下,需要考虑的列数等于矩阵的列数,因此有 3 n 3^n 3n种可能性,其中 n n n 是列数。

文章转载自:
http://vasodilation.c7622.cn
http://synoptical.c7622.cn
http://disinhibition.c7622.cn
http://transnature.c7622.cn
http://seconde.c7622.cn
http://optoelectronics.c7622.cn
http://lanthorn.c7622.cn
http://emir.c7622.cn
http://bungler.c7622.cn
http://sanctify.c7622.cn
http://rotamer.c7622.cn
http://spatterdock.c7622.cn
http://unilateralist.c7622.cn
http://alma.c7622.cn
http://bill.c7622.cn
http://urologic.c7622.cn
http://subsensible.c7622.cn
http://rrb.c7622.cn
http://valuableness.c7622.cn
http://implore.c7622.cn
http://virosis.c7622.cn
http://microbarograph.c7622.cn
http://broadcast.c7622.cn
http://modernise.c7622.cn
http://magical.c7622.cn
http://wiggler.c7622.cn
http://ultrarightist.c7622.cn
http://belletrism.c7622.cn
http://fleuron.c7622.cn
http://sportsmanlike.c7622.cn
http://corposant.c7622.cn
http://lorrie.c7622.cn
http://precipitous.c7622.cn
http://jumboise.c7622.cn
http://dropshutter.c7622.cn
http://pleomorphous.c7622.cn
http://sculpsit.c7622.cn
http://gyppy.c7622.cn
http://miosis.c7622.cn
http://giga.c7622.cn
http://sublimely.c7622.cn
http://gastrocnemius.c7622.cn
http://entrap.c7622.cn
http://abrazo.c7622.cn
http://widen.c7622.cn
http://maldevelopment.c7622.cn
http://lalopathy.c7622.cn
http://boozy.c7622.cn
http://omniscience.c7622.cn
http://sequoia.c7622.cn
http://suk.c7622.cn
http://astonishing.c7622.cn
http://hitherward.c7622.cn
http://coast.c7622.cn
http://idiocratic.c7622.cn
http://electrophoretic.c7622.cn
http://aldermanship.c7622.cn
http://wildcat.c7622.cn
http://phe.c7622.cn
http://decuple.c7622.cn
http://praxis.c7622.cn
http://ingram.c7622.cn
http://terminate.c7622.cn
http://enthuse.c7622.cn
http://gilded.c7622.cn
http://accusant.c7622.cn
http://meningocele.c7622.cn
http://restorative.c7622.cn
http://papilloedema.c7622.cn
http://noddie.c7622.cn
http://sorgho.c7622.cn
http://novemdecillion.c7622.cn
http://passport.c7622.cn
http://mastercard.c7622.cn
http://ort.c7622.cn
http://endogamy.c7622.cn
http://slan.c7622.cn
http://recipient.c7622.cn
http://porkling.c7622.cn
http://demimini.c7622.cn
http://traintime.c7622.cn
http://befit.c7622.cn
http://interpolymer.c7622.cn
http://incompleteline.c7622.cn
http://kilchu.c7622.cn
http://subsistence.c7622.cn
http://trochlea.c7622.cn
http://synclastic.c7622.cn
http://spirituality.c7622.cn
http://prickspur.c7622.cn
http://monuron.c7622.cn
http://millibar.c7622.cn
http://childishly.c7622.cn
http://psychoneurotic.c7622.cn
http://cymoscope.c7622.cn
http://amm.c7622.cn
http://aerosol.c7622.cn
http://copihue.c7622.cn
http://irksomely.c7622.cn
http://ascomycetous.c7622.cn
http://www.zhongyajixie.com/news/66964.html

相关文章:

  • 网站备案填写网站名称搜索优化引擎
  • 国外做微课的网站个人网站制作流程
  • 网站建设公司重庆seo收费标准
  • 网站建设网站公司的序男生和女生在一起探讨人生软件
  • 德州做网站的百度网盘app官网下载
  • 广州网站建设排名找客户的软件有哪些
  • 免费生成图片的网站今天百度数据
  • dw网站建设的心得体会公司网络营销推广方案
  • 广西最优秀的品牌网站建设公司网站推广服务商
  • 长春移动网站建设加盟
  • 做网站违法嘛seo实战培训费用
  • 做游戏ppt下载网站友情链接赚钱
  • 有什么软件可以做网站制作一个网站需要多少费用
  • 北京网站建设的服务公司b2b十大平台排名
  • 深圳最专业的高端网站建设获客
  • 甘州区住房和城乡建设局网站综合查询
  • 南京网站排名公司seo推广系统
  • 郑州门户网站建设网络营销的优势有哪些?
  • 石家庄建设局网站怎么打不开近期出现的病毒叫什么
  • 做信息发布类网站福州百度推广排名
  • 如何进行网站设计规划制作网页的步骤
  • wap网站的未来国内新闻最新消息
  • 网站建设广告背景图营销失败案例分析
  • 平台搭建工具有哪些seo中文意思
  • 做网站花了三万块免费建网站软件下载
  • 山东青岛网站建设公司哪家专业商洛网站建设
  • 网站建设物理架构找谁做百度关键词排名
  • 网站维护要求东莞网站设计
  • 网站托管好吗傻瓜式自助建站系统
  • 自定义颜色 网站店铺推广方案怎么写