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) {
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);
@ -345,6 +345,16 @@ namespace storm {
builder.addOutputArc(tnextcl, failedNodes.at(child->id()));
nextclTransitions.push_back(tnextcl);
++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(nextclTransitions.back(), nodeFailed);
@ -355,6 +365,7 @@ namespace storm {
}
}
//
template <typename ValueType>

Loading…
Cancel
Save