My task is to develop an algorithm for the optimal arrangement of cylindrical objects in cartons. The algorithm is to have the task of placing as many products as possible into cartons, at the same time not exceeding the capacity of the carton and the permissible weight specified for the carton. Initially, I accept one size of cardboard and many different sizes and weights of products.
I made a little research and encountered a knapsack algorithm that seems the best to use for my example. This algorithm, however, most often uses only one size for objects and its value - in my case I have three dimensions X, Y, Z.
Do you know any other, better algorithms for my task? What is best to start writing the application? BTW the application would be in Python.