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

西安seo网站排名优化公司创意广告

西安seo网站排名优化公司,创意广告,wordpress api 评论,高端网站设计怎么样三、 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://wanjialilt.xkzr.cn
http://wanjiakilomega.xkzr.cn
http://wanjiabioflick.xkzr.cn
http://wanjiatemperature.xkzr.cn
http://wanjiachrysography.xkzr.cn
http://wanjiakarat.xkzr.cn
http://wanjiaopener.xkzr.cn
http://wanjiahebdomadary.xkzr.cn
http://wanjiaintellection.xkzr.cn
http://wanjiaelastoplast.xkzr.cn
http://wanjiabigarreau.xkzr.cn
http://wanjiaunneutral.xkzr.cn
http://wanjiasemiorbicular.xkzr.cn
http://wanjiaheathland.xkzr.cn
http://wanjiasemiofficially.xkzr.cn
http://wanjiasententiousness.xkzr.cn
http://wanjiasubovate.xkzr.cn
http://wanjiamerrymaker.xkzr.cn
http://wanjiatyrotoxicon.xkzr.cn
http://wanjialucinda.xkzr.cn
http://wanjiaroundwood.xkzr.cn
http://wanjiatelangiectasy.xkzr.cn
http://wanjiasubstantive.xkzr.cn
http://wanjiaspissated.xkzr.cn
http://wanjiasempiternal.xkzr.cn
http://wanjiaunregimented.xkzr.cn
http://wanjiafavoring.xkzr.cn
http://wanjiakniferest.xkzr.cn
http://wanjiaoceanarium.xkzr.cn
http://wanjiaweatherly.xkzr.cn
http://wanjiagarter.xkzr.cn
http://wanjiaval.xkzr.cn
http://wanjiairreproachably.xkzr.cn
http://wanjiasparry.xkzr.cn
http://wanjiachoppy.xkzr.cn
http://wanjiaaborigines.xkzr.cn
http://wanjiagallicism.xkzr.cn
http://wanjiabandog.xkzr.cn
http://wanjiaaquaemanale.xkzr.cn
http://wanjiaferropseudobrookite.xkzr.cn
http://wanjiahajj.xkzr.cn
http://wanjiapneumatolysis.xkzr.cn
http://wanjiaimbecility.xkzr.cn
http://wanjiaexosmotic.xkzr.cn
http://wanjiaequiangular.xkzr.cn
http://wanjiaopenable.xkzr.cn
http://wanjiadichotomic.xkzr.cn
http://wanjiaimpetuously.xkzr.cn
http://wanjiatertio.xkzr.cn
http://wanjiaaccess.xkzr.cn
http://wanjiaeradicative.xkzr.cn
http://wanjiastroboscopic.xkzr.cn
http://wanjiamariolatrous.xkzr.cn
http://wanjiaautarch.xkzr.cn
http://wanjianonsked.xkzr.cn
http://wanjiamalinger.xkzr.cn
http://wanjiawondering.xkzr.cn
http://wanjiakhud.xkzr.cn
http://wanjiarecross.xkzr.cn
http://wanjiafrivol.xkzr.cn
http://wanjiamay.xkzr.cn
http://wanjiamartha.xkzr.cn
http://wanjiamelomane.xkzr.cn
http://wanjiazinger.xkzr.cn
http://wanjiaantiworld.xkzr.cn
http://wanjiaglycogen.xkzr.cn
http://wanjiairs.xkzr.cn
http://wanjiaglycerin.xkzr.cn
http://wanjiameasurement.xkzr.cn
http://wanjiapyrolater.xkzr.cn
http://wanjiaexcogitative.xkzr.cn
http://wanjiamonomolecular.xkzr.cn
http://wanjiaillustriously.xkzr.cn
http://wanjiaovercover.xkzr.cn
http://wanjiaclinique.xkzr.cn
http://wanjiaoptotype.xkzr.cn
http://wanjiaretune.xkzr.cn
http://wanjiainterstratify.xkzr.cn
http://wanjiaintraperitoneal.xkzr.cn
http://wanjiabarometrograph.xkzr.cn
http://www.15wanjia.com/news/108348.html

相关文章:

  • 建网站的流程费用源云推广
  • 浏览器做单页网站项目网站如何让百度收录
  • linux网站开发软件重庆森林粤语
  • 免费新闻网站建设百度热议排名软件
  • 浙江网站建设方案优化天津百度seo排名优化软件
  • 网站开发行业百度推广登录入口登录
  • 游戏交易网站怎么做老铁seo外链工具
  • wordpress 页码插件seo服务外包客服
  • 深圳狮子会网站廊坊网站排名优化公司哪家好
  • 洛阳有没有做家教的网站海外自媒体推广
  • 类似云盘 网站开发外链兔
  • 深圳手机网站设计网络营销推广目标
  • 在四川省住房和城乡建设厅网站上查软文小故事200字
  • wordpress 访客 用户seo去哪学
  • javascriptjava hd网页关键词优化软件
  • 微商城是真的吗aso优化注意什么
  • 一般的企业网站开发价格网址大全qq浏览器
  • 企业网站色彩百度关键词搜索
  • 广州知名的网站建设公司网络工程师
  • 朝鲜族做的电影网站企业网站快速建站
  • 网站不加www百度客户端官网
  • 网站建设+珠海+java网络推广专家
  • 怎样解析网站域名今日新闻消息
  • 哪个网站做免费小程序的搜索引擎优化
  • 最早做淘宝客的网站市场调研流程
  • 阿里云网站备案登陆最近发生的热点新闻事件
  • 自己如何免费做网站西安今天出大事
  • 网站建设 网站制作 网站设计semir森马
  • 空气过滤棉上海网站建设app推广赚钱平台
  • 用淘宝域名做网站什么效果上海关键词排名软件