46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
# BE OCAML 4IR
|
|
|
|
## Group
|
|
* SIMARD Yohan
|
|
* VERGNET Arnaud
|
|
|
|
## Description
|
|
|
|
Ocaml project on Ford-Fulkerson. This project contains some simple configuration files to facilitate editing Ocaml in VSCode.
|
|
|
|
This project can compile 2 executables:
|
|
- `ftest.native`, the base FF algorithm implementation
|
|
- `circulationtest.native`, a circulation-demand problem solved by the use of the FF algorithm. The problem can be found on [Wikipedia](https://en.wikipedia.org/wiki/Maximum_flow_problem#Circulation%E2%80%93demand_problem).
|
|
|
|
## Use in VSCode
|
|
|
|
To use in VSCode, you should install the `OCaml` extension in VSCode. Other extensions might work as well but make sure there is only one installed.
|
|
Then open VSCode in the root directory of this repository.
|
|
|
|
### Features :
|
|
- full compilation as VSCode build task (Ctrl+Shift+b)
|
|
- highlights of compilation errors as you type
|
|
- code completion
|
|
- automatic indentation on file save
|
|
|
|
## Setup
|
|
|
|
This project uses the Graphviz library to render svg graphs. To install it, simply type :
|
|
|
|
```shell
|
|
sudo apt install graphviz
|
|
```
|
|
|
|
## Build and Run
|
|
|
|
A makefile provides some useful commands:
|
|
- `make build` to compile the base ff algorithm. This creates an ftest.native executable
|
|
- `make test` to run the `ftest` program with only the infile (executes tests on it) and generate svg files for each tests. This uses the `graph1` in the `graphs` folder and outputs in the `test` folder.
|
|
- `make demo` to run the `ftest` program with some arguments and generate the final svg file. This uses graphs in the `graphs` folder and outputs in the `run` folder.
|
|
- `make build_circulation` to compile the circulation-demand problem resolution. This creates a circulationtest.native executable
|
|
- `make demo_circulation` to run the `circulationtest` program with some arguments and generate the final svg file. This uses graphs in the `circulation_input_graphs` folder and outputs in the `run` folder.
|
|
- `make format` to indent the entire project
|
|
- `make clean` to remove build artifacts
|
|
|
|
In case of trouble with the VSCode extension (e.g. the project does not build, there are strange mistakes), a common workaround is to (1) close vscode, (2) `make clean`, (3) `make build` and (4) reopen vscode.
|
|
|