【发布时间】:2016-03-06 11:17:40
【问题描述】:
我必须建立一个具有特定概率分布的音素表来编码事物。 现在有 22 个基本元素(每个都有一个指定的概率,总和 100%),它们应映射到一个 12 元素表上,该表具有 所需的元素概率(总和 100%)。
所以最小化的一部分是合并几个基本元素以获得 12 个表格元素。每个基本元素必须只出现一次。
此外,该表有 3 行。因此,22 个基本元素的相同 12 个元素组成必须最小化 3 个目标向量的误差。假设给定的目标向量是 b1,b2,b3(维度 12x1),给定的基向量是 x(维度 22x1),它们通过 连接未知矩阵 A (12x22) by:
b1+err1=Ax
b2+err2=Ax
b3+err3=Ax
总结一下:要找到 A 使得 dot_prod(err1+err2+err3, err1+err2+err3)=min(最小二乘)。而且 - 根据上面的解释 - A 必须只包含 1 和 0,而每列只有一个 1。
不幸的是,我不知道如何解决这个问题。它可以用不同于矩阵向量形式的方式表达吗? matlab中有哪些工具可以做到?
【问题讨论】:
-
你在找A还是x?
-
典型的解决方案是
x'\b',但这不会将 A 的条目限制为 1-0 整数。这是一个更困难的问题,名为 0-1 线性规划。如果您有更多约束,那么您可以尝试添加它们 column sum is 1 row sum 1 etc 以帮助优化。 -
对,x'\b' 可以对任意矩阵 A 执行此操作。关于如何实现 A 的 2 个要求的任何想法?
标签: matlab multidimensional-array minimization