or-tools 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +1 -1
- data/ext/or-tools/constraint.cpp +28 -23
- data/ext/or-tools/vendor.rb +16 -13
- data/lib/or_tools/cp_solver.rb +12 -6
- data/lib/or_tools/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e88bfc983ea525a514082c15ad21c53f9e35f8b1d291d55f6810a0c47c7a2fa8
|
4
|
+
data.tar.gz: d3101dceed98ebd35f788c1cd5df122078cd435f5bceb21cf4e7a1b13dd2ac04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a12e68f45b7829f76d77e107c14cb072158bc956348b07dc93bc0bcb4a91f6fff8a22389d88bd8102a3c7d6eec86e25e4aeca4043cd4b2b560575f8d5dde8578
|
7
|
+
data.tar.gz: 1448aa409c1664ce15e859a5ad115b4ba975f4b976ad522cc95db4699c65c9356a5b78f05507db166a46fd60cc80e0907a85b625fc2150bdaa591fe3aa7b13db
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 0.5.4 (2021-10-01)
|
2
|
+
|
3
|
+
- Updated OR-Tools to 9.1
|
4
|
+
- Added binary installation for Debian 11
|
5
|
+
- Deprecated `solve_with_solution_callback` and `search_for_all_solutions`
|
6
|
+
|
1
7
|
## 0.5.3 (2021-08-02)
|
2
8
|
|
3
9
|
- Added more methods to `IntVar`, `IntervalVar`, and `Constraint`
|
data/README.md
CHANGED
@@ -2139,7 +2139,7 @@ model.add(seats[[0, 0]] == 1)
|
|
2139
2139
|
# Solve model
|
2140
2140
|
solver = ORTools::CpSolver.new
|
2141
2141
|
solution_printer = WeddingChartPrinter.new(seats, names, num_tables, num_guests)
|
2142
|
-
solver.
|
2142
|
+
solver.solve(model, solution_printer)
|
2143
2143
|
|
2144
2144
|
puts "Statistics"
|
2145
2145
|
puts " - conflicts : %i" % solver.num_conflicts
|
data/ext/or-tools/constraint.cpp
CHANGED
@@ -131,10 +131,21 @@ void init_constraint(Rice::Module& m) {
|
|
131
131
|
|
132
132
|
Rice::define_class_under<SatParameters>(m, "SatParameters")
|
133
133
|
.define_constructor(Rice::Constructor<SatParameters>())
|
134
|
-
.define_method(
|
135
|
-
|
136
|
-
self
|
137
|
-
|
134
|
+
.define_method(
|
135
|
+
"max_time_in_seconds=",
|
136
|
+
[](SatParameters& self, double value) {
|
137
|
+
self.set_max_time_in_seconds(value);
|
138
|
+
})
|
139
|
+
.define_method(
|
140
|
+
"enumerate_all_solutions=",
|
141
|
+
[](SatParameters& self, bool value) {
|
142
|
+
self.set_enumerate_all_solutions(value);
|
143
|
+
})
|
144
|
+
.define_method(
|
145
|
+
"enumerate_all_solutions",
|
146
|
+
[](SatParameters& self) {
|
147
|
+
return self.enumerate_all_solutions();
|
148
|
+
});
|
138
149
|
|
139
150
|
Rice::define_class_under<CpModelBuilder>(m, "CpModel")
|
140
151
|
.define_constructor(Rice::Constructor<CpModelBuilder>())
|
@@ -377,29 +388,23 @@ void init_constraint(Rice::Module& m) {
|
|
377
388
|
|
378
389
|
Rice::define_class_under(m, "CpSolver")
|
379
390
|
.define_method(
|
380
|
-
"
|
381
|
-
[](Object self, CpModelBuilder& model, SatParameters& parameters, Object callback
|
391
|
+
"_solve",
|
392
|
+
[](Object self, CpModelBuilder& model, SatParameters& parameters, Object callback) {
|
382
393
|
Model m;
|
383
394
|
|
384
|
-
if (
|
385
|
-
//
|
386
|
-
parameters.
|
395
|
+
if (!callback.is_nil()) {
|
396
|
+
// TODO figure out how to use callback with multiple cores
|
397
|
+
parameters.set_num_search_workers(1);
|
398
|
+
|
399
|
+
m.Add(NewFeasibleSolutionObserver(
|
400
|
+
[callback](const CpSolverResponse& r) {
|
401
|
+
// TODO find a better way to do this
|
402
|
+
callback.call("response=", r);
|
403
|
+
callback.call("on_solution_callback");
|
404
|
+
})
|
405
|
+
);
|
387
406
|
}
|
388
|
-
m.Add(NewSatParameters(parameters));
|
389
407
|
|
390
|
-
m.Add(NewFeasibleSolutionObserver(
|
391
|
-
[callback](const CpSolverResponse& r) {
|
392
|
-
// TODO find a better way to do this
|
393
|
-
callback.call("response=", r);
|
394
|
-
callback.call("on_solution_callback");
|
395
|
-
})
|
396
|
-
);
|
397
|
-
return SolveCpModel(model.Build(), &m);
|
398
|
-
})
|
399
|
-
.define_method(
|
400
|
-
"_solve",
|
401
|
-
[](Object self, CpModelBuilder& model, SatParameters& parameters) {
|
402
|
-
Model m;
|
403
408
|
m.Add(NewSatParameters(parameters));
|
404
409
|
return SolveCpModel(model.Build(), &m);
|
405
410
|
})
|
data/ext/or-tools/vendor.rb
CHANGED
@@ -3,29 +3,32 @@ require "fileutils"
|
|
3
3
|
require "net/http"
|
4
4
|
require "tmpdir"
|
5
5
|
|
6
|
-
version = "9.
|
6
|
+
version = "9.1.9490"
|
7
7
|
|
8
8
|
if RbConfig::CONFIG["host_os"] =~ /darwin/i
|
9
|
-
filename = "or-tools_MacOsX-11.
|
10
|
-
checksum = "
|
9
|
+
filename = "or-tools_MacOsX-11.6_v#{version}.tar.gz"
|
10
|
+
checksum = "97a2b113806c1b2d17f9b3f30571c9ee82722eb22e06bd124d94118f3a84da2c"
|
11
11
|
else
|
12
12
|
os = %x[lsb_release -is].chomp rescue nil
|
13
13
|
os_version = %x[lsb_release -rs].chomp rescue nil
|
14
14
|
if os == "Ubuntu" && os_version == "20.04"
|
15
|
-
filename = "or-
|
16
|
-
checksum = "
|
15
|
+
filename = "or-tools_amd64_ubuntu-20.04_v#{version}.tar.gz"
|
16
|
+
checksum = "cf82e5c343ab74bef320b240a2c3937b07df945e60b91bbc771b477c0856c1bd"
|
17
17
|
elsif os == "Ubuntu" && os_version == "18.04"
|
18
|
-
filename = "or-
|
19
|
-
checksum = "
|
18
|
+
filename = "or-tools_amd64_ubuntu-18.04_v#{version}.tar.gz"
|
19
|
+
checksum = "b641677cc3e1095b7e8efd9c5c948698f5e2c238d10d06f1abf0b0ee240addf2"
|
20
|
+
elsif os == "Debian" && os_version == "11"
|
21
|
+
filename = "or-tools_amd64_debian-11_v#{version}.tar.gz"
|
22
|
+
checksum = "de7e63988fc62c64718d8f8f37f98a1c589c89ebc46fc1f378da4b66ad385ff1"
|
20
23
|
elsif os == "Debian" && os_version == "10"
|
21
|
-
filename = "or-
|
22
|
-
checksum = "
|
24
|
+
filename = "or-tools_amd64_debian-10_v#{version}.tar.gz"
|
25
|
+
checksum = "80411caeccac079fe8ee6018ceae844f5f04d2deecacd3406d51354dea5435e4"
|
23
26
|
elsif os == "CentOS" && os_version == "8"
|
24
|
-
filename = "or-
|
25
|
-
checksum = "
|
27
|
+
filename = "or-tools_amd64_centos-8_v#{version}.tar.gz"
|
28
|
+
checksum = "fe23b04dd7a20c5902fbf89bb626080296489a05e0bfb39225e71be5e9cee1ac"
|
26
29
|
elsif os == "CentOS" && os_version == "7"
|
27
|
-
filename = "or-
|
28
|
-
checksum = "
|
30
|
+
filename = "or-tools_amd64_centos-7_v#{version}.tar.gz"
|
31
|
+
checksum = "ef48363b27591c25f8702e085024aa7b5f5190ad94c859481116538f04c124f9"
|
29
32
|
else
|
30
33
|
platform =
|
31
34
|
if Gem.win_platform?
|
data/lib/or_tools/cp_solver.rb
CHANGED
@@ -6,8 +6,8 @@ module ORTools
|
|
6
6
|
|
7
7
|
def_delegators :@response, :objective_value, :num_conflicts, :num_branches, :wall_time
|
8
8
|
|
9
|
-
def solve(model)
|
10
|
-
@response = _solve(model, parameters)
|
9
|
+
def solve(model, observer = nil)
|
10
|
+
@response = _solve(model, parameters, observer)
|
11
11
|
@response.status
|
12
12
|
end
|
13
13
|
|
@@ -20,13 +20,19 @@ module ORTools
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def solve_with_solution_callback(model, observer)
|
23
|
-
|
24
|
-
|
23
|
+
warn "[or-tools] solve_with_solution_callback is deprecated; use solve(model, callback)"
|
24
|
+
solve(model, observer)
|
25
25
|
end
|
26
26
|
|
27
27
|
def search_for_all_solutions(model, observer)
|
28
|
-
|
29
|
-
|
28
|
+
warn "[or-tools] search_for_all_solutions is deprecated; use solve() with solver.parameters.enumerate_all_solutions = true"
|
29
|
+
previous_value = parameters.enumerate_all_solutions
|
30
|
+
begin
|
31
|
+
parameters.enumerate_all_solutions = true
|
32
|
+
solve(model, observer)
|
33
|
+
ensure
|
34
|
+
parameters.enumerate_all_solutions = previous_value
|
35
|
+
end
|
30
36
|
end
|
31
37
|
|
32
38
|
def sufficient_assumptions_for_infeasibility
|
data/lib/or_tools/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: or-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rice
|