ocaml: phase 5.1 dijkstra.ml baseline (5-node SSSP, dist(0,4) = 7)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 23s

Array-based O(n^2) Dijkstra on a small directed weighted graph:

  edges = [|
    [(1, 4); (2, 1)];   (* 0 -> 1 (w=4), 2 (w=1) *)
    [(3, 1)];           (* 1 -> 3 (w=1)         *)
    [(1, 2); (3, 5)];   (* 2 -> 1 (w=2), 3 (w=5) *)
    [(4, 3)];           (* 3 -> 4 (w=3)         *)
    []                  (* 4 sink              *)
  |]

Optimal path 0->2->1->3->4 has weight 1+2+1+3 = 7.

Tests: array-of-list-of-int-pair literal, List.iter with tuple
destructuring closure, in-place dist mutation, nested for + ref.

141 baseline programs total.
This commit is contained in:
2026-05-10 04:20:47 +00:00
parent 713d506bb8
commit 42a506faff
3 changed files with 47 additions and 0 deletions

View File

@@ -407,6 +407,15 @@ _Newest first._
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
'a tree`) with insert + in-order traversal. Tests parametric ADT,
recursive match, List.append, List.fold_left.
- 2026-05-10 Phase 5.1 — dijkstra.ml baseline (single-source shortest
path on a 5-node weighted graph, dist 0→4 = 7). O(n²) array-based
Dijkstra: at each step, scan unvisited vertices for the minimum
tentative distance, relax outgoing edges. Adjacency stored as
`(int * int) list array` literal with int-pair tuples for
destination + weight. The optimal path 0→2→1→3→4 has weight
1+2+1+3=7. Tests array of lists of pairs, List.iter with
destructuring closure, in-place dist mutation. 141 baseline
programs total.
- 2026-05-10 Phase 5.1 — kmp.ml baseline (KMP string search, count
occurrences of "abab" in "abababcabababcababcc" = 5). Two-phase
classic: build failure table in O(m), then linear scan in O(n).