Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
muyangye committed Oct 23, 2024
1 parent dd751f9 commit cad4186
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 37 deletions.
27 changes: 24 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,30 @@
# Maxflow_Visualization

iFlow is an interactive visualizer for the famous [Maximum Flow](https://en.wikipedia.org/wiki/Maximum_flow_problem) and [Minimum Cut](https://en.wikipedia.org/wiki/Minimum_cut) problems. More specifically, it visualizes three algorithms based on augmenting path:
- [The Ford-Fulkerson Algorithm](https://en.wikipedia.org/wiki/Ford%E2%80%93Fulkerson_algorithm)
- [The Edmonds-Karp Algorithm](https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm)
- Their Widest Path Heuristic Version

There are already a few visualizers for the Max-Flow Min-Cut problem, unlike existing visualizations, iFlow is:
- Interactive: users are not only "shown" the execution of algorithms, but they get to select their own augmenting path, choose their own flow amount to apply on that path, and complete their own residual graph
- Designed to facilitate learning❤️:
- Narrative, context-sensitive explanations
- Detailed feedback when users make mistakes
- The option to automatically complete each step, to be used as a non-interactive visualizer when users do not understand the concepts too well yet and to accelerate the visualization so that users can focus on other steps when they are already familiar
- Capable of visualizing Min-Cut, again both interactively and automatically
- Convenient: buttons to toggle current flow/original capacity, change layout, download and upload graph, and restart with the same graph
- Empirically tested

TODO: Add origin

## Examples:
TODO

## Acknowledgments
The initial styling and the choice of Cytoscape framework were inspired by [isabek.github.io](https://github.com/isabek/isabek.github.io). We have kept the same vertical layout and Cytoscape's settings for node size, node color, edge size, and edge color. We thank the author for open-sourcing his code.

The initial styling and the choice of Cytoscape framework were inspired by [this project](https://github.com/isabek/isabek.github.io). We consulted professor [David Kempe](https://www.david-kempe.com/) at University of Southern California and [this slide](https://www.cs.cmu.edu/~avrim/451f11/lectures/lects12-14.pdf) from Carnegie Mellon University on algorithms. We appreciate their work.
## Cite
TODO

## Contact

For questions or support, please contact [Maxflow Visualization Team](mailto:[email protected]).
For questions, bugs, or feature requests, please use the [Github Issues page](https://github.com/Maxflow-Visualization/iFlow/issues). Otherwise, contact the [iFlow Team](mailto:[email protected]).
34 changes: 0 additions & 34 deletions js/max-flow.js
Original file line number Diff line number Diff line change
Expand Up @@ -414,38 +414,4 @@ class FlowNetwork {
}
return "";
}

// findMaxFlowFulkerson (paths) {
// paths = paths || [];
// let maxFlow = 0;
// let parent = {};
// console.log("here");
// while (this.bfs(parent)) {
// let flow = Number.MAX_VALUE;
// let curr = this.sink;
// let path = [];
// while (curr != this.source) {
// path.push(curr);
// let prev = parent[curr];
// flow = Math.min(flow, this.graph[prev][curr].flow);
// curr = prev;
// }
// path.push(this.source);
// paths.push({
// nodes: path.reverse(),
// flow: flow
// });

// curr = this.sink;
// while (curr != this.source) {
// prev = parent[curr];
// this.graph[prev][curr].flow -= flow;
// this.graph[curr][prev].flow += flow;
// curr = prev;
// }

// maxFlow += flow;
// }
// return maxFlow;
// };
}

0 comments on commit cad4186

Please sign in to comment.