首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MATLAB:如何在M*M矩阵中生成所有可能的联盟形式

MATLAB:如何在M*M矩阵中生成所有可能的联盟形式
EN

Stack Overflow用户
提问于 2015-12-24 19:29:28
回答 1查看 208关注 0票数 0

假设,有一些'M‘对象旨在形成联盟。我需要知道如何在给定以下属性的情况下使用M*M二进制矩阵详尽地生成所有可能的联盟形式:

1-主对角线的元素设置为1(每个对象与其自身处于同一联盟中)

2-矩阵是对称的(两个对象处于同一联盟中是一种相互关系)

3-如果对象(i,j)在同一联盟中,并且(j,k)在同一联盟中,则(i,k)也在同一联盟中。

此示例给出了具有4个对象的联盟的简单形式:

EN

回答 1

Stack Overflow用户

发布于 2015-12-24 21:03:45

您可以使用另一个更容易生成的数据结构,然后将其转换为您想要的矩阵。使用具有联盟id的列表,其中联盟id是所有对象id中的最小值。对于您的示例,这将是[1 2 1 1]。使用这种数据结构可以更容易地描述生成器。

对于每个对象,您可以选择加入由具有较小id的对象打开的现有联盟之一,或者打开一个新联盟。

可能没有矢量化的解决方案,可以使用递归或动态编程来实现这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34452121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档