【问题标题】:Creating a two dimensional binary matrix with constant sum along rows and columns创建沿行和列具有恒定总和的二维二进制矩阵
【发布时间】:2014-07-19 19:26:19
【问题描述】:

我需要创建一个包含 600 个神经元的网络模型。每个神经元可以接受 4 个输入连接。神经元的输入来自 M(待计算)纤维,每根纤维最多可以给神经元提供 53 个输出连接。神经元获得的每个连接都必须来自不同的纤维(没有两条纤维应该连接到同一个神经元)。每个神经元必须有 4 个输入,并且应该看到没有两个神经元从所有 4 个相同的纤维获得连接。使用的纤维数量必须尽可能少。

P.S:我想我可以构造一个 600xM 的二进制矩阵,使得每行之和为 4,每列之和最大为 53。你如何在 Matlab 或任何其他方式中做到这一点。谢谢。

【问题讨论】:

    标签: algorithm matlab networking matrix neural-network


    【解决方案1】:

    这里有一个简单的方法来构造一个二进制矩阵(600 x m),非零行的总和正好是 4,每列总和为 53(如果我理解正确,或者更低),直到有更多行使它们的总和为 4:

    m=12;
    A=zeros(600,m);
    cind=randperm(size(A,1));
    
    for n=1:numel(cind)
            ind=find(sum(A)<53);
            try
                A(cind(n),ind(randperm(numel(ind),4)))=1;
            catch err
            end
    end
    

    【讨论】:

    • 很好的解决方案,您没有检查的一点是:这是强制性的,不同的神经元必须至少在一个输入中有所不同。至少我看不出你的代码在哪里考虑到它。
    • 还需要将所有 600 个神经元都连接到网络中。如果总和超过 53,则该行中不会有任何 1。随机性可以将相同的位置分配给行中的 1。
    • 那么应该准确地求和为 53 还是最大为 53?
    • 嗨@android_begginer94!您是否有机会找到解决方案?你能和我们分享一下吗?提前致谢。
    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2021-04-04
    • 2020-11-15
    相关资源
    最近更新 更多