or-tools 0.11.1 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/ext/or-tools/constraint.cpp +15 -2
- data/ext/or-tools/extconf.rb +1 -1
- data/ext/or-tools/routing.cpp +4 -2
- data/ext/or-tools/vendor.rb +16 -20
- data/lib/or_tools/sudoku.rb +1 -1
- data/lib/or_tools/sum_array.rb +1 -1
- data/lib/or_tools/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55a9b05e208ea0dd70243881bf35ce603f2d68b4899bf0595b035329c484b7b7
|
4
|
+
data.tar.gz: 201d0173f91ccc86ebb351e2ee87b72184d5fd08ce755875f930742b1a2b8632
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19a28702b80c76dbc2d9cb868a2d5b627c92036253ea5076ea5d070578064f3b0b4065c84e7ea4edd1c324d58b10655960b15c0f4a104d00adaa89e70aecaa19
|
7
|
+
data.tar.gz: f40224649c5d1335d616f4bc0937c0a26a22d84b397d11ee6e2dd6637606d37ea10070b4c267a7497781db80bfdd3b663d24a6660fc911d19dd86fb602ceb152
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
## 0.13.0 (2024-09-17)
|
2
|
+
|
3
|
+
- Updated OR-Tools to 9.11
|
4
|
+
- Restored binary installation for Ubuntu 20.04
|
5
|
+
- Dropped binary installation for CentOS 7
|
6
|
+
- Removed dependency on `csv` gem
|
7
|
+
|
8
|
+
## 0.12.0 (2024-06-02)
|
9
|
+
|
10
|
+
- Updated OR-Tools to 9.10
|
11
|
+
- Added `export_to_file` method to `CpModel`
|
12
|
+
- Added `random_seed` and `random_seed=` methods to `SatParameters`
|
13
|
+
- Added binary installation for Ubuntu 24.04
|
14
|
+
- Dropped binary installation for Ubuntu 20.04 and Debian 11 ARM
|
15
|
+
- Dropped support for Ruby < 3.1
|
16
|
+
|
1
17
|
## 0.11.1 (2023-12-04)
|
2
18
|
|
3
19
|
- Added binary installation for Arch Linux
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[OR-Tools](https://github.com/google/or-tools) - operations research tools - for Ruby
|
4
4
|
|
5
|
-
[![Build Status](https://github.com/ankane/or-tools-ruby/workflows/build/badge.svg
|
5
|
+
[![Build Status](https://github.com/ankane/or-tools-ruby/actions/workflows/build.yml/badge.svg)](https://github.com/ankane/or-tools-ruby/actions)
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
data/ext/or-tools/constraint.cpp
CHANGED
@@ -160,6 +160,14 @@ void init_constraint(Rice::Module& m) {
|
|
160
160
|
.define_method("cp_model_presolve=",
|
161
161
|
[](SatParameters& self, bool value) {
|
162
162
|
self.set_cp_model_presolve(value);
|
163
|
+
})
|
164
|
+
.define_method("random_seed",
|
165
|
+
[](SatParameters& self) {
|
166
|
+
return self.random_seed();
|
167
|
+
})
|
168
|
+
.define_method("random_seed=",
|
169
|
+
[](SatParameters& self, int32_t value) {
|
170
|
+
self.set_random_seed(value);
|
163
171
|
});
|
164
172
|
|
165
173
|
Rice::define_class_under<CpModelBuilder>(m, "CpModel")
|
@@ -350,6 +358,11 @@ void init_constraint(Rice::Module& m) {
|
|
350
358
|
[](CpModelBuilder& self) {
|
351
359
|
self.ClearAssumptions();
|
352
360
|
})
|
361
|
+
.define_method(
|
362
|
+
"export_to_file",
|
363
|
+
[](CpModelBuilder& self, const std::string& filename) {
|
364
|
+
return self.ExportToFile(filename);
|
365
|
+
})
|
353
366
|
.define_method(
|
354
367
|
"to_s",
|
355
368
|
[](CpModelBuilder& self) {
|
@@ -432,12 +445,12 @@ void init_constraint(Rice::Module& m) {
|
|
432
445
|
})
|
433
446
|
.define_method(
|
434
447
|
"_solution_integer_value",
|
435
|
-
[](Object self, CpSolverResponse& response, IntVar
|
448
|
+
[](Object self, const CpSolverResponse& response, IntVar x) {
|
436
449
|
return SolutionIntegerValue(response, x);
|
437
450
|
})
|
438
451
|
.define_method(
|
439
452
|
"_solution_boolean_value",
|
440
|
-
[](Object self, CpSolverResponse& response, BoolVar
|
453
|
+
[](Object self, const CpSolverResponse& response, BoolVar x) {
|
441
454
|
return SolutionBooleanValue(response, x);
|
442
455
|
});
|
443
456
|
}
|
data/ext/or-tools/extconf.rb
CHANGED
@@ -19,7 +19,7 @@ else
|
|
19
19
|
|
20
20
|
# make rpath relative
|
21
21
|
# use double dollar sign and single quotes to escape properly
|
22
|
-
rpath_prefix = RbConfig::CONFIG["host_os"]
|
22
|
+
rpath_prefix = RbConfig::CONFIG["host_os"].match?(/darwin/) ? "@loader_path" : "$$ORIGIN"
|
23
23
|
rpath = "'#{rpath_prefix}/../../tmp/or-tools/lib'"
|
24
24
|
end
|
25
25
|
|
data/ext/or-tools/routing.cpp
CHANGED
@@ -296,6 +296,8 @@ void init_routing(Rice::Module& m) {
|
|
296
296
|
return operations_research::DefaultRoutingModelParameters();
|
297
297
|
});
|
298
298
|
|
299
|
+
Rice::define_class_under<RoutingModel::ResourceGroup>(m, "ResourceGroup");
|
300
|
+
|
299
301
|
Rice::define_class_under<RoutingModel>(m, "RoutingModel")
|
300
302
|
.define_constructor(Rice::Constructor<RoutingModel, RoutingIndexManager, RoutingModelParameters>(), Rice::Arg("index_manager"), Rice::Arg("parameters") = operations_research::DefaultRoutingModelParameters())
|
301
303
|
.define_method("register_unary_transit_vector", &RoutingModel::RegisterUnaryTransitVector)
|
@@ -307,7 +309,7 @@ void init_routing(Rice::Module& m) {
|
|
307
309
|
return Rice::detail::From_Ruby<int64_t>().convert(callback.call("call", from_index));
|
308
310
|
}
|
309
311
|
);
|
310
|
-
})
|
312
|
+
}, Rice::Arg("callback").keepAlive())
|
311
313
|
.define_method("register_transit_matrix", &RoutingModel::RegisterTransitMatrix)
|
312
314
|
.define_method(
|
313
315
|
"register_transit_callback",
|
@@ -317,7 +319,7 @@ void init_routing(Rice::Module& m) {
|
|
317
319
|
return Rice::detail::From_Ruby<int64_t>().convert(callback.call("call", from_index, to_index));
|
318
320
|
}
|
319
321
|
);
|
320
|
-
})
|
322
|
+
}, Rice::Arg("callback").keepAlive())
|
321
323
|
.define_method("add_dimension", &RoutingModel::AddDimension)
|
322
324
|
.define_method("add_dimension_with_vehicle_transits", &RoutingModel::AddDimensionWithVehicleTransits)
|
323
325
|
.define_method("add_dimension_with_vehicle_capacity", &RoutingModel::AddDimensionWithVehicleCapacity)
|
data/ext/or-tools/vendor.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
|
-
require "csv"
|
2
1
|
require "digest"
|
3
2
|
require "fileutils"
|
4
3
|
require "net/http"
|
5
4
|
require "tmpdir"
|
6
5
|
|
7
|
-
version = "9.
|
6
|
+
version = "9.11.4210"
|
8
7
|
|
9
8
|
arch = RbConfig::CONFIG["host_cpu"]
|
10
|
-
arm = arch
|
9
|
+
arm = arch.match?(/arm|aarch64/i)
|
11
10
|
|
12
|
-
if RbConfig::CONFIG["host_os"]
|
11
|
+
if RbConfig::CONFIG["host_os"].match?(/darwin/i)
|
13
12
|
if arm
|
14
|
-
filename = "or-tools_arm64_macOS-14.1_cpp_v#{version}.tar.gz"
|
15
|
-
checksum = "
|
13
|
+
filename = "or-tools_arm64_macOS-14.6.1_cpp_v#{version}.tar.gz"
|
14
|
+
checksum = "a106668eb1975c1672874ef24b4f8e2e56669467a63349e5ea8ef5419814c31b"
|
16
15
|
else
|
17
|
-
filename = "or-tools_x86_64_macOS-14.1_cpp_v#{version}.tar.gz"
|
18
|
-
checksum = "
|
16
|
+
filename = "or-tools_x86_64_macOS-14.6.1_cpp_v#{version}.tar.gz"
|
17
|
+
checksum = "cc87a7f8c68ec4fed6c6de6565b0b625f2f0047185a8a4449ef4b5a305b60e55"
|
19
18
|
end
|
20
19
|
else
|
21
20
|
# try /etc/os-release with fallback to /usr/lib/os-release
|
@@ -23,29 +22,26 @@ else
|
|
23
22
|
os_filename = File.exist?("/etc/os-release") ? "/etc/os-release" : "/usr/lib/os-release"
|
24
23
|
|
25
24
|
# for safety, parse rather than source
|
26
|
-
os_info =
|
25
|
+
os_info = File.readlines(os_filename, chomp: true).to_h { |v| v.split("=", 2) }.transform_values { |v| v.delete_prefix('"').delete_suffix('"') } rescue {}
|
27
26
|
|
28
27
|
os = os_info["ID"]
|
29
28
|
os_version = os_info["VERSION_ID"]
|
30
29
|
|
31
|
-
if os == "ubuntu" && os_version == "
|
30
|
+
if os == "ubuntu" && os_version == "24.04" && !arm
|
31
|
+
filename = "or-tools_amd64_ubuntu-24.04_cpp_v#{version}.tar.gz"
|
32
|
+
checksum = "71761d93171b111fca736647a6cd00cb9e606474df597a8b48f3f5f2c73d4c0f"
|
33
|
+
elsif os == "ubuntu" && os_version == "22.04" && !arm
|
32
34
|
filename = "or-tools_amd64_ubuntu-22.04_cpp_v#{version}.tar.gz"
|
33
|
-
checksum = "
|
35
|
+
checksum = "f613574d4eae01afd966c8bde199990cbd9fad46035e675d71f17f5c7477eed4"
|
34
36
|
elsif os == "ubuntu" && os_version == "20.04" && !arm
|
35
37
|
filename = "or-tools_amd64_ubuntu-20.04_cpp_v#{version}.tar.gz"
|
36
|
-
checksum = "
|
38
|
+
checksum = "190b85f4510cab55fcb50b9850a0e2f94b2bdf5e266580650efbc5aaab760683"
|
37
39
|
elsif os == "debian" && os_version == "11" && !arm
|
38
40
|
filename = "or-tools_amd64_debian-11_cpp_v#{version}.tar.gz"
|
39
|
-
checksum = "
|
40
|
-
elsif os == "debian" && os_version == "11" && arm
|
41
|
-
filename = "or-tools_arm64_debian-11_cpp_v#{version}.tar.gz"
|
42
|
-
checksum = "77a88d01eb612ffac0f6e030e30e58a3d171fe75d93a527ec55a06f9070332ab"
|
43
|
-
elsif os == "centos" && os_version == "7" && !arm
|
44
|
-
filename = "or-tools_amd64_centos-7_cpp_v#{version}.tar.gz"
|
45
|
-
checksum = "d9f193572d3a38b3062ae4cb89afc654e662eb734a9361b1575d649b9530cf60"
|
41
|
+
checksum = "a8354696f365aa13a2375da5f8f6cfd8785430681addcd887bfd194851dd4710"
|
46
42
|
elsif os == "arch" && !arm
|
47
43
|
filename = "or-tools_amd64_archlinux_cpp_v#{version}.tar.gz"
|
48
|
-
checksum = "
|
44
|
+
checksum = "ac892a949d871294b7e26b0730440ab8629b4021bf3c1641bc7c8fb09b45081f"
|
49
45
|
else
|
50
46
|
platform =
|
51
47
|
if Gem.win_platform?
|
data/lib/or_tools/sudoku.rb
CHANGED
@@ -4,7 +4,7 @@ module ORTools
|
|
4
4
|
|
5
5
|
def initialize(initial_grid, x: false, magic_square: false, anti_knight: false, anti_king: false, non_consecutive: false)
|
6
6
|
raise ArgumentError, "Grid must be 9x9" unless initial_grid.size == 9 && initial_grid.all? { |r| r.size == 9 }
|
7
|
-
raise ArgumentError, "Grid must contain values between 0 and 9" unless initial_grid.flatten(1).all? { |v| (0..9).
|
7
|
+
raise ArgumentError, "Grid must contain values between 0 and 9" unless initial_grid.flatten(1).all? { |v| (0..9).cover?(v) }
|
8
8
|
|
9
9
|
model = ORTools::CpModel.new
|
10
10
|
|
data/lib/or_tools/sum_array.rb
CHANGED
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.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rice
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '4.
|
19
|
+
version: '4.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '4.
|
26
|
+
version: '4.3'
|
27
27
|
description:
|
28
28
|
email: andrew@ankane.org
|
29
29
|
executables: []
|
@@ -85,14 +85,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
85
|
requirements:
|
86
86
|
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '3'
|
88
|
+
version: '3.1'
|
89
89
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
90
|
requirements:
|
91
91
|
- - ">="
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
94
|
requirements: []
|
95
|
-
rubygems_version: 3.
|
95
|
+
rubygems_version: 3.5.16
|
96
96
|
signing_key:
|
97
97
|
specification_version: 4
|
98
98
|
summary: Operations research tools for Ruby
|