潘柯文&&王蕊首次上传代码#21
Closed
18822149379 wants to merge 2 commits into
Closed
Conversation
1.设计思路: (1)初始化轴点为(0,0,0),对所有要放入的物体按照体积大小进行排序,在放置过程中,优先放置体积大的物体。 (2)在第一个物体放置完毕后,之后每放置一个物体之前,首先生成一个新的轴点。这个轴点是按照上一个物体的轴点在依次按照 x 轴,y 轴,z 轴三个方向上生成的三个可放置轴点。 (3)在放置下一个物体之前,首先将物体的最长边旋转到与容器的最长边平行的位置上,如果一个容器尺寸是 10×9×8,即长度大于宽度,宽度大于高度;此时有一个物品尺寸是 1×2×3,那么就将物品旋转为 3×2×1,再放置物体。也就是保持物体的最长边贴着容器的最长边放置。 (4)如果物品旋转成 3×2×1 无法放入容器,那就将物体旋转成 2×1×3或者 2×3×1,也就是将第二长边对应箱子的长边来放置;如果还是无法放入的话,就将物体旋转成 1×3×2 或者 1×2×3,也就是将第三长边来对应箱子的长边来放置。 (5)如果在三个轴点上都尝试了 6 种不同的旋转方式,都无法将物品放入容器中,那么就将物品放入未放置列表中,跳过该物品处理下一个。 (6)重复 2-4 步,处理完所有的物品之后,所有可放置的物品已经被放入箱子中,同时也有一些物品保存在了未放置列表中,此时再来尝试处理这些未放置的物品。 2.运行描述 (1)算法主要分为三个文件。utility.py 文件主要设置辅助类的工具函数,loading.py 文件引用了 utility.py,主要就是装箱算法的核心函数,main.py 文件引用了 loading.py,主要就是设置箱子和物品的参数数据。 (2)在main.py文件中修改测试数据并运行即可得到运行结果。
Owner
|
为什么上传的是rar文件 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
潘柯文&&王蕊首次上传代码
1.设计思路:
(1)初始化轴点为(0,0,0),对所有要放入的物体按照体积大小进行排序,在放置过程中,优先放置体积大的物体。
(2)在第一个物体放置完毕后,之后每放置一个物体之前,首先生成一个新的轴点。这个轴点是按照上一个物体的轴点在依次按照 x 轴,y 轴,z 轴三个方向上生成的三个可放置轴点。
(3)在放置下一个物体之前,首先将物体的最长边旋转到与容器的最长边平行的位置上,如果一个容器尺寸是 10×9×8,即长度大于宽度,宽度大于高度;此时有一个物品尺寸是 1×2×3,那么就将物品旋转为 3×2×1,再放置物体。也就是保持物体的最长边贴着容器的最长边放置。
(4)如果物品旋转成 3×2×1 无法放入容器,那就将物体旋转成 2×1×3或者 2×3×1,也就是将第二长边对应箱子的长边来放置;如果还是无法放入的话,就将物体旋转成 1×3×2 或者 1×2×3,也就是将第三长边来对应箱子的长边来放置。
(5)如果在三个轴点上都尝试了 6 种不同的旋转方式,都无法将物品放入容器中,那么就将物品放入未放置列表中,跳过该物品处理下一个。
(6)重复 2-4 步,处理完所有的物品之后,所有可放置的物品已经被放入箱子中,同时也有一些物品保存在了未放置列表中,此时再来尝试处理这些未放置的物品。
2.运行描述
(1)算法主要分为三个文件。utility.py 文件主要设置辅助类的工具函数,loading.py 文件引用了 utility.py,主要就是装箱算法的核心函数,main.py 文件引用了 loading.py,主要就是设置箱子和物品的参数数据。
(2)在main.py文件中修改测试数据并运行即可得到运行结果。