Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Philosophy of artificial intelligence wikipedia , lookup
Intelligence explosion wikipedia , lookup
Ethics of artificial intelligence wikipedia , lookup
Multi-armed bandit wikipedia , lookup
Existential risk from artificial general intelligence wikipedia , lookup
History of artificial intelligence wikipedia , lookup
Using Multi-Agent Strategies to Solve a BlocksWorld Artificial Intelligence Problem Aaron Fetterman1 and Dr. Susan Conry2 Department of Software Engineering Blocks World is a simple artificial intelligence problem which is used for exercise in planning artificial intelligence solutions. In Blocks World, the goal is to convert all the stacks of blocks from an initial configuration to another configuration of blocks stacked upon one another. They are moved by a robot arm, which can only move one block at a time, from the top of one stack, to the top of another (or to the table to start a new stack). There is no limit to the number of stacks which can be made on the table. There has been little research into how distributed, multi-agent strategies might transform the problem. Distributed methods may bring a new level of scalability to the problem, with each agent able to act for its self. However, the limiting factor of a single robot arm to move blocks may severely cripple scalability. Three different plans for solving Blocks World problems will be used for a comparative analysis of efficiency: unstack-stack, stack-based, and block-based. Efficiency will be determined by number of moves, and the time it takes for the program to execute. The unstackstack plan serves as the base line; in it, every block is unstacked and placed on the table. Then, the stacks are rebuilt from the bottom up. It is the least efficient method because it involves moving almost every block twice. A stack-based plan determines what blocks to move based on the configuration of each stack. In this way, each stack acts like a coalition of boxes, the box on the bottom acting as the leader and spokesman for the entire stack. The further a stack is from being in the configuration it should be, the more likely the robot arm is to unstack from it. In the block-based plan, each block calculates its own suitability individually, but also inherits the scoring from all the blocks below it, in a one-parent-one-child hierarchical setup. In this way, a block that is ready to be placed, but buried beneath a stack of blocks, will promote the importance of the blocks above it. Both the stack-based and the block-based plans are more efficient than unstack-stack because the blocks keep track of how well towards their final configuration they are, and blocks that are ready to be placed can be moved only once instead of twice. The plans will be tested with randomly generated initial and final configurations of blocks. The configurations will range in size from twenty-five to fifty-thousand blocks, with 1 Class of 2008, Software Engineering, Clarkson University. Honors Program research with Dr. Conry. Oral presentation. 2 Professor, Electrical and Computer Engineering varying average stack heights. The multi-agent systems will be simulated with object oriented programming. Further research could expand upon the solutions or the problem. Although the plans will be tested by how much time they take to complete the problem (a measure of how efficient the plan is in how long it takes to decide the right move), efficiency of the programs could be improved for speed. Currently, the plans are built for flexibility, to accommodate changes and improvements to the plan, but parts, in particular messages, could be sped up significantly through a variety of measures. By changing the parameters of the problem, it could be redefined as a more conventional distributed problem. With multiple robot arms, the blocks could be moved much quicker and with more efficiency, and each robot arm could manage sections of the table on its own. Further research could also be expanded to use an agent architecture to have the block agents exist totally separately, instead of the simulated separation that happens in the object oriented programming. This would also improve the speed of the solutions.