Browse Source

explicit engine: support -exportrows

tud-infrastructure-2018-10-12
Joachim Klein 7 years ago
parent
commit
23c02e6b06
  1. 2
      prism/src/automata/LTSFromDA.java
  2. 9
      prism/src/explicit/DTMCExplicit.java
  3. 2
      prism/src/explicit/LTSExplicit.java
  4. 24
      prism/src/explicit/MDPExplicit.java
  5. 10
      prism/src/explicit/Model.java
  6. 2
      prism/src/explicit/ModelExplicit.java
  7. 9
      prism/src/explicit/STPGAbstrSimple.java
  8. 2
      prism/src/explicit/SubNondetModel.java
  9. 10
      prism/src/explicit/modelviews/DTMCView.java
  10. 8
      prism/src/explicit/modelviews/MDPView.java
  11. 2
      prism/src/param/ParamModel.java
  12. 4
      prism/src/prism/Prism.java
  13. 4
      prism/src/strat/MDStrategyArray.java
  14. 3
      prism/src/strat/Strategy.java

2
prism/src/automata/LTSFromDA.java

@ -129,7 +129,7 @@ public class LTSFromDA extends ModelExplicit implements LTS
}
@Override
public void exportToPrismExplicitTra(PrismLog out)
public void exportToPrismExplicitTra(PrismLog out, int exportType)
{
throw new RuntimeException("Not implemented yet");
}

9
prism/src/explicit/DTMCExplicit.java

@ -55,8 +55,15 @@ public abstract class DTMCExplicit extends ModelExplicit implements DTMC
}
@Override
public void exportToPrismExplicitTra(PrismLog out)
public void exportToPrismExplicitTra(PrismLog out, int exportType) throws PrismException
{
switch (exportType) {
case prism.Prism.EXPORT_PLAIN:
case prism.Prism.EXPORT_ROWS:
break;
default:
throw new PrismException("Unsupported export type");
}
int i;
TreeMap<Integer, Pair<Double, Object>> sorted;
// Output transitions to .tra file

2
prism/src/explicit/LTSExplicit.java

@ -184,7 +184,7 @@ public class LTSExplicit extends ModelExplicit implements LTS
}
@Override
public void exportToPrismExplicitTra(PrismLog out)
public void exportToPrismExplicitTra(PrismLog out, int exportType)
{
throw new UnsupportedOperationException();
}

24
prism/src/explicit/MDPExplicit.java

@ -78,8 +78,20 @@ public abstract class MDPExplicit extends ModelExplicit implements MDP
}
@Override
public void exportToPrismExplicitTra(PrismLog out)
public void exportToPrismExplicitTra(PrismLog out, int exportType) throws PrismException
{
boolean rows = false;
switch (exportType)
{
case prism.Prism.EXPORT_PLAIN:
break;
case prism.Prism.EXPORT_ROWS:
rows = true;
break;
default:
throw new PrismException("Unsupported export type");
}
int i, j, numChoices;
Object action;
TreeMap<Integer, Double> sorted;
@ -96,12 +108,22 @@ public abstract class MDPExplicit extends ModelExplicit implements MDP
sorted.put(e.getKey(), e.getValue());
}
// Print out (sorted) transitions
if (rows) {
out.print(i);
for (Map.Entry<Integer, Double> e : sorted.entrySet()) {
// Note use of PrismUtils.formatDouble to match PRISM-exported files
out.print(" " + PrismUtils.formatDouble(e.getValue()) + ":" + e.getKey());
}
action = getAction(i, j);
out.print(action == null ? "\n" : (" " + action + "\n"));
} else {
for (Map.Entry<Integer, Double> e : sorted.entrySet()) {
// Note use of PrismUtils.formatDouble to match PRISM-exported files
out.print(i + " " + j + " " + e.getKey() + " " + PrismUtils.formatDouble(e.getValue()));
action = getAction(i, j);
out.print(action == null ? "\n" : (" " + action + "\n"));
}
}
sorted.clear();
}
}

10
prism/src/explicit/Model.java

@ -285,7 +285,15 @@ public interface Model
/**
* Export transition matrix to explicit format readable by PRISM (i.e. a .tra file).
*/
public void exportToPrismExplicitTra(PrismLog log);
public default void exportToPrismExplicitTra(PrismLog log) throws PrismException
{
exportToPrismExplicitTra(log, prism.Prism.EXPORT_PLAIN);
}
/**
* Export transition matrix to explicit format readable by PRISM (i.e. a .tra file).
*/
public void exportToPrismExplicitTra(PrismLog log, int exportType) throws PrismException;
/**
* Export to a dot file.

2
prism/src/explicit/ModelExplicit.java

@ -387,7 +387,7 @@ public abstract class ModelExplicit implements Model
}
@Override
public abstract void exportToPrismExplicitTra(PrismLog out);
public abstract void exportToPrismExplicitTra(PrismLog out, int exportType) throws PrismException;
@Override
public abstract void exportToPrismLanguage(String filename) throws PrismException;

9
prism/src/explicit/STPGAbstrSimple.java

@ -365,8 +365,15 @@ public class STPGAbstrSimple extends ModelExplicit implements STPG, NondetModelS
}
@Override
public void exportToPrismExplicitTra(PrismLog out)
public void exportToPrismExplicitTra(PrismLog out, int exportType) throws PrismException
{
switch (exportType) {
case prism.Prism.EXPORT_ROWS:
break;
default:
throw new PrismException("Unsupported export type");
}
int i, j, k;
TreeMap<Integer, Double> sorted;
// Output transitions to .tra file

2
prism/src/explicit/SubNondetModel.java

@ -245,7 +245,7 @@ public class SubNondetModel implements NondetModel
}
@Override
public void exportToPrismExplicitTra(PrismLog log)
public void exportToPrismExplicitTra(PrismLog log, int exportType)
{
throw new UnsupportedOperationException();
}

10
prism/src/explicit/modelviews/DTMCView.java

@ -132,8 +132,16 @@ public abstract class DTMCView extends ModelView implements DTMC, Cloneable
}
@Override
public void exportToPrismExplicitTra(final PrismLog log)
public void exportToPrismExplicitTra(final PrismLog log, int exportType) throws PrismException
{
switch (exportType) {
case prism.Prism.EXPORT_PLAIN:
case prism.Prism.EXPORT_ROWS:
break;
default:
throw new PrismException("Unsupported export type");
}
// Output transitions to .tra file
log.print(getNumStates() + " " + getNumTransitions() + "\n");
final TreeMap<Integer, Double> sorted = new TreeMap<>();

8
prism/src/explicit/modelviews/MDPView.java

@ -120,8 +120,14 @@ public abstract class MDPView extends ModelView implements MDP, Cloneable
}
@Override
public void exportToPrismExplicitTra(final PrismLog out)
public void exportToPrismExplicitTra(final PrismLog out, int exportType) throws PrismException
{
switch (exportType) {
case prism.Prism.EXPORT_PLAIN:
break;
default:
throw new PrismException("Unsupported export type");
}
final int numStates = getNumStates();
// Output transitions to .tra file
out.print(numStates + " " + getNumChoices() + " " + getNumTransitions() + "\n");

2
prism/src/param/ParamModel.java

@ -277,7 +277,7 @@ public final class ParamModel extends ModelExplicit implements MDPGeneric<Functi
}
@Override
public void exportToPrismExplicitTra(PrismLog log)
public void exportToPrismExplicitTra(PrismLog log, int exportType)
{
throw new UnsupportedOperationException();
}

4
prism/src/prism/Prism.java

@ -2334,7 +2334,8 @@ public class Prism extends PrismComponent implements PrismSettingsListener
PrismLog tmpLog = getPrismLogForFile(file);
switch (exportType) {
case Prism.EXPORT_PLAIN:
currentModelExpl.exportToPrismExplicitTra(tmpLog);
case Prism.EXPORT_ROWS:
currentModelExpl.exportToPrismExplicitTra(tmpLog, exportType);
break;
case Prism.EXPORT_MATLAB:
throw new PrismNotSupportedException("Export not yet supported");
@ -2345,7 +2346,6 @@ public class Prism extends PrismComponent implements PrismSettingsListener
currentModelExpl.exportToDotFile(tmpLog, null, true);
break;
case Prism.EXPORT_MRMC:
case Prism.EXPORT_ROWS:
throw new PrismNotSupportedException("Export not yet supported");
}
tmpLog.close();

4
prism/src/strat/MDStrategyArray.java

@ -27,6 +27,8 @@
package strat;
import prism.Prism;
import prism.PrismException;
import prism.PrismLog;
import explicit.MDP;
import explicit.Model;
@ -97,7 +99,7 @@ public class MDStrategyArray extends MDStrategy
// Methods for Strategy
@Override
public void exportInducedModel(PrismLog out)
public void exportInducedModel(PrismLog out) throws PrismException
{
Model dtmcInd = model.constructInducedModel(this);
dtmcInd.exportToPrismExplicitTra(out);

3
prism/src/strat/Strategy.java

@ -27,6 +27,7 @@
package strat;
import prism.PrismException;
import prism.PrismLog;
/**
@ -52,7 +53,7 @@ public interface Strategy
/**
* Export the model induced by this strategy to a PrismLog.
*/
public void exportInducedModel(PrismLog out);
public void exportInducedModel(PrismLog out) throws PrismException;
/**
* Export the strategy to a dot file (of the model showing the strategy).

Loading…
Cancel
Save