Skip to content

Visualization Research

Liam edited this page Aug 11, 2019 · 7 revisions

The following requirements were elicited from the project brief:

  1. The user should be provided with live feedback on the search.
  2. The representation of the information should be meaningful, and reflect the current state of the search.

As you can see, the requirements are very open ended. For this reason, we spent quite a bit of time figuring out how and what we want to show on our visualization. This page documents two stages of development: Firstly, establishing the features of our visualization, and secondly what external libraries may be of use during implementation, as the existence of them may make certain options more viable.

Features

Small Details

All of these are much easier to implement, thus it is a matter of what is most important to show.

  • Time passed / runtime
  • Live statistics about memory
  • Live statistics about the search space (# of schedules, % of schedules killed, % of schedules found to be duplicates)
  • Performance graphs (Branches/sec)
  • Arguments (# of processors, DOT name, # of threads)
  • Algorithm-Specific Stuff
    • If using branch and bound, display greedy time.
    • If using a B&B fallback to cope with out-of-memory issues, display what algorithm is currently being used.

Representation of the Search Space and the Algorithms Progress

This is the big important part so there's an entire section on it. Here's some ideas.

  • A live updating Gantt Chart of the current best schedule.
  • A search tree, that shows the search space and what branches the algorithm is looking at.
  • Visualize the input graph ..
    • and have edges highlighted as they are inspected (would definitely impact performance)
    • have the nodes color coded to the current best schedule

External Libraries

  • JavaFX - For making the GUI easily
  • JFoenix - A library for JavaFX to make everything look nice
  • Dynamic Graph Visualization
    • JGraphT
    • Do it ourselves? (Are we big brain enough for that?)

Clone this wiki locally