R 二维背包或方形包装的一种变体

R 二维背包或方形包装的一种变体,r,algorithm,optimization,mathematical-optimization,combinatorics,R,Algorithm,Optimization,Mathematical Optimization,Combinatorics,我正在处理一个优化问题,我把它归类为一个组合问题。现在,我知道这是背包问题的2D变体,但请耐心听我说: 如果有一个区域被建模为由大小相等的单元组成的网格,那么如果每个对象都有其成本和收益,并且目标是对具有最大收益/成本比的对象进行排列,如何在该网格区域上放置一定数量的不同大小的方形对象: 对象1:1x1正方形,成本=800,价值=2478336 对象2:2x2平方成本=2000价值=7565257 对象3:3x3平方成本=3150价值=14363679 对象3具有最佳的价值/成本比,因此我认

我正在处理一个优化问题,我把它归类为一个组合问题。现在,我知道这是背包问题的2D变体,但请耐心听我说:

如果有一个区域被建模为由大小相等的单元组成的网格,那么如果每个对象都有其成本和收益,并且目标是对具有最大收益/成本比的对象进行排列,如何在该网格区域上放置一定数量的不同大小的方形对象:

  • 对象1:1x1正方形,成本=800,价值=2478336
  • 对象2:2x2平方成本=2000价值=7565257

  • 对象3:3x3平方成本=3150价值=14363679

对象3具有最佳的价值/成本比,因此我认为该方法将是贪婪的方法,将尽可能多的较大正方形放在第一位,但仍然存在许多取决于区域大小的最佳解决方案

此外,方形对象不能重叠。 我使用R来解决这个问题,软件包adagio有用于单个和多个背包的算法,但不用于2D背包问题。因为我是优化和编程方面的新手,我不确定是否有办法用R解决这个问题,有人能帮忙吗?
谢谢

首先,我不是R和慢板方面的专家。第二,我认为你的问题并不完全是2d背包,它看起来像是的一个变体,所以它需要一种不同的方法

因此,首先,请查看这个令人敬畏的列表,特别是以下部分:

  • 优化中的特定应用(例如,禁忌搜索可能对您有用)
  • 数学规划解算器/与开源优化器的接口(肯定可以解决您的任务)
  • 全局和随机优化(其中一些包可用于解决您的任务)

  • 如果你不与R联系在一起,就当作一个解决者。它非常易于安装/使用,并且在内存/时间消耗方面非常高效。此外,还有很多很好的例子说明了如何使用它。

    是的,你可能是对的,这不是背包问题。虽然背包被描述为包装问题的一种变体,但它没有考虑几何结构,因此在这种情况下可能没有意义。我已经考虑过在正方形问题中填充正方形的变体,可能应该朝这个方向走。谢谢大家!@Dragana我的观点是,你们不太可能重复使用柔板中的东西——包装问题更为普遍是的,我绝对同意。我已经熟悉Cran优化包存储库,我想我的问题在于公式本身,因为没有足够的知识来解决这类问题。@Dragana Try minizing,它非常简单。您将获得一些经验,了解它是如何工作的以及该做什么,然后切换到R包。检查此项。