Pair Programming Logs - SeanSpires/Project1-306-Team-Stonks GitHub Wiki

File I/O
Date Achieved Driver/Navigator Problems Notes
06/08 Set up basic file read and write

Set up pseudocode for reading the node file
Ryan/Tyger Need to wait for algorithm implementation to figure out how to handle output
08/08 Reads from node file and creates Task objects Ryan/Tyger Processor class deleted and is now a field in Task
Changed how the file is processed Tyger/Ryan Now splits file input into two lists, one for nodes and one for transitions
10/08 Combined file processing with the algorithm Tyger/Josh
11/08 Added in parameters to run from command line Mario/Tyger Changed the input argument array into a list and checked that the list contains certain parameters

Changed writeFile() to be able to have custom names if specified
25/08 Correctly error checks input parameters Mario/Tyger
Basic Algorithm
Date Achieved Driver/Navigator Problems Notes
06/08 Pseudo code and basic object structure Sean/Josh Figuring out ways to store multiple schedules
08/08 Basic implementation of topological sort Josh/Sean Doing the sort in an efficient manner. Using the right data structures
12/08 Discussions and basic pesudo code written for A* and branch and bound algorithms Sean/Josh
Visualisation
Date Achieved Driver/Navigator Problems Notes
21/08 Added binary tree implementation

Set up pseudocode for reading the node file
Mario/Tyger Need to change binary tree to non-binary
Added and attempted implementation for JGraphX library Tyger/Ryan Doesn’t zoom or pan

Errors when using swingNode()
22/08 Changed from using tree to Gantt chart for visualisation Ryan/Sean/Tyger Added component files from stack overflow
Changed FXML to work with Gantt Mario/Ryan
23/08 Displays a Schedule on Gantt chart

Tool tips added to display task information when hovered
Tyger/Ryan/Josh Josh helped with the transition/connection from the back-end to the front-end
Gantt now updates as Schedule gets updated Ryan/Tyger Done as a proof of concept. Need to change where update is called once algorithm implementation is finished
Branch-and-Bound
Date Achieved Driver/Navigator Problems Notes
23/08 Fixed the Start Time method to accurately calculate the appropriate start times of specific tasks with considerations of previously scheduled tasks and parental dependencies Sean/Tyger
Improving algorithm efficiency by eliminating duplicate schedules Josh/Sean Java object memory problem The schedules are not altered appropriately, most likely due to Java is "pass by value".
24/08 Continued with advanced algorithm optimisation. And fixing the Java object passing issue Sean/Josh
Started the parallelisation of the scheduling algorithm Sean/Josh Algorithm is not scheduling optimally. The issue may stem from the upper bound calculation method
25/08 Performed some code refactoring and further improvements of the sequential/parallel scheduling algorithm Sean/Tyger/Ryan
Implemented a test suite to tentatively test the sequential and parallelised algorithm against the provided graphs Ryan/Josh
Branch-and-Bound A*
Date Achieved Driver/Navigator Problems Notes
25/08 Implemented A* like heuristics to aid in the traversal of the search space. This included changing conditions on which nodes to explore, functions to compute heuristics and storing these in objects. Also made a slight change to paralleised algorithm to speed it up, this was mainly based on how the thread end condition. Sean/Mario Much faster than branch and bound as described by MM Raham, bottom level computation algo taken from Oliver's paper
⚠️ **GitHub.com Fallback** ⚠️