Robert has moved into a new house. He has a number N of boxes from his previous home. Each box bi has a volume vi. He must fit those boxes in 2 rooms of the house and is not allowed to put any box outside of those two rooms yet. The volume of the room1 is V1 and the volume of the room2 is V2. The total volume of the boxes (v1+…+vn) is greater than V1+V2. So, He is not going to be able to fit all the boxes, but he wants to maximize the numbers of boxes in the 2 rooms (or minimize the boxes left outside of the rooms). He is an expert in robotics and got 2 robotic agents that can do the moving for them. The agents can move around the 2 rooms and the house, they can detect the boxes and their size with their sensors and can get them and place them in the rooms.
The successor function embedded in the software that controls the agents has been defined to pick up boxes at random and place them in any of the rooms also at random until there is no more space in the rooms. You need to define a new successor function by using an algorithm we have covered in class and hand the implementation to Robert, so he can insert it in the software that control the robots.
- Explain why the robots are not doing a good job when choosing the boxes at random
- What kind of agents are in the system? Why?
- Formulate the problem in detail. Describe well the possible states. (Draw a generic tree)
- Define the kind of environment Robert is dealing with (continuos? , deterministic?…..
- Define the PEAS.
- According to the problem, the goal formulation and the states define an algorithm that implements the successor function. (Choose one of the algorithms we saw in class).
- Implement the pseudocode algorithm in a high-level language. (Java, C++, Python, C) . Pay attention to the data structure you choose to keep the states the function is going through.
- Comment the complexity, the completeness and the results of the algorithm.
Submit just one file with all the info (code included).