KnowledgeBaseGraph() { addActivity("act1"); addActivity("act2"); addActivity("act3"); addActivity("act4"); addActivity("act5"); addFinishToStartConstraint("act1", "act2", 0.0, 1.0); addFinishToStartConstraint("act2", "act3", 0.0, 1.0); addFinishToStartConstraint("act2", "act4", 0.0, 1.0); }
Meets() { addActivity("A"); addActivity("B"); // B needs to start when A finishes. addFinishToStartConstraint("A", "B", 0.0, 0.0); }
Before() { addActivity("A", 0.0, 2.0); addActivity("B", 3.0, 5.0); // B needs to start at time 3.0. addFinishToStartConstraint("A", "B", 0.0, 2.0); }
KnowledgeBaseGraph3() { addActivity("A"); addActivity("B"); addActivity("C"); addActivity("D"); addActivity("E"); addActivity("F"); addFinishToStartConstraint("A", "B", 0.0, 1.0); addFinishToStartConstraint("A", "C", 0.0, 1.0); addFinishToStartConstraint("A", "D", 0.0, 1.0); addFinishToStartConstraint("B", "F", 0.0, 1.0); addFinishToStartConstraint("C", "E", 0.0, 1.0); addFinishToStartConstraint("D", "E", 0.0, 1.0); addFinishToStartConstraint("E", "F", 0.0, 1.0); }
/** * @brief The predecessor activity (i) must finish in (done or finished * state) before the successor activity (j) can start. * @param acti The (i) activity in FiSj relationship. * @param actj The (j) activity in FiSj relationship. * @param maxtimelag min time lag in FiSj relationship, >= 0.0. */ void addFinishToStartConstraint(const std::string& acti, const std::string& actj, const vle::devs::Time& maxtimelag) { addFinishToStartConstraint(acti, actj, 0, maxtimelag); }