This repository contains all the materials and documentation related to my experiences and projects in the Computational Intelligence course. As a student, I was deeply engaged with the course material, which explored various techniques and approaches for creating intelligent systems.
Your solution is one of the cleanest and most readable I've seen so far (at least between the ones I saw), there are no comments in the code but it's so clear that they're not needed and anyway the README is already perfectly clear and exhaustive. The cost function is very "simple", but at the same time very efficient.
One little thing I may say, but it’s not fundamental in your case, is the reduction of the search space removing duplicates between the initial list of lists, me and my team didn't think about it before seeing the Professor doing it in his solution. It could reduce (if efficiently done) a little bit the computational time in finding the min between the results of the application of the cost function to the list of lists, avoiding to repeat it multiple times for the same candidate list, but your algorithm is already very fast and finds a very good solution up to N=1000 (w=2878 is really good considering the computational time and the number of explored nodes).
Starting from N=20 it doesn't find the optimal solution (w=23), but as I said it's so well working up to N=1000 that I think the computational time and the possibility of finding a solution is a good compromise.
Well done!
Your solution is one of the cleanest and most readable I've seen so far (at least between the ones I saw), there are no comments in the code but it's so clear that they're not needed and anyway the README is already perfectly clear and exhaustive. The cost function is very "simple", but at the same time very efficient. One little thing I may say, but it’s not fundamental in your case, is the reduction of the search space removing duplicates between the initial list of lists, me and my team didn't think about it before seeing the Professor doing it in his solution. It could reduce (if efficiently done) a little bit the computational time in finding the min between the results of the application of the cost function to the list of lists, avoiding to repeat it multiple times for the same candidate list, but your algorithm is already very fast and finds a very good solution up to N=1000 (w=2878 is really good considering the computational time and the number of explored nodes). Starting from N=20 it doesn't find the optimal solution (w=23), but as I said it's so well working up to N=1000 that I think the computational time and the possibility of finding a solution is a good compromise. Well done!