Wikunia / ConstraintSolver.jl

ConstraintSolver in Julia: Blog posts ->
https://opensourc.es/blog/constraint-solver-1
MIT License
136 stars 14 forks source link

Refactor activator constraints #257

Closed Wikunia closed 3 years ago

Wikunia commented 3 years ago

Needs:

This should make #213 easier to implement and in general reduce the overhead of indicator and reified by combining the two when possible.

codecov[bot] commented 3 years ago

Codecov Report

Merging #257 (9424f3e) into master (873373c) will decrease coverage by 0.12%. The diff coverage is 94.44%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #257      +/-   ##
==========================================
- Coverage   96.63%   96.50%   -0.13%     
==========================================
  Files          48       49       +1     
  Lines        3773     3806      +33     
==========================================
+ Hits         3646     3673      +27     
- Misses        127      133       +6     
Impacted Files Coverage Δ
src/ConstraintSolver.jl 98.50% <ø> (ø)
src/constraints/all_different.jl 100.00% <ø> (ø)
src/constraints/equal_set.jl 95.55% <ø> (-0.05%) :arrow_down:
src/constraints/geqset.jl 100.00% <ø> (ø)
src/constraints/linear_constraints.jl 96.98% <ø> (ø)
src/constraints/activator_constraints.jl 88.09% <88.09%> (ø)
src/util.jl 98.57% <93.33%> (-1.43%) :arrow_down:
src/MOI_wrapper/constraints.jl 99.51% <100.00%> (+0.01%) :arrow_up:
src/MOI_wrapper/util.jl 100.00% <100.00%> (ø)
src/constraints.jl 100.00% <100.00%> (ø)
... and 8 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 873373c...bedd29c. Read the comment docs.

Wikunia commented 3 years ago

Benchmark Report for ConstraintSolver

Job Properties

Results

A ratio greater than 1.0 denotes a possible regression (marked with :x:), while a ratio less than 1.0 denotes a possible improvement (marked with :white_check_mark:). Only significant results - results that indicate possible regressions or improvements - are shown below (thus, an empty table means that all benchmark results remained invariant between builds).

ID time ratio memory ratio
["graph_coloring", "US_50colors"] 1.04 (5%) 1.02 (1%) :x:
["graph_coloring", "US_50colors+equal"] 1.05 (5%) :x: 1.02 (1%) :x:
["graph_coloring", "US_8+equal"] 1.05 (5%) 1.03 (1%) :x:
["graph_coloring", "US_8+equal_ABS"] 1.06 (5%) :x: 1.01 (1%)
["graph_coloring", "queen7_7"] 1.04 (5%) 1.02 (1%) :x:
["killer_sudoku", "niall_5501_ABS"] 1.00 (5%) 0.96 (1%) :white_check_mark:
["scheduling", "all_different_except_0_len10"] 1.09 (5%) :x: 1.00 (1%)
["scheduling", "all_different_except_0_len12"] 1.05 (5%) :x: 1.00 (1%)
["sudoku", "top95_1"] 1.04 (5%) 1.02 (1%) :x:
["sudoku", "top95_21"] 1.04 (5%) 1.01 (1%) :x:
["sudoku", "top95_26"] 1.04 (5%) 1.01 (1%) :x:
["sudoku", "top95_36"] 1.04 (5%) 1.02 (1%) :x:
["sudoku", "top95_41"] 1.03 (5%) 1.01 (1%) :x:
["sudoku", "top95_46"] 1.03 (5%) 1.01 (1%) :x:
["sudoku", "top95_6"] 1.04 (5%) 1.02 (1%) :x:
["sudoku", "top95_61"] 1.03 (5%) 1.01 (1%) :x:
["sudoku", "top95_71"] 1.03 (5%) 1.01 (1%) :x:
["sudoku", "top95_76"] 1.03 (5%) 1.01 (1%) :x:
["sudoku", "top95_81"] 1.04 (5%) 1.01 (1%) :x:
["sudoku", "top95_86"] 1.03 (5%) 1.01 (1%) :x:

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

Julia versioninfo

Target

Julia Version 1.5.0
Commit 96786e22cc (2020-08-01 23:44 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      "Arch Linux"
  uname: Linux 5.9.14-arch1-1 #1 SMP PREEMPT Sat, 12 Dec 2020 14:37:12 +0000 x86_64 unknown
  CPU: Intel(R) Xeon(R) CPU E5-1650 0 @ 3.20GHz: 
                 speed         user         nice          sys         idle          irq
       #1-12  3605 MHz    8095367 s     514385 s    4381778 s  6316084095 s     719549 s

  Memory: 46.9886360168457 GB (951.79296875 MB free)
  Uptime: 5.276705e6 sec
  Load Avg:  1.06103515625  1.15869140625  0.80517578125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, sandybridge)

Baseline

Julia Version 1.5.0
Commit 96786e22cc (2020-08-01 23:44 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      "Arch Linux"
  uname: Linux 5.9.14-arch1-1 #1 SMP PREEMPT Sat, 12 Dec 2020 14:37:12 +0000 x86_64 unknown
  CPU: Intel(R) Xeon(R) CPU E5-1650 0 @ 3.20GHz: 
                 speed         user         nice          sys         idle          irq
       #1-12  3791 MHz    8176048 s     514385 s    4384310 s  6316986065 s     719741 s

  Memory: 46.9886360168457 GB (1069.05859375 MB free)
  Uptime: 5.277526e6 sec
  Load Avg:  1.126953125  1.14404296875  1.00634765625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, sandybridge)