aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend22
1 files changed, 10 insertions, 12 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend
index 613c68b3..198beabb 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend
@@ -29,6 +29,7 @@ import org.eclipse.viatra.dse.api.DesignSpaceExplorer
29import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel 29import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel
30import org.eclipse.viatra.dse.solutionstore.SolutionStore 30import org.eclipse.viatra.dse.solutionstore.SolutionStore
31import org.eclipse.viatra.dse.statecode.IStateCoderFactory 31import org.eclipse.viatra.dse.statecode.IStateCoderFactory
32import javax.security.auth.login.Configuration.Parameters
32 33
33class ViatraReasoner extends LogicReasoner{ 34class ViatraReasoner extends LogicReasoner{
34 val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser() 35 val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser()
@@ -79,7 +80,7 @@ class ViatraReasoner extends LogicReasoner{
79 80
80 dse.setInitialModel(emptySolution,false) 81 dse.setInitialModel(emptySolution,false)
81 82
82 var IStateCoderFactory statecoder = if(viatraConfig.stateCoderStrategy == StateCoderStrategy.Neighbourhood) { 83 val IStateCoderFactory statecoder = if(viatraConfig.stateCoderStrategy == StateCoderStrategy.Neighbourhood) {
83 new NeighbourhoodBasedStateCoderFactory 84 new NeighbourhoodBasedStateCoderFactory
84 } else { 85 } else {
85 new IdentifierBasedStateCoderFactory 86 new IdentifierBasedStateCoderFactory
@@ -98,11 +99,12 @@ class ViatraReasoner extends LogicReasoner{
98 dse.addTransformationRule(rule) 99 dse.addTransformationRule(rule)
99 } 100 }
100 101
101 val strategy = new BestFirstStrategyForModelGeneration( 102 val strategy = new BestFirstStrategyForModelGeneration(workspace,viatraConfig)
102 workspace,viatraConfig) 103 viatraConfig.progressMonitor.workedForwardTransformation
103 104
104 val transformationTime = System.nanoTime - transformationStartTime 105 val transformationTime = System.nanoTime - transformationStartTime
105 val solverStartTime = System.nanoTime 106 val solverStartTime = System.nanoTime
107
106 var boolean stoppedByTimeout 108 var boolean stoppedByTimeout
107 var boolean stoppedByException 109 var boolean stoppedByException
108 try{ 110 try{
@@ -112,10 +114,9 @@ class ViatraReasoner extends LogicReasoner{
112 stoppedByTimeout = false 114 stoppedByTimeout = false
113 stoppedByException = true 115 stoppedByException = true
114 } 116 }
115
116 val solverTime = System.nanoTime - solverStartTime 117 val solverTime = System.nanoTime - solverStartTime
118 viatraConfig.progressMonitor.workedSearchFinished
117 119
118 val statecoderFinal = statecoder
119 //additionalMatches = strategy.solutionStoreWithCopy.additionalMatches 120 //additionalMatches = strategy.solutionStoreWithCopy.additionalMatches
120 val statistics = createStatistics => [ 121 val statistics = createStatistics => [
121 //it.solverTime = viatraConfig.runtimeLimit 122 //it.solverTime = viatraConfig.runtimeLimit
@@ -134,7 +135,7 @@ class ViatraReasoner extends LogicReasoner{
134 it.name = "TypeAnalysisTime" it.value = (method.statistics.PreliminaryTypeAnalisisTime/1000000) as int 135 it.name = "TypeAnalysisTime" it.value = (method.statistics.PreliminaryTypeAnalisisTime/1000000) as int
135 ] 136 ]
136 it.entries += createIntStatisticEntry => [ 137 it.entries += createIntStatisticEntry => [
137 it.name = "StateCoderTime" it.value = (statecoderFinal.runtime/1000000) as int 138 it.name = "StateCoderTime" it.value = (statecoder.runtime/1000000) as int
138 ] 139 ]
139 it.entries += createIntStatisticEntry => [ 140 it.entries += createIntStatisticEntry => [
140 it.name = "StateCoderFailCount" it.value = strategy.numberOfStatecoderFail 141 it.name = "StateCoderFailCount" it.value = strategy.numberOfStatecoderFail
@@ -152,6 +153,8 @@ class ViatraReasoner extends LogicReasoner{
152 } 153 }
153 ] 154 ]
154 155
156 viatraConfig.progressMonitor.workedBackwardTransformationFinished
157
155 if(stoppedByTimeout) { 158 if(stoppedByTimeout) {
156 return createInsuficientResourcesResult=>[ 159 return createInsuficientResourcesResult=>[
157 it.problem = problem 160 it.problem = problem
@@ -165,12 +168,7 @@ class ViatraReasoner extends LogicReasoner{
165 it.statistics = statistics 168 it.statistics = statistics
166 ] 169 ]
167 } else { 170 } else {
168 171 return createModelResult => [
169 /*solutionStore.solutions.head.trajectories.head
170 solutionTrajectory.doTransformation(emptySolution)
171 *
172 */
173 return factory.createModelResult => [
174 it.problem = problem 172 it.problem = problem
175 it.trace = strategy.solutionStoreWithCopy.copyTraces 173 it.trace = strategy.solutionStoreWithCopy.copyTraces
176 it.representation += strategy.solutionStoreWithCopy.solutions 174 it.representation += strategy.solutionStoreWithCopy.solutions