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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c16581924f813458dc535d2a8804bf02a7f0a605fac108d14894f13ed7af984a
4
- data.tar.gz: 28bd124da203c4dd0ac50ee86aca3deb7ba283a1cbd711521985972a02bdcaa1
3
+ metadata.gz: e88bfc983ea525a514082c15ad21c53f9e35f8b1d291d55f6810a0c47c7a2fa8
4
+ data.tar.gz: d3101dceed98ebd35f788c1cd5df122078cd435f5bceb21cf4e7a1b13dd2ac04
5
5
  SHA512:
6
- metadata.gz: 0612e5bfcf96ba9ec2591dab7bbfe175625f874ff89e87a168d771a0f81948cb4d8d29e31de0487470eb3b993ef53b793ac25a0b078c5cc54385d4cd3bb159f9
7
- data.tar.gz: dd548021defe7c1249ecee70790cb29f4c85a5ec04cace94cc9bfa0192b24d68e20040a7dd355b148f75f443bf882cc41ec3ea6613785a24aeb4a37674ca8017
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.solve_with_solution_callback(model, solution_printer)
2142
+ solver.solve(model, solution_printer)
2143
2143
 
2144
2144
  puts "Statistics"
2145
2145
  puts " - conflicts : %i" % solver.num_conflicts
@@ -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("max_time_in_seconds=",
135
- [](SatParameters& self, double value) {
136
- self.set_max_time_in_seconds(value);
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
- "_solve_with_observer",
381
- [](Object self, CpModelBuilder& model, SatParameters& parameters, Object callback, bool all_solutions) {
391
+ "_solve",
392
+ [](Object self, CpModelBuilder& model, SatParameters& parameters, Object callback) {
382
393
  Model m;
383
394
 
384
- if (all_solutions) {
385
- // set parameters for SearchForAllSolutions
386
- parameters.set_enumerate_all_solutions(true);
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
  })
@@ -3,29 +3,32 @@ require "fileutils"
3
3
  require "net/http"
4
4
  require "tmpdir"
5
5
 
6
- version = "9.0.9048"
6
+ version = "9.1.9490"
7
7
 
8
8
  if RbConfig::CONFIG["host_os"] =~ /darwin/i
9
- filename = "or-tools_MacOsX-11.2.3_v#{version}.tar.gz"
10
- checksum = "adf73a00d4ec49558b67be5ce3cfc8f30268da2253b35feb11d0d40700550bf6"
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-tools_ubuntu-20.04_v#{version}.tar.gz"
16
- checksum = "5565343c1c310d2885a40ce850ae7e3468299b3fee97ae8eed8425ce06bd4960"
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-tools_ubuntu-18.04_v#{version}.tar.gz"
19
- checksum = "08cf548d0179f7fa814bb7458be94cd1b8a3de14985e6a9faf6118a1d8571539"
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-tools_debian-10_v#{version}.tar.gz"
22
- checksum = "063fb1d8765ae23b0bb25b9c561e904532713416fe0458f7db45a0f72190eb50"
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-tools_centos-8_v#{version}.tar.gz"
25
- checksum = "c98212ed4fc699d8ae70c1f53cd1d8dacd28e52970336fab5b86dedf7406f215"
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-tools_centos-7_v#{version}.tar.gz"
28
- checksum = "b992bda4614bbc703583b0e9edcd2ade54bacfb9909399b20c8aa95ff7197d68"
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?
@@ -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
- @response = _solve_with_observer(model, parameters, observer, false)
24
- @response.status
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
- @response = _solve_with_observer(model, parameters, observer, true)
29
- @response.status
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
@@ -1,3 +1,3 @@
1
1
  module ORTools
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.4"
3
3
  end
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.3
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-08-03 00:00:00.000000000 Z
11
+ date: 2021-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice