利用α-β剪枝算法,对下图所示的博弈树进行搜索,搜索得到根节点选择的走步,以及没有必要进行评估的节点,并求出给出在何处发生了剪枝,以及剪枝的类型(属于α剪枝还是β剪枝)。
public interface Interface{
public void getStrategy(String InputFile);
}
import java.util.*;
import java.io.*;
public class AlphaBeta implements Interface{
final int MAX_INT=32767;
final int MIN_INT=-32768;
final int MAX=1; //极大节点
final int MIN=0; //极小节点
public class Node
{
private String name;
private int value;
private int leval;//节点判断极大层还是极小层
private String pFather;
private ArrayList<String> pChildren;
Node(String name)
{
this.name=name;
value=-1;
pFather=new String();
pChildren=new ArrayList<String>();
}
}
private ArrayList<Node> NodeTree;
private String jianzhi[];
private int count;
public void getStrategy(String inputFile){
NodeTree=new ArrayList<Node>();
jianzhi=new String[20];
count=0;
readTree(inputFile);
Alph_Beta(NodeTree.get(0).name);
System.out.println(count);
String bestRoute="";
for(int i=0;i<NodeTree.get(0).pChildren.size();i++)
{
if(NodeTree.get(0).value==NodeTree.get(search(NodeTree.get(0).pChildren.get(i))).value)
{
bestRoute=NodeTree.get(0).name+" "+NodeTree.get(0).value+" "+NodeTree.get(search(NodeTree.get(0).pChildren