如何在MATLAB中的GF(2)上求解Ax = B的所有解?

问题描述 投票:0回答:1

给出A和B,求解GF(2)上的x应该给出2个解。例如:

A = [
1 0 0 0 1;
0 1 0 0 0;
0 0 1 0 0;
0 0 0 1 1;  ]

B(转置)= [0 0 0 0 0]

所以Ax = B产生x = [0 0 0 0 0]和x = [1 0 0 1 1]您可以看到

x1 + x5 = 0
x2 = 0
x3 = 0
x4 + x5 = 0

显然,x1和x5可以是0或1,x4可以是0或1

我应该添加:我尝试使用

gflineq(A, B, 2);

但是只有一个解决方案

matlab
1个回答
0
投票

您基本上已经有了布尔方程组,正在寻找所有解决方案。如果方程式和变量的数量很少,那么最简单的事情可能就是枚举所有可能的解决方案(在您的小示例中为2 ^ 5 = 32个情况),依次进行检查,并保留满足系统要求的解决方案。 >

[如果您要寻找一种在许多情况下更实用的通用表示形式(尽管显然总体上仍是指数形式的,我建议使用BDD(https://en.wikipedia.org/wiki/Binary_decision_diagram)之类的东西)。有各种完善的软件包可用于操纵它们。 。不过,我不确定要将它们与Matlab接口。

© www.soinside.com 2019 - 2024. All rights reserved.