or-tools 0.5.3 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|