45 lines
No EOL
1.4 KiB
OCaml
45 lines
No EOL
1.4 KiB
OCaml
open Gfile
|
|
open Tools
|
|
open Display
|
|
open FordFulkerson
|
|
|
|
let () =
|
|
|
|
(* Check the number of command-line arguments
|
|
*)
|
|
if Array.length Sys.argv <> 5 then
|
|
begin
|
|
Printf.printf
|
|
"\n ✻ Usage: %s infile source sink outfile\n\n%s%!" Sys.argv.(0)
|
|
(" 🟄 infile : input file containing a graph\n" ^
|
|
" 🟄 source : identifier of the source vertex (used by the ford-fulkerson algorithm)\n" ^
|
|
" 🟄 sink : identifier of the sink vertex (ditto)\n" ^
|
|
" 🟄 outfile : output file in which the result should be written.\n\n") ;
|
|
exit 0
|
|
end ;
|
|
|
|
(* Arguments are : infile(1) source-id(2) sink-id(3) outfile(4) *)
|
|
|
|
let infile = Sys.argv.(1)
|
|
and outfile = Sys.argv.(4)
|
|
|
|
(* These command-line arguments are not used for the moment. *)
|
|
and _source = int_of_string Sys.argv.(2)
|
|
and _sink = int_of_string Sys.argv.(3)
|
|
in
|
|
|
|
(* Open file *)
|
|
let graph = from_file infile in
|
|
|
|
let graphInt = gmap graph int_of_string in
|
|
|
|
let graphSolved = main graphInt 0 5 in
|
|
|
|
let graphFinal = gmap graphSolved string_of_int in
|
|
|
|
let () = exportDifference graphFinal outfile in
|
|
()
|
|
(* Rewrite the graph that has been read.
|
|
let () = write_file outfile graphDot in
|
|
()
|
|
*) |