or-tools 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,19 @@
1
+ module ORTools
2
+ class LinearExpr
3
+ def +(other)
4
+ if other.is_a?(LinearExpr)
5
+ _add_linear_expr(other)
6
+ else
7
+ _add_mp_variable(other)
8
+ end
9
+ end
10
+
11
+ def <=(other)
12
+ if other.is_a?(LinearExpr)
13
+ _lte_linear_expr(other)
14
+ else
15
+ _lte_double(other)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ module ORTools
2
+ class RoutingModel
3
+ def solve(solution_limit: nil, time_limit: nil, lns_time_limit: nil,
4
+ first_solution_strategy: nil, local_search_metaheuristic: nil,
5
+ log_search: nil)
6
+
7
+ search_parameters = ORTools.default_routing_search_parameters
8
+ search_parameters.solution_limit = solution_limit if solution_limit
9
+ search_parameters.time_limit = time_limit if time_limit
10
+ search_parameters.lns_time_limit = lns_time_limit if lns_time_limit
11
+ search_parameters.first_solution_strategy = first_solution_strategy if first_solution_strategy
12
+ search_parameters.local_search_metaheuristic = local_search_metaheuristic if local_search_metaheuristic
13
+ search_parameters.log_search = log_search unless log_search.nil?
14
+ solve_with_parameters(search_parameters)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ module ORTools
2
+ class SatIntVar
3
+ include ComparisonOperators
4
+
5
+ def *(other)
6
+ SatLinearExpr.new([[self, other]])
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,35 @@
1
+ module ORTools
2
+ class SatLinearExpr
3
+ include ComparisonOperators
4
+
5
+ attr_reader :vars
6
+
7
+ def initialize(vars = [])
8
+ @vars = vars
9
+ end
10
+
11
+ def +(other)
12
+ add(other, 1)
13
+ end
14
+
15
+ def -(other)
16
+ add(other, -1)
17
+ end
18
+
19
+ private
20
+
21
+ def add(other, sign)
22
+ other_vars =
23
+ case other
24
+ when SatLinearExpr
25
+ other.vars
26
+ when BoolVar
27
+ [[other, 1]]
28
+ else
29
+ raise ArgumentError, "Unsupported type"
30
+ end
31
+
32
+ self.class.new(vars + other_vars.map { |a, b| [a, sign * b] })
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,7 @@
1
+ module ORTools
2
+ class Solver
3
+ def sum(arr)
4
+ arr.sum(LinearExpr.new)
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module ORTools
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
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.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-13 00:00:00.000000000 Z
11
+ date: 2020-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -94,9 +94,17 @@ files:
94
94
  - ext/or-tools/ext.cpp
95
95
  - ext/or-tools/extconf.rb
96
96
  - lib/or-tools.rb
97
+ - lib/or_tools/comparison.rb
98
+ - lib/or_tools/comparison_operators.rb
99
+ - lib/or_tools/cp_model.rb
97
100
  - lib/or_tools/cp_solver.rb
98
101
  - lib/or_tools/ext.bundle
99
102
  - lib/or_tools/knapsack_solver.rb
103
+ - lib/or_tools/linear_expr.rb
104
+ - lib/or_tools/routing_model.rb
105
+ - lib/or_tools/sat_int_var.rb
106
+ - lib/or_tools/sat_linear_expr.rb
107
+ - lib/or_tools/solver.rb
100
108
  - lib/or_tools/version.rb
101
109
  homepage: https://github.com/ankane/or-tools
102
110
  licenses: