From 6be4a22fb1c342bb90cb7269cd7e6cd04c69753c Mon Sep 17 00:00:00 2001
From: hoijui <hoijui.quaero@gmail.com>
Date: Sat, 3 Sep 2011 13:05:49 +0200
Subject: [PATCH] learn about the initial state again & fix it

---
 .../syncleus/dann/math/statistics/SimpleMarkovChain.java  | 8 ++++++--
 .../dann/math/statistics/SimpleMarkovChainEvidence.java   | 5 -----
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/syncleus/dann/math/statistics/SimpleMarkovChain.java b/src/main/java/com/syncleus/dann/math/statistics/SimpleMarkovChain.java
index 2d5209ed..a57c01ce 100644
--- a/src/main/java/com/syncleus/dann/math/statistics/SimpleMarkovChain.java
+++ b/src/main/java/com/syncleus/dann/math/statistics/SimpleMarkovChain.java
@@ -119,8 +119,7 @@ public class SimpleMarkovChain<S> extends AbstractMarkovChain<S>
         //if there is an empty set, representing an undefined starting point, then it is always the first row
 		if(rowHeadersLeft.remove(Collections.<S>emptyList()))
 		{
-			//this.rowMapping.add(Collections.<S>emptyList());
-			throw new RuntimeException("We should never have an empty state as row title");
+			this.rowMapping.add(Collections.<S>emptyList());
 		}
 
 		//first put the rows in order to match the columns
@@ -134,6 +133,11 @@ public class SimpleMarkovChain<S> extends AbstractMarkovChain<S>
 			this.rowMapping.add(columnAsHeader);
 		}
 
+		if(rowMapping.contains(Collections.<S>emptyList()))
+		{
+			this.columnMapping.add(0, null);
+		}
+
 		//Now add the remaining rowHeaders
 		this.rowMapping.addAll(rowHeadersLeft);
 		rowHeadersLeft.clear();
diff --git a/src/main/java/com/syncleus/dann/math/statistics/SimpleMarkovChainEvidence.java b/src/main/java/com/syncleus/dann/math/statistics/SimpleMarkovChainEvidence.java
index b4adde4d..ab146837 100644
--- a/src/main/java/com/syncleus/dann/math/statistics/SimpleMarkovChainEvidence.java
+++ b/src/main/java/com/syncleus/dann/math/statistics/SimpleMarkovChainEvidence.java
@@ -58,11 +58,6 @@ public class SimpleMarkovChainEvidence<S> implements MarkovChainEvidence<S>
 	{
 		final List<S> stateMemory = Collections.unmodifiableList(new ArrayList<S>(stateMemoryCollection));
 
-		if (stateMemory.isEmpty())
-		{
-			return;
-		}
-
 		//get the current evidence for this state
 		StateCounter<S> transitions = this.evidence.get(stateMemory);
 		//if there is no transitions then create a blank one
-- 
GitLab