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