本文整理汇总了C++中FSM::find_inaccessible方法的典型用法代码示例。如果您正苦于以下问题:C++ FSM::find_inaccessible方法的具体用法?C++ FSM::find_inaccessible怎么用?C++ FSM::find_inaccessible使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FSM
的用法示例。
在下文中一共展示了FSM::find_inaccessible方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: make_accessible
void make_accessible(FSM& fsm) {
vector<int> current_access(fsm.nstates);
int current = 0; //Initial state
queue<int> BFS; //Breadth First Search
BFS.push(current);
do_BFS(BFS, current, current_access, fsm);
/* While there exists an inaccessible state */
int inaccessible_state = fsm.find_inaccessible(current_access);
while(inaccessible_state != -1) {
int event_out = rand() % fsm.nevents;
int state_out = rand() % fsm.nstates;
while (transition_is_invalid(fsm, current_access, state_out, event_out)) {
state_out = rand() % fsm.nstates;
event_out = rand() % fsm.nevents;
}
/* Add transition from accessible state to inaccessible state */
fsm.transitions[state_out][event_out] = inaccessible_state;
BFS.push(inaccessible_state);
do_BFS(BFS, inaccessible_state, current_access, fsm);
inaccessible_state = fsm.find_inaccessible(current_access);
}
}