public BeliefState(Problem p) { Problem = p; m_sPredecessor = null; m_lObserved = new HashSet<Predicate>(); Unknown = new HashSet<Predicate>(); m_lHiddenFormulas = new List<CompoundFormula>(); m_lOriginalHiddenFormulas = new List<CompoundFormula>(); m_dMapPredicatesToFormulas = new Dictionary<GroundedPredicate, List<int>>(); m_lEfficientHidden = new List<EfficientFormula>(); m_dMapPredicatesToIndexes = new Dictionary<GroundedPredicate, int>(); m_dMapIndexToPredicate = new List<GroundedPredicate>(); m_dMapPredicateToEfficientFormula = new List<List<int>>(); AvailableActions = new List<Action>(); UnderlyingEnvironmentState = null; m_cfCNFHiddenState = new CompoundFormula("and"); FunctionValues = new Dictionary<string, double>(); foreach (string sFunction in Problem.Domain.Functions) { FunctionValues[sFunction] = 0.0; } bsCOUNT++; ID = bsCOUNT; }
public BeliefState(BeliefState sToCopy) : this(sToCopy.Problem) { m_lHiddenFormulas = new List<CompoundFormula>(sToCopy.Hidden); m_lOriginalHiddenFormulas = new List<CompoundFormula>(sToCopy.m_lOriginalHiddenFormulas); m_dMapPredicatesToFormulas = new Dictionary<GroundedPredicate, List<int>>(); foreach (KeyValuePair<GroundedPredicate, List<int>> pair in sToCopy.m_dMapPredicatesToFormulas) { m_dMapPredicatesToFormulas[pair.Key] = new List<int>(); foreach (int i in pair.Value) { m_dMapPredicatesToFormulas[pair.Key].Add(i); } } m_dMapPredicatesToIndexes = new Dictionary<GroundedPredicate, int>(sToCopy.m_dMapPredicatesToIndexes); m_dMapPredicateToEfficientFormula = new List<List<int>>(); foreach (List<int> list in sToCopy.m_dMapPredicateToEfficientFormula) { List<int> newList = new List<int>(); foreach (int i in list) { newList.Add(i); } m_dMapPredicateToEfficientFormula.Add(newList); } m_lObserved = new HashSet<Predicate>(sToCopy.Observed); Unknown = new HashSet<Predicate>(sToCopy.Unknown); m_cfCNFHiddenState = sToCopy.m_cfCNFHiddenState; /*m_sPredecessor = sToCopy.m_sPredecessor; AvailableActions = new List<Action>(sToCopy.AvailableActions); m_dMapIndexToPredicate = new List<GroundedPredicate>(sToCopy.m_dMapIndexToPredicate); UnderlyingEnvironmentState = sToCopy.UnderlyingEnvironmentState; if (sToCopy.m_lProblematicTag != null) m_lProblematicTag = new List<Predicate>(sToCopy.m_lProblematicTag); m_lCurrentTags = new List<List<Predicate>>(); foreach (List<Predicate> lp in sToCopy.m_lCurrentTags) { m_lCurrentTags.Add(new List<Predicate>(lp)); }*/ m_dSATVariables = sToCopy.m_dSATVariables; m_lSATVariables = sToCopy.m_lSATVariables; bsCOUNT++; ID = bsCOUNT; }
public void WriteKnowledgeProblem(string sFileName, BeliefState bs) { StreamWriter sw = new StreamWriter(sFileName); sw.WriteLine("(define (problem K" + Problem.Name + ")"); sw.WriteLine("(:domain K" + Problem.Domain.Name + ")"); sw.WriteLine("(:init"); //ff doesn't like the and (and"); /* foreach (GroundedPredicate gpKnow in Problem.Known) { sw.Write("(K" + gpKnow.Name); foreach (Constant c in gpKnow.Constants) sw.Write(" " + c.Name); sw.WriteLine(")"); } * */ foreach (GroundedPredicate gp in bs.Observed) { sw.Write("(K" + gp.Name); foreach (Constant c in gp.Constants) sw.Write(" " + c.Name); sw.WriteLine(")"); } foreach (GroundedPredicate gp in Predicates) { sw.Write("(" + gp.Name); foreach (Constant c in gp.Constants) sw.Write(" " + c.Name); sw.WriteLine(")"); } sw.WriteLine(")"); HashSet<Predicate> lGoalPredicates = new HashSet<Predicate>(); Problem.Goal.GetAllPredicates(lGoalPredicates); string sGoal = Problem.Goal.ToString(); sw.WriteLine("(:goal " + sGoal + ")"); /* Not sure whether we have to KNOW that we have the goal sw.Write("(:goal (and " + sGoal); foreach (Predicate p in lGoalPredicates) Problem.Domain.WriteKnowledgePredicate(sw, p); sw.WriteLine("))"); */ sw.WriteLine(")"); sw.Close(); }
public abstract void UpdateState(BeliefState bs);
public virtual PartiallySpecifiedState Clone() { BeliefState bsCopy = new BeliefState(m_bsInitialBelief); PartiallySpecifiedState bsClone = new PartiallySpecifiedState(this, bsCopy); return bsClone; }
public PartiallySpecifiedState(PartiallySpecifiedState original, BeliefState bsInitial) { ID = STATE_COUNT++; m_nPlan = original.m_nPlan; m_lHistory = new List<string>(original.m_lHistory); ChildCount = original.ChildCount; if (original.m_lObserved != null) { m_lObserved = new HashSet<Predicate>(); foreach (Predicate p in original.m_lObserved) { m_lObserved.Add(p); } } else m_lObserved = null; if (original.m_lHidden != null) { m_lHidden = new HashSet<Predicate>(); foreach (Predicate p in original.m_lHidden) { m_lHidden.Add(p); } } else m_lHidden = null; if (original.AvailableActions != null) { AvailableActions = new List<Action>(); foreach (Action p in original.AvailableActions) { AvailableActions.Add(p); } } else AvailableActions = null; if (bsInitial == null) m_bsInitialBelief = new BeliefState(original.m_bsInitialBelief); else m_bsInitialBelief = bsInitial; if (original.m_sPredecessor != null) m_sPredecessor = new PartiallySpecifiedState(original.m_sPredecessor, m_bsInitialBelief); /*PartiallySpecifiedState tempPredecessorOriginal = original.m_sPredecessor; PartiallySpecifiedState tempPredecessorNew = m_sPredecessor; //m_sPredecessor while (tempPredecessorOriginal != null) { tempPredecessorNew = new PartiallySpecifiedState() }*/ if (original.GeneratingAction != null) GeneratingAction = original.GeneratingAction.Clone(); else GeneratingAction = null; if (original.GeneratingObservation != null) GeneratingObservation = original.GeneratingObservation.Clone(); else GeneratingObservation = null; Problem = original.Problem; if (original.UnderlyingEnvironmentState != null) UnderlyingEnvironmentState = original.UnderlyingEnvironmentState.Clone(); else UnderlyingEnvironmentState = null; //m_bsInitialBelief = original.m_bsInitialBelief; Time = original.Time; if (original.m_cfCNFBelief != null) m_cfCNFBelief = new CompoundFormula(original.m_cfCNFBelief); else m_cfCNFBelief = null; if (original.m_lFailureTag != null) m_lFailureTag = new List<Predicate>(original.m_lFailureTag); else m_lFailureTag = null; if (original.m_lPreviousTags != null) m_lPreviousTags = new List<List<Predicate>>(original.m_lPreviousTags); else m_lPreviousTags = null; if (original.FunctionValues != null) FunctionValues = new Dictionary<string, double>(original.FunctionValues); else FunctionValues = null; }
public PartiallySpecifiedState(PartiallySpecifiedState sPredecessor, Action aGeneratingAction) { ID = STATE_COUNT++; ChildCount = 0; m_bsInitialBelief = new BeliefState(sPredecessor.m_bsInitialBelief); Problem = m_bsInitialBelief.Problem; AvailableActions = new List<Action>(); UnderlyingEnvironmentState = null; if (Problem.Domain.IsSimple) { m_sPredecessor = sPredecessor; } else { m_sPredecessor = new PartiallySpecifiedState(sPredecessor, m_bsInitialBelief); //recursively copies the entire history } GeneratingAction = aGeneratingAction; m_lObserved = new HashSet<Predicate>(sPredecessor.Observed); m_lHidden = new HashSet<Predicate>(sPredecessor.m_lHidden); ForgetPotentialEffects(); FunctionValues = new Dictionary<string, double>(); Time = sPredecessor.Time + 1; foreach (KeyValuePair<string, double> p in sPredecessor.FunctionValues) FunctionValues[p.Key] = p.Value; m_lHistory = new List<string>(sPredecessor.m_lHistory); m_lHistory.Add( GeneratingAction.Name); }
public PartiallySpecifiedState(BeliefState bs) { ID = STATE_COUNT++; Problem = bs.Problem; m_sPredecessor = null; m_lObserved = new HashSet<Predicate>(bs.Observed); AvailableActions = new List<Action>(); UnderlyingEnvironmentState = bs.UnderlyingEnvironmentState; m_bsInitialBelief = bs; ChildCount = 0; m_lHidden = new HashSet<Predicate>(); foreach (CompoundFormula cf in bs.Hidden) { HashSet<Predicate> lCurrent = new HashSet<Predicate>(); cf.GetAllPredicates(lCurrent); foreach (Predicate p in lCurrent) { if (p.Negation) { if (!m_lHidden.Contains(p.Negate())) m_lHidden.Add(p.Negate()); } else if (!m_lHidden.Contains(p)) m_lHidden.Add(p); } } /* as long as there are no non-deterministic effects there is no need to maintain all knowledge foreach (Predicate p in bs.Observed) { if (!Problem.Domain.AlwaysKnown(p)) cfBelief.AddOperand(p); } * */ FunctionValues = new Dictionary<string, double>(); foreach (string sFunction in Problem.Domain.Functions) { FunctionValues[sFunction] = m_bsInitialBelief.FunctionValues[sFunction]; } m_lHistory = new List<string>(); }
//public string agentMove(Kernel.Point pLoc, Kernel.Point cLoc) //{ // switch (cLoc.Column - pLoc.Column) // { // case 1: // return "Agent Moves Right"; // case -1: // return "Agent Moves Loft"; // } // switch (cLoc.Row - pLoc.Row) // { // case 1: // return "Agent Moves Up"; // case -1: // return "Agent Moves Down"; // } // return "Agent Didnt Move"; //} public override void UpdateState(BeliefState bs) { Belief = bs; int iSize = GetGridSize(); //your code here Kernel.Matrix bMatrix = new Kernel.Matrix(new Kernel.Point((byte)iSize, (byte)iSize)); delay(); int iX = 0, iY = 0; GetAgentLocation(out iX, out iY); for (int i = 1; i <= iSize; i++) for (int j = 1; j <= iSize; j++) { if (IsLocationBlocked(i, j)) { Console.WriteLine("Blocked " + i + "," + j); // if (board.Created) board.addConsoleText("Blocked " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.LCellType.Fix); } else if (IsPossibleLocation(i, j)) { Console.WriteLine("Agent might be at " + i + "," + j); // if (board.Created) board.addConsoleText("Agent might be at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.LCellType.PAgent); } else bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.LCellType.None); } Console.WriteLine("Agent at " + iX + "," + iY); // if (board.Created) board.addConsoleText(idx + ") Observation: " + obs + "\r\n Action: " + act + "\r\n Agent at: " + iX + "," + iY + "\r\n ----------------------------------------"); obs = ""; act = ""; //if (board.Created) board.addConsoleText(idx + ") " + "Observed:" + GetObservation(bs) + "\r\n Action:" + agentMove(cLoc, new Kernel.Point((byte)iY, (byte)iX)) + "\r\n(Agent at " + iX + "," + iY + ")\r\n ----------------------------------------"); //if (locFlg) { if (board.Created) board.addConsoleText(idx+ ") " + agentMove(cLoc, new Kernel.Point((byte)iY, (byte)iX)) + " (Agent at " + iX + "," + iY+ ")\r\n ----------------------------------------"); } //else //{ // locFlg = true; // if (board.Created) board.addConsoleText(idx + ") Agent at " + iX + "," + iY + "\r\n ----------------------------------------"); //} idx++; cLoc = new Kernel.Point((byte)iY, (byte)iX); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - iY), (byte)(iX - 1)), Kernel.LCellType.Agent); //if (board.Created) // { board.setMatrix(bMatrix); if (board.fF == true) { board.fF = false; board.stopSpeed(); } // } }
//public string agentMove(Kernel.Point pLoc, Kernel.Point cLoc) //{ // switch (cLoc.Column - pLoc.Column) // { // case 1: // return "Agent Moves Right"; // case -1: // return "Agent Moves Loft"; // } // switch (cLoc.Row - pLoc.Row) // { // case 1: // return "Agent Moves Up"; // case -1: // return "Agent Moves Down"; // } // return "Agent Didnt Move"; //} public override void UpdateState(BeliefState bs) { Belief = bs; int iSize = GetGridSize(); //your code here Kernel.Matrix bMatrix = new Kernel.Matrix(new Kernel.Point((byte)iSize, (byte)iSize)); delay(); int iX = 0, iY = 0; GetAgentLocation(out iX, out iY); for (int i = 1; i <= iSize; i++) for (int j = 1; j <= iSize; j++) { if (IsUnNone(i, j) && !IsWall(i, j) && !IsDoor(i, j)) { //Console.WriteLine("UnNone " + i + "," + j); // if (board.Created) board.addConsoleText("Blocked " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.DCellType.UnNone); } else if (IsWall(i, j)) { if (i == iX && j == iY) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.DCellType.AWall); } else { //Console.WriteLine("Breeze at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.DCellType.Wall); } } else if (IsDoor(i, j)) { if (i == iX && j == iY) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.DCellType.ADoor); } else { //Console.WriteLine("Breeze at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.DCellType.Door); } } else if (IsGoal(i, j)) { if (i == iX && j == iY) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.DCellType.AGoal); } else { //Console.WriteLine("Breeze at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.DCellType.Goal); } } else if (i == iX && j == iY) bMatrix.addCellValue(new Kernel.Point((byte)(iSize - iY), (byte)(iX - 1)), Kernel.LCellType.Agent); else { bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.DCellType.None); } } Console.WriteLine("Agent at " + iX + "," + iY); // if (board.Created) board.addConsoleText(idx + ") Observation: " + obs + "\r\n Action: " + act + "\r\n Agent at: " + iX + "," + iY + "\r\n ----------------------------------------"); obs = ""; act = ""; //if (board.Created) board.addConsoleText(idx + ") " + "Observed:" + GetObservation(bs) + "\r\n Action:" + agentMove(cLoc, new Kernel.Point((byte)iY, (byte)iX)) + "\r\n(Agent at " + iX + "," + iY + ")\r\n ----------------------------------------"); //if (locFlg) { if (board.Created) board.addConsoleText(idx+ ") " + agentMove(cLoc, new Kernel.Point((byte)iY, (byte)iX)) + " (Agent at " + iX + "," + iY+ ")\r\n ----------------------------------------"); } //else //{ // locFlg = true; // if (board.Created) board.addConsoleText(idx + ") Agent at " + iX + "," + iY + "\r\n ----------------------------------------"); //} idx++; cLoc = new Kernel.Point((byte)iY, (byte)iX); //if (board.Created) // { board.setMatrix(bMatrix); if (board.fF == true) { board.fF = false; board.stopSpeed(); } // } }
//public string agentMove(Kernel.Point pLoc, Kernel.Point cLoc) //{ // switch (cLoc.Column - pLoc.Column) // { // case 1: // return "Agent Moves Right"; // case -1: // return "Agent Moves Loft"; // } // switch (cLoc.Row - pLoc.Row) // { // case 1: // return "Agent Moves Up"; // case -1: // return "Agent Moves Down"; // } // return "Agent Didnt Move"; //} public override void UpdateState(BeliefState bs) { Belief = bs; int iSize = GetGridSize(); //your code here Kernel.Matrix bMatrix = new Kernel.Matrix(new Kernel.Point((byte)iSize,(byte)iSize)); delay(); int iX = 0, iY = 0; GetAgentLocation(out iX, out iY); cLoc = new Kernel.Point((byte)iY, (byte)iX); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - iY), (byte)(iX - 1)), Kernel.MCellType.Agent); for (int i = 1; i <= iSize; i++) for (int j = 1; j <= iSize; j++) { //if (IsUnNone(i, j)) //{ // Console.WriteLine("UnNone " + i + "," + j); // // if (board.Created) board.addConsoleText("Blocked " + i + "," + j); // bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.UnNone); // bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j+1), (byte)(i - 1)), Kernel.MCellType.Pfeeling); // //bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i)), Kernel.MCellType.Pfeeling); // bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j - 1), (byte)(i - 1)), Kernel.MCellType.Pfeeling); // bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 2)), Kernel.MCellType.Pfeeling); //} if (IsPossibaleFeeling(i, j)&&!((i==iX)&&(j==iY))) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); // if (board.Created) board.addConsoleText("Agent might be at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Pfeeling); } if (IsUnSafe(i,j)) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); // if (board.Created) board.addConsoleText("Agent might be at " + i + "," + j); if (j > i) bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.UnNoneUp); if (j < i) bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.UnNoneDown); } else if (IsSafe(i, j)) { if (i == iX && j == iY) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); // if (board.Created) board.addConsoleText("Agent might be at " + i + "," + j); if (j > i) bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.ANoneUp); if (j < i) bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.ANoneDown); } else { //Console.WriteLine("Breeze and Stench at " + i + "," + j); // if (board.Created) board.addConsoleText("Agent might be at " + i + "," + j); if (j > i) bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.NoneUp); if (j < i) bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.NoneDown); } } else if ((IsFeelingBreeze(i, j))&&(IsFeelingStench(i, j))) { if (i == iX && j == iY) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze & Stench at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.AbreezeStench); } else { Console.WriteLine("Breeze and Stench at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze & Stench at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Feeling); } } else if (IsFeelingStench(i, j)) { if (i == iX && j == iY) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Stench at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Astench); } else { Console.WriteLine("Stench at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Stench at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Stench); } } else if (IsFeelingBreeze(i, j)) { if (i == iX && j == iY) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Abreeze); } else { Console.WriteLine("Breeze at " + i + "," + j); //if (board.Created) board.addConsoleText("Feeling Breeze at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Breeze); } } if (IsWumpus(i, j) && (IsPit(i, j))) { Console.WriteLine("wumpus & pit at " + i + "," + j); //if (board.Created) board.addConsoleText("Wumpus & Pit at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.WumpusPit); } else if (IsWumpus(i,j)) { Console.WriteLine("wumpus at " + i + "," + j); //if (board.Created) board.addConsoleText("wumpus at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Wumpus); } else if (IsPit(i, j)) { Console.WriteLine("pit at " + i + "," + j); //if (board.Created) board.addConsoleText("Pit at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Pit); } if (IsCrown(i, j)) { if (i == iX && j == iY) { //Console.WriteLine("Breeze and Stench at " + i + "," + j); // if (board.Created) board.addConsoleText("Agent might be at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Acrown); } else { Console.WriteLine("gold at " + i + "," + j); //if (board.Created) board.addConsoleText("Gold at at " + i + "," + j); bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.MCellType.Crown); } } //else bMatrix.addCellValue(new Kernel.Point((byte)(iSize - j), (byte)(i - 1)), Kernel.LCellType.None); } Console.WriteLine("Agent at " + iX + "," + iY); //if (board.Created) board.addConsoleText(idx + ") Observation: " + obs + "\r\n Action: " +act+"\r\n Agent at: " + iX + "," + iY + "\r\n ----------------------------------------"); obs = ""; act = ""; //if (board.Created) board.addConsoleText(idx + ") " +(GetObservation()!=""?"Observed:\r\n"+GetObservation():"No Observation\r\n") +"Action:\r\n"+ agentMove(cLoc, new Kernel.Point((byte)iY, (byte)iX)) + " (Agent at " + iX + "," + iY + ")\r\n ----------------------------------------"); //if (locFlg) { if (board.Created) board.addConsoleText(idx+ ") " + agentMove(cLoc, new Kernel.Point((byte)iY, (byte)iX)) + " (Agent at " + iX + "," + iY+ ")\r\n ----------------------------------------"); } //else //{ // locFlg = true; // if (board.Created) board.addConsoleText(idx + ") Agent at " + iX + "," + iY + "\r\n ----------------------------------------"); //} idx++; //if (board.Created) //{ board.setMatrix(bMatrix); if (board.fF == true) { board.fF = false; board.stopSpeed(); } // } }
internal void WriteTaggedProblem(string p, BeliefState bsCurrent) { throw new NotImplementedException(); }