about "cycle detection":
1. add new test (Fig7) with cycle
2. keep partial visualization result even if cycle detection is true

about "reschedule":
1. dealing with isCandidate flag: using Set to store candidate operations and reset them together