java - 回溯算法最大化两个房间的盒子数量
问题描述
我们有两个特定大小的房间(我们称之为体积)。我们有许多盒子,我们必须在两个房间里放好。这些盒子有一定的尺寸,我们不能将任何盒子堆叠在一起。我们的目标是使用回溯算法最大化两个房间中的盒子数量。请问有什么建议吗?
解决方案
我想我的建议是将其视为树或图形结构中的搜索问题。你需要做的是继续尝试不同的路径,保存“最佳解决方案”。然而,这最终可能会尝试所有的可能性并且是 O(n!)。因此,我建议您使用某种修剪或逻辑,以免出现这种情况。即 Alpha-Beta 或一旦超过某些规范就不要追踪路径。
推荐阅读
- c# - 可查询的
.包含带有表达式参数的表达式树 - java - 如何将我的 Java 代码组织到类中
- docker - Docker有一个开放的端口,但配置文件中没有描述?
- android - WorkManager - 如何从定期工作中获取 OutputData
- azure-functions - SubOrchestrator 似乎没有完成
- kubernetes - 版本“kustomize.config.k8s.io/v1beta1”中没有匹配类型“Kustomization”
- circuit-breaker - HALF_OPEN 状态下断路器的行为如何(resilience4j)
- flutter - 如何在 Flutter web 上的桌面浏览器窗口的下角显示 url?
- networking - netgear ac2300 似乎正在杀死我的 VPN 流量如何诊断?
- javascript - vue2vis组件中如何触发鼠标悬停事件