Browse Source

spare activation

tempestpy_adaptions
Sebastian Junges 8 years ago
parent
commit
146bd193ea
  1. 13
      src/storm-dft/transformations/DftToGspnTransformator.cpp

13
src/storm-dft/transformations/DftToGspnTransformator.cpp

@ -307,7 +307,7 @@ namespace storm {
if (isRepresentative) { if (isRepresentative) {
unavailableNode = addUnavailableNode(dftSpare); unavailableNode = addUnavailableNode(dftSpare);
} }
uint64_t spareActive = builder.addPlace(defaultCapacity, 0, dftSpare->name() + STR_ACTIVATED);
uint64_t spareActive = builder.addPlace(defaultCapacity, isBEActive(dftSpare) ? 1 : 0, dftSpare->name() + STR_ACTIVATED);
activeNodes.emplace(dftSpare->id(), spareActive); activeNodes.emplace(dftSpare->id(), spareActive);
@ -345,6 +345,16 @@ namespace storm {
builder.addOutputArc(tnextcl, failedNodes.at(child->id())); builder.addOutputArc(tnextcl, failedNodes.at(child->id()));
nextclTransitions.push_back(tnextcl); nextclTransitions.push_back(tnextcl);
++j; ++j;
for (uint64_t k : mDft.module(child->id())) {
uint64_t tactive = builder.addImmediateTransition(defaultPriority+1, 0.0, dftSpare->name() + "_activate_" + std::to_string(j) + "_" + std::to_string(k));
builder.addInputArc(cucNodes.back(), tactive);
builder.addInputArc(spareActive, tactive);
builder.addOutputArc(tactive, activeNodes.at(k));
builder.addInhibitionArc(activeNodes.at(k), tactive);
}
} }
builder.addOutputArc(nextconsiderTransitions.back(), nodeFailed); builder.addOutputArc(nextconsiderTransitions.back(), nodeFailed);
builder.addOutputArc(nextclTransitions.back(), nodeFailed); builder.addOutputArc(nextclTransitions.back(), nodeFailed);
@ -355,6 +365,7 @@ namespace storm {
} }
} }
// //
template <typename ValueType> template <typename ValueType>

Loading…
Cancel
Save