Tag: 难题

哪个是最好的algorithm来提供解决15难题的动作?

我正在努力寻找一个随机生成的“15难题”的解决scheme步骤。 所以告诉我哪个是最好的algorithm来快速解决它。 提供给我的方法来做到这一点。 我正在做一个包含4 * 4数组的节点树,遍历所有尚未处理的节点,当我得到解决scheme时,我停止迭代。 在viewcontroller我有一些代码为 – (IBAction)getSolution:(id)sender { while (!appDelegate.isResultFound) { TreeNode *node=[self nodeWithLowestCostAndUnproceessedInRootNode]; [node expandNodeToChilds]; //break; } NSLog(@"Result Found"); if([appDelegate.result isEqualToString:@""]) NSLog(@"No move required"); else NSLog(@"%@",appDelegate.result); } -(TreeNode*)nodeWithLowestCostAndUnproceessedInRootNode{ TreeNode *node1; int lowestCost=200; for (TreeNode *node in appDelegate.treeNodes) { if([node myHeuristicsFunction]<lowestCost&&node.isProcessed==NO){ node1=node; lowestCost=[node.cost intValue]; } } return node1;} 并在节点类我扩大了节点(除了家长使用的移动) -(void)expandNodeToChilds{ [self checkMovesForEmptyPlace]; if(top.x>=0){ […]