public Tuple<Double, Double> alphabeta(Graph g, double depth, Tuple<Double, Double> alpha,
			Tuple<Double, Double> beta, boolean yazidi) {
			  if (cutoffTest(depth,g))
			     return Eval(g);
			  if (yazidi){
			      for( ActionGraph ag: g.getActions(getAgent(0, g))){//TODO CHECK
			    	  	Graph g2 = ag.getG();
			    	  	Action child = ag.getAct();
			    	  	Tuple<Double, Double> alphabeta = alphabeta(g2.apply(child, getAgent(0, g2)), depth - 1, alpha, beta, false);
						alpha = Tuple.maxLeft(alpha, alphabeta);
			      		if (beta.val1 <= alpha.val1)
			              break;// (* beta cut-off *)
			      	}
			      return alpha;
			  }
			  else{//ISIS
				  for( ActionGraph ag: g.getActions(getAgent(1, g))){
					  	Graph g2 = ag.getG();
			    	  	Action child = ag.getAct();
			    	  	Tuple<Double, Double> alphabeta = alphabeta(g2.apply(child, getAgent(1, g2)), depth - 1, alpha, beta, true);
			    	  	beta = Tuple.minLeft(beta, alphabeta);
			          if (beta.val1 <= alpha.val1)
			              break;// (* alpha cut-off *)
			      	}
			      return beta;
			    }
			  }