【发布时间】:2019-11-22 02:04:48
【问题描述】:
我有多组数据,例如:
X <- c(2,3,5,10,15)
Y <- c(4,6,23,15,12)
Z <- c(23,34,12,1,5)
还有一个目标:target = 50
我想知道最好的(例如):来自 X 的 2 个值(称为 X2)、来自 Y (Y4) 的 4 个值和来自 Z (Z3) 的 3 个值,如果我将它们相加,我会得到 sum(X2) + sum(Y4) + sum(Z3) = 50 (或最接近 50)。
这个问题有解决办法吗?
编辑:我提供的数据只是一个例子……我的最终目标是在大数据上重现它。
这是我的大数据:
target <- 362007
X <- c(1782L, 1780L, 1783L, 1784L, 1783L, 1781L, 1782L, 1781L, 1782L,
1782L, 1782L, 1784L, 1780L, 1784L, 1782L, 1779L, 1782L, 1784L,
1783L, 1782L, 1781L, 1777L, 1784L, 1782L, 1784L, 1784L, 1784L,
1782L, 1784L, 1782L, 1783L, 1783L, 1785L, 1782L, 1781L, 1782L,
1788L, 1789L, 1786L, 1787L, 1786L, 1783L, 1781L, 1781L, 1786L,
1787L, 1786L, 1786L, 1785L, 1785L, 1784L, 1786L, 1785L, 1784L,
1786L, 1785L, 1785L, 1783L, 1787L, 1787L, 1786L, 1785L, 1788L,
1786L, 1788L, 1786L, 1780L, 1788L, 1785L, 1784L, 1786L, 1784L,
1785L, 1783L, 1785L, 1785L, 1785L, 1786L, 1784L, 1784L, 1785L,
1784L, 1785L, 1787L, 1786L, 1788L, 1785L, 1785L, 1780L, 1787L,
1784L, 1785L, 1787L, 1784L, 1780L, 1785L, 1782L, 1787L, 1786L,
1781L, 1780L, 1784L, 1785L, 1785L, 1785L, 1785L, 1785L, 1782L,
1783L, 1787L, 1784L, 1783L, 1783L, 1782L, 1785L, 1783L, 1783L,
1782L, 1786L, 1783L, 1786L, 1782L, 1783L, 1786L, 1784L, 1782L,
1782L, 1785L, 1785L, 1783L, 1782L, 1781L, 1782L, 1779L, 1781L,
1781L, 1785L, 1780L, 1782L, 1781L, 1782L, 1786L, 1786L, 1787L,
1781L, 1780L, 1788L, 1781L, 1781L, 1780L, 1787L, 1787L, 1787L,
1780L, 1786L, 1786L, 1779L, 1785L, 1792L, 1788L, 1781L, 1784L,
1780L, 1784L, 1783L, 1785L, 1783L, 1783L, 1781L, 1783L, 1785L,
1783L, 1785L, 1782L, 1785L, 1782L, 1782L, 1782L, 1779L, 1787L,
1784L, 1783L, 1783L, 1786L, 1785L, 1787L, 1785L, 1783L, 1783L,
1786L, 1784L, 1778L, 1787L, 1786L, 1784L, 1784L, 1781L, 1779L,
1782L, 1786L, 1781L, 1787L, 1783L, 1781L, 1781L, 1786L, 1787L,
1780L, 1779L, 1785L, 1784L, 1781L, 1783L, 1782L, 1781L, 1781L,
1787L, 1785L, 1787L, 1784L, 1784L, 1783L, 1782L, 1785L, 1785L,
1783L, 1779L, 1786L, 1780L, 1778L, 1783L, 1785L, 1780L, 1786L,
1784L, 1779L, 1779L, 1779L, 1785L, 1780L, 1786L, 1778L, 1782L,
1779L, 1779L, 1784L, 1780L, 1780L, 1785L, 1781L, 1778L, 1787L,
1781L, 1786L, 1783L, 1784L, 1785L, 1786L, 1784L, 1782L, 1784L,
1785L, 1786L, 1786L, 1785L, 1782L, 1786L, 1783L, 1783L, 1788L,
1779L, 1786L, 1787L, 1781L, 1780L, 1780L, 1782L, 1784L, 1787L,
1780L, 1786L, 1786L, 1786L, 1784L, 1787L, 1785L, 1784L, 1784L,
1784L, 1781L, 1784L, 1784L, 1786L, 1784L, 1783L, 1784L, 1786L,
1787L, 1786L, 1786L, 1785L, 1786L, 1785L, 1785L)
Y <- c(1786L, 1786L, 1786L, 1786L, 1787L, 1784L, 1782L, 1787L, 1786L,
1786L, 1781L, 1787L, 1782L, 1785L, 1785L, 1786L, 1783L, 1781L,
1787L, 1780L, 1785L, 1783L, 1787L, 1785L, 1786L, 1789L, 1784L,
1785L, 1782L, 1780L, 1783L, 1786L, 1784L, 1782L, 1781L, 1788L,
1785L, 1779L, 1782L, 1781L, 1781L, 1785L, 1781L, 1786L, 1784L,
1782L, 1783L, 1782L, 1783L, 1784L, 1786L, 1780L, 1784L, 1782L,
1779L, 1783L, 1789L, 1783L, 1782L, 1786L, 1784L, 1783L, 1788L,
1786L, 1788L, 1783L, 1785L, 1787L, 1787L, 1784L, 1784L, 1787L,
1783L, 1782L, 1787L, 1788L, 1786L, 1786L, 1785L, 1787L, 1782L,
1787L, 1782L, 1787L, 1783L, 1787L, 1783L, 1784L, 1782L, 1782L,
1784L, 1784L, 1786L, 1782L, 1780L, 1786L, 1783L, 1787L, 1785L,
1786L, 1783L, 1783L, 1780L, 1781L, 1782L, 1788L, 1782L, 1783L,
1785L, 1785L, 1783L, 1786L, 1785L, 1786L, 1780L, 1782L, 1785L,
1784L, 1787L, 1779L, 1783L, 1782L, 1785L, 1780L, 1780L, 1786L,
1782L, 1785L, 1785L, 1779L, 1783L, 1786L, 1787L, 1789L, 1782L,
1781L, 1783L, 1780L, 1784L, 1783L, 1784L, 1784L, 1785L, 1785L,
1786L, 1782L, 1782L, 1781L, 1783L, 1787L, 1784L, 1785L, 1782L,
1781L, 1786L, 1784L, 1783L, 1784L, 1786L, 1784L, 1781L, 1783L,
1786L, 1784L, 1782L, 1782L, 1786L, 1783L, 1782L, 1784L, 1786L,
1784L, 1786L, 1783L, 1788L, 1782L, 1782L, 1787L, 1780L, 1781L,
1782L, 1787L, 1785L, 1781L, 1781L, 1783L, 1787L, 1785L, 1786L,
1783L, 1786L, 1780L, 1785L, 1786L, 1786L, 1781L, 1786L, 1786L,
1787L, 1786L, 1783L, 1789L, 1785L, 1782L, 1789L, 1788L, 1784L,
1782L, 1783L, 1781L, 1784L, 1783L, 1783L, 1787L, 1784L, 1783L,
1781L, 1783L, 1787L, 1783L, 1786L, 1791L, 1782L, 1788L, 1786L,
1785L, 1782L, 1787L, 1782L, 1784L, 1782L, 1782L, 1781L, 1782L,
1784L, 1783L, 1783L, 1784L, 1780L, 1787L, 1783L, 1785L, 1782L,
1786L, 1782L, 1787L, 1785L, 1782L, 1785L, 1784L, 1786L, 1783L,
1781L, 1782L, 1781L, 1785L, 1782L, 1783L, 1784L, 1782L, 1782L,
1784L, 1783L, 1787L, 1786L, 1786L, 1781L, 1782L, 1785L, 1787L,
1784L, 1782L, 1788L, 1782L, 1783L, 1783L, 1785L, 1781L, 1780L,
1786L, 1785L, 1780L, 1781L, 1782L, 1787L, 1784L, 1780L, 1782L,
1781L, 1781L, 1780L, 1784L, 1782L, 1792L, 1787L, 1782L, 1779L,
1784L, 1785L, 1786L, 1782L, 1786L, 1785L, 1785L, 1784L, 1785L,
1783L, 1786L, 1785L, 1783L, 1782L, 1784L, 1781L, 1782L, 1784L,
1786L, 1783L, 1783L, 1781L, 1785L, 1779L, 1783L, 1781L, 1781L,
1786L, 1783L, 1781L, 1787L, 1782L, 1787L, 1786L, 1645L, 1788L,
1783L, 1786L, 1787L, 1783L, 1780L, 1781L, 1782L, 1782L, 1786L,
1781L, 1785L, 1783L, 1784L, 1783L, 1784L, 1784L, 1781L, 1787L,
1781L, 1785L, 1782L, 1784L, 1790L, 1795L, 1793L, 1780L, 1782L,
1788L, 1787L, 1788L, 1781L, 1781L, 1788L, 1782L, 1783L, 1780L,
1785L, 1784L, 1781L, 1786L, 1781L, 1787L, 1794L, 1792L, 1791L,
1781L, 1779L, 1781L, 1781L, 1782L, 1784L, 1783L, 1785L, 1785L,
1785L, 1781L, 1778L, 1782L, 1784L, 1786L, 1786L, 1784L, 1782L,
1779L, 1781L, 1782L, 1785L, 1783L, 1782L, 1784L, 1779L, 1785L,
1784L, 1787L, 1785L, 1786L, 1789L, 1788L, 1785L, 1785L, 1785L,
1783L, 1784L, 1786L, 1784L, 1782L, 1779L, 1782L, 1787L, 1788L,
1782L, 1786L, 1784L, 1783L, 1782L, 1785L, 1785L, 1786L, 1786L,
1786L, 1785L, 1785L, 1789L, 1786L, 1781L, 1785L, 1784L, 1787L,
1781L, 1788L, 1783L, 1786L, 1786L, 1786L, 1783L, 1788L, 1788L,
1781L, 1787L, 1791L, 1784L, 1784L, 1785L, 1784L, 1784L, 1782L,
1779L, 1777L, 1780L, 1783L, 1782L, 1780L, 1781L, 1785L, 1780L,
1783L, 1786L, 1784L, 1779L, 1785L, 1784L, 1783L, 1783L, 1783L,
1783L, 1785L, 1781L, 1778L, 1781L, 1785L, 1781L, 1782L, 1788L,
1782L, 1783L, 1781L, 1786L, 1781L, 1784L, 1782L, 1783L, 1787L,
1783L, 1786L, 1783L, 1780L, 1781L, 1779L, 1781L, 1784L, 1785L,
1782L, 1785L, 1785L, 1783L, 1781L, 1780L, 1780L, 1781L, 1779L,
1780L, 1783L, 1782L, 1786L, 1780L, 1785L, 1786L, 1781L, 1783L,
1783L, 1788L, 1783L, 1786L, 1788L, 1786L, 1783L, 1784L, 1788L,
1787L, 1785L, 1785L, 1784L, 1782L, 1785L, 1785L, 1784L, 1781L,
1788L, 1785L, 1785L, 1786L, 1785L, 1786L, 1787L, 1781L, 1787L,
1782L, 1781L, 1786L, 1781L, 1783L, 1782L, 1786L, 1786L, 1788L,
1781L, 1781L, 1783L, 1784L, 1783L, 1781L, 1788L, 1785L, 1779L,
1786L, 1781L, 1781L, 1787L, 1784L, 1788L, 1782L, 1786L, 1787L,
1780L, 1785L, 1788L, 1783L, 1783L, 1785L, 1780L, 1780L, 1788L,
1784L, 1782L, 1787L, 1782L, 1783L, 1782L, 1782L, 1786L, 1784L,
1788L, 1783L, 1785L, 1786L, 1781L, 1784L, 1782L, 1792L, 1784L,
1782L, 1780L, 1784L, 1782L, 1783L, 1785L, 1783L, 1787L, 1785L,
1785L, 1781L, 1787L, 1785L, 1787L, 1783L, 1780L, 1780L, 1785L,
1783L, 1786L, 1784L, 1783L, 1782L, 1782L, 1789L, 1783L, 1786L,
1785L, 1783L, 1787L, 1788L, 1783L, 1783L, 1786L, 1783L, 1786L,
1782L, 1787L, 1782L, 1784L, 1782L, 1786L, 1787L, 1788L, 1788L,
1782L, 1786L, 1780L, 1785L, 1779L, 1779L, 1779L, 1779L, 1779L,
1783L, 1783L, 1782L, 1786L, 1785L, 1783L, 1781L, 1780L, 1784L,
1779L, 1785L, 1780L, 1779L, 1780L, 1779L, 1780L, 1782L, 1783L,
1781L, 1785L, 1783L, 1786L, 1779L, 1781L, 1781L, 1781L, 1780L,
1781L, 1780L, 1780L, 1780L, 1780L, 1781L, 1781L, 1781L, 1781L,
1781L, 1781L, 1780L, 1780L, 1781L, 1786L, 1780L, 1781L, 1780L,
1780L, 1795L, 1790L, 1793L, 1786L, 1784L, 1782L, 1784L, 1783L,
1788L, 1787L, 1786L, 1778L, 1783L, 1786L, 1784L, 1783L, 1785L,
1786L, 1780L, 1786L, 1786L, 1785L, 1782L, 1782L, 1786L, 1784L,
1787L, 1789L, 1788L, 1782L, 1783L, 1787L, 1783L, 1786L, 1782L,
1782L, 1786L, 1783L, 1785L, 1788L, 1788L, 1787L, 1783L, 1788L,
1783L, 1782L, 1782L, 1786L, 1789L, 1784L, 1785L, 1780L, 1781L,
1786L, 1786L, 1788L, 1785L, 1781L, 1786L, 1785L, 1782L, 1780L,
1784L, 1781L, 1779L, 1785L, 1786L, 1779L, 1782L, 1783L, 1783L,
1780L, 1783L, 1782L, 1786L, 1779L, 1780L, 1781L, 1786L, 1783L,
1785L, 1786L, 1782L, 1787L, 1784L, 1786L, 1786L, 1785L, 1786L,
1785L, 1784L, 1787L, 1784L, 1784L, 1788L, 1785L, 1784L, 1782L,
1783L, 1785L, 1782L, 1787L, 1781L, 1782L, 1785L, 1782L, 1786L,
1785L, 1787L, 1787L, 1786L, 1787L, 1780L, 1785L, 1784L, 1783L,
1782L, 1787L, 1779L, 1779L, 1786L, 1780L, 1787L, 1781L, 1778L,
1782L, 1779L, 1778L, 1780L, 1786L, 1779L, 1785L, 1784L, 1779L,
1784L, 1781L, 1784L, 1782L, 1785L, 1783L, 1781L, 1786L, 1780L,
1781L, 1780L, 1781L, 1784L, 1787L, 1779L, 1786L, 1781L, 1782L,
1780L, 1782L, 1786L, 1786L, 1787L, 1782L, 1788L, 1783L, 1785L,
1788L, 1785L, 1786L, 1787L, 1787L, 1785L, 1784L, 1784L, 1787L,
1788L, 1787L, 1782L, 1786L, 1784L, 1783L, 1786L, 1782L, 1782L,
1789L, 1784L, 1783L, 1793L, 1794L, 1793L, 1787L, 1783L, 1782L,
1786L, 1784L, 1787L, 1783L, 1783L, 1786L, 1789L, 1781L, 1785L,
1784L, 1788L, 1789L, 1782L, 1784L, 1784L, 1787L, 1787L, 1783L,
1784L, 1784L, 1783L, 1786L, 1783L, 1785L, 1788L, 1787L, 1788L,
1783L, 1784L, 1783L, 1783L, 1781L, 1784L, 1786L, 1782L, 1791L,
1787L, 1781L, 1787L, 1785L, 1787L, 1783L, 1785L, 1782L, 1784L,
1787L, 1784L, 1783L, 1783L, 1783L, 1784L, 1786L, 1787L, 1782L,
1789L, 1782L, 1782L, 1783L, 1782L, 1783L, 1783L, 1784L, 1783L,
1788L, 1786L, 1782L, 1784L, 1781L, 1786L, 1782L, 1779L, 1780L,
1783L, 1780L, 1786L, 1780L, 1786L, 1784L, 1784L, 1785L, 1777L,
1783L, 1780L, 1784L, 1783L, 1780L, 1784L, 1781L, 1785L, 1785L,
1781L, 1780L, 1786L, 1788L, 1787L, 1791L, 1789L, 1787L, 1787L,
1793L, 1781L, 1784L, 1781L, 1784L, 1779L, 1784L, 1784L, 1784L,
1780L, 1780L, 1784L, 1787L, 1782L, 1781L, 1784L, 1787L, 1785L,
1781L, 1785L, 1783L, 1782L, 1782L, 1785L, 1781L, 1782L, 1786L,
1788L, 1780L, 1787L, 1784L, 1788L, 1787L, 1784L, 1784L, 1785L,
1780L, 1786L, 1780L, 1780L, 1788L, 1782L, 1793L, 1783L, 1785L,
1785L, 1781L, 1783L, 1783L, 1787L, 1783L, 1784L, 1784L, 1783L,
1785L, 1787L, 1788L, 1784L, 1787L, 1787L, 1785L, 1786L, 1784L,
1786L, 1784L, 1786L, 1787L)
Z <- c(1788L, 1792L, 1787L, 1791L, 1790L, 1789L, 1791L, 1788L, 1792L,
1794L, 1793L, 1791L, 1792L, 1787L, 1792L, 1792L, 1791L, 1788L,
1792L, 1794L, 1791L, 1788L, 1794L, 1794L, 1789L, 1792L, 1788L,
1793L, 1792L, 1788L, 1786L, 1787L, 1791L, 1786L, 1788L, 1792L,
1787L, 1785L, 1786L, 1790L, 1788L, 1790L, 1792L, 1788L, 1787L,
1790L, 1786L, 1792L, 1789L, 1787L, 1786L, 1787L, 1793L, 1793L,
1792L, 1789L, 1786L, 1795L, 1793L, 1788L, 1791L, 1790L, 1792L,
1790L, 1794L, 1792L, 1789L, 1791L, 1794L, 1788L, 1788L, 1794L,
1794L, 1792L, 1790L, 1789L, 1788L, 1788L, 1789L, 1789L, 1794L,
1790L, 1787L, 1791L, 1789L, 1791L, 1790L, 1783L, 1782L, 1781L,
1781L, 1793L, 1788L, 1795L, 1793L, 1789L, 1791L, 1793L, 1792L,
1792L, 1784L, 1781L, 1782L, 1795L, 1788L, 1789L, 1793L, 1793L,
1792L, 1791L, 1791L, 1790L, 1794L, 1792L, 1796L, 1793L, 1791L,
1793L, 1790L, 1794L, 1795L, 1788L, 1789L, 1790L, 1790L, 1793L,
1790L, 1795L, 1793L, 1792L, 1778L, 1784L, 1782L, 1791L, 1793L,
1791L, 1794L, 1793L, 1793L, 1790L, 1792L, 1788L, 1786L, 1790L,
1794L, 1794L, 1791L, 1787L, 1792L, 1790L, 1791L, 1799L, 1790L,
1788L, 1795L, 1791L, 1792L, 1787L, 1788L, 1792L, 1795L, 1786L,
1785L, 1778L, 1794L, 1790L, 1794L, 1792L, 1793L, 1793L, 1793L,
1792L, 1791L, 1794L, 1791L, 1788L, 1789L, 1790L, 1794L, 1793L,
1793L, 1791L, 1791L, 1795L, 1790L, 1790L, 1788L, 1793L, 1793L,
1786L, 1788L, 1795L, 1790L, 1781L, 1781L, 1782L, 1786L, 1794L,
1787L, 1787L, 1782L, 1786L, 1783L, 1788L, 1784L)
【问题讨论】:
-
这是一个优化问题。您可以查看
lpSolve,对 X、Y 和 Z 中的每个元素使用 15 个二进制变量。X = 2 的二进制变量 xi 的总和,对于 Y = 4 的二进制变量 yi 和 zi Z, 3. obj fn 最小abs(sum(xi*X+yi*Y+zi*Z) - 50) -
感谢 lpSolve 软件包,我去看看。
-
在下面看到您的评论。如果由于维度问题而使用 lpSolve,它也可能会很慢。你可能需要使用某种启发式方法。
标签: r