From 29ab244acc25d2c34f636cf40a48df8347aafbd1 Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Mon, 13 May 2019 12:56:12 -0400 Subject: Fix for symmetric activation codes on symmetric models --- .../statecoder/NeighbourhoodBasedStateCoderFactory.xtend | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/statecoder/NeighbourhoodBasedStateCoderFactory.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/statecoder/NeighbourhoodBasedStateCoderFactory.xtend index 65a8207e..b6d2043d 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/statecoder/NeighbourhoodBasedStateCoderFactory.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/statecoder/NeighbourhoodBasedStateCoderFactory.xtend @@ -128,14 +128,23 @@ class NeighbourhoodBasedPartialInterpretationStateCoder implements IStateCoder{ val size = match.specification.parameters.size val res = new ArrayList(size) var int index = 0 + var int equivalenceHash = 0 + val prime = 31 + while(index < size) { res.add(getCode(match.get(index))) index++ + for(var i = 0; ires.hashCode + return match.specification.fullyQualifiedName->(res->equivalenceHash).hashCode } + def private getCode(Object o) { if(o instanceof DefinedElement) { this.nodeRepresentations.get(o) -- cgit v1.2.3-54-g00ecf