jijmodeling 2.0.0b2__cp38-abi3-win_amd64.whl → 2.0.0b3__cp38-abi3-win_amd64.whl

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.

Potentially problematic release.


This version of jijmodeling might be problematic. Click here for more details.

jijmodeling/__init__.pyi DELETED
@@ -1,1657 +0,0 @@
1
- # This file is automatically generated by pyo3_stub_gen
2
- # ruff: noqa: E501, F401
3
-
4
- import builtins
5
- import numpy
6
- import numpy.typing
7
- import ommx.v1
8
- import typing
9
- from . import _jijmodeling
10
- from enum import Enum
11
-
12
- __version__: builtins.str
13
- class CompileError(builtins.Exception):
14
- ...
15
-
16
- class Compiler:
17
- def get_constraint_id_by_name(self, name:builtins.str) -> dict:
18
- r"""
19
- Obtains a dictionary from subscript to constraint Id.
20
- """
21
- def eval_function(self, expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> ommx.v1.Function: ...
22
- def eval_constraints(self, constraint:Constraint) -> builtins.list[ommx.v1.Constraint]: ...
23
- def eval_problem(self, problem:Problem) -> ommx.v1.Instance: ...
24
- def get_decision_variable_by_name(self, name:builtins.str, subscript:typing.Optional[typing.Sequence[builtins.int]]=None) -> ommx.v1.DecisionVariable: ...
25
- def __new__(cls, namespace:Namespace, instance_data:typing.Mapping[builtins.str, builtins.int | builtins.float | numpy.typing.NDArray[numpy.float64] | numpy.typing.NDArray[numpy.int64] | list]) -> Compiler: ...
26
- @staticmethod
27
- def from_problem(problem:Problem, instance_data:typing.Mapping[builtins.str, builtins.int | builtins.float | numpy.typing.NDArray[numpy.float64] | numpy.typing.NDArray[numpy.int64] | list]) -> Compiler: ...
28
-
29
- class Constraint:
30
- @property
31
- def name(self) -> builtins.str: ...
32
- @property
33
- def sense(self) -> ConstraintSense: ...
34
- @property
35
- def left(self) -> Expression: ...
36
- @property
37
- def right(self) -> Expression: ...
38
- @property
39
- def expression(self) -> Expression: ...
40
- @property
41
- def is_equality(self) -> builtins.bool:
42
- r"""
43
- Returns true if the constraint is an equality constraint.
44
-
45
- Returns
46
- --------
47
- `bool`: True if the constraint is an equality constraint. Otherwise, False.
48
-
49
- Examples
50
- ---------
51
-
52
- ```python
53
- >>> import jijmodeling as jm
54
- >>> N = jm.Placeholder("N")
55
- >>> i = jm.Element("i", belong_to=N)
56
- >>> x = jm.BinaryVar("x", shape=(N,))
57
- >>> constraint = jm.Constraint("constraint", jm.sum(i, x[i]) == 1)
58
- >>> assert constraint.is_equality()
59
-
60
- ```
61
- """
62
- @property
63
- def is_inequality(self) -> builtins.bool:
64
- r"""
65
- Returns true if the constraint is an inequality constraint.
66
-
67
- Returns
68
- --------
69
- `bool`: True if the constraint is an inequality constraint. Otherwise, False.
70
-
71
- Examples
72
- ---------
73
-
74
- ```python
75
- >>> import jijmodeling as jm
76
- >>> N = jm.Placeholder("N")
77
- >>> i = jm.Element("i", belong_to=N)
78
- >>> x = jm.BinaryVar("x", shape=(N,))
79
- >>> constraint = jm.Constraint("constraint", jm.sum(i, x[i]) <= 1)
80
- >>> assert constraint.is_inequality()
81
-
82
- ```
83
- """
84
- def __repr__(self) -> builtins.str: ...
85
- def _repr_latex_(self) -> builtins.str: ...
86
-
87
- class DecisionVar:
88
- r"""
89
- A class representing a decision variable in a mathematical model.
90
- As the decision variables must belong to some namespace, you CANNOT construct it directly.
91
- Instead, you should use `Problem.DecisionVar`, `Problem.BinaryVar`,
92
- `Problem.IntegerVar`, `Problem.ContinuousVar`,`Problem.SemiIntegerVar`,
93
- or `Problem.SemiContinuousVar`.
94
-
95
- The `DecisonVar` class is used to create a continuous variable.
96
- The lower and upper bounds of the variable can be any scalar or tensor with the same shape as the variable expression which DOES NOT contain any decision variable.
97
-
98
- The `DecisionVar` class itself represents a definition of a decision variable,
99
- but you can use ordinary operations on `Expression`s to create expressions that contain decision variables.
100
-
101
- Attributes
102
- -----------
103
- - `name` (`str`): A name of the continuous variable.
104
- - `kind` (`DecisionVarKind`): The kind of the decision variable, which can be one of the following:
105
- - `BINARY`: A binary variable.
106
- - `INTEGER`: An integer variable.
107
- - `CONTINUOUS`: A continuous variable.
108
- - `SEMI_INTEGER`: A semi-integer variable.
109
- - `SEMI_CONTINUOUS`: A semi-continuous variable.
110
- - `shape` (`tuple`): A tuple with the size of each dimension of the integer variable. Empty if the variable is not multi-dimensional.
111
- - `lower_bound`: The lower bound of the variable.
112
- - `upper_bound`: The upper bound of the variable.
113
- - `description` (`str`): A description of the continuous variable.
114
-
115
- Examples
116
- ---------
117
- Create a scalar continuous variable whose name is "z" and domain is `[-1, 1]`.
118
-
119
- ```python
120
- >>> import jijmodeling as jm
121
- >>> problem = jm.Problem("example")
122
- >>> z = problem.DecisionVar(
123
- >>> "z",
124
- >>> kind=jm.DecisionVarKind.CONTINUOUS,
125
- >>> lower_bound=-1, upper_bound=1
126
- >>> )
127
-
128
- ```
129
-
130
- or equivalently:
131
-
132
- ```python
133
- >>> import jijmodeling as jm
134
- >>> problem = jm.Problem("example")
135
- >>> z = problem.ContinuousVar("z", lower_bound=-1, upper_bound=1)
136
-
137
- ```
138
-
139
- Create a 2-dimensional integer variable...
140
- - whose name is "x".
141
- - whose domain is [0, 2].
142
- - where each dimension has length 2 (making this a 2x2 matrix).
143
-
144
- ```python
145
- >>> import jijmodeling as jm
146
- >>> problem = jm.Problem("example")
147
- >>> x = problem.IntegerVar("x", shape=[2, 2], lower_bound=0, upper_bound=2)
148
-
149
- ```
150
-
151
- Create a 1-dimensional continuous variable, and construct an expression
152
- accessing the 123rd component of it..
153
-
154
- ```python
155
- >>> import jijmodeling as jm
156
- >>> problem = jm.Problem("example")
157
- >>> x = problem.ContinuousVar("x", shape=[124], lower_bound=0, upper_bound=2)
158
- >>> x[123]
159
- x[123]
160
-
161
- ```
162
- """
163
- @property
164
- def name(self) -> builtins.str: ...
165
- @property
166
- def kind(self) -> DecisionVarKind: ...
167
- @property
168
- def description(self) -> builtins.str: ...
169
- @property
170
- def ndim(self) -> builtins.int: ...
171
- @property
172
- def shape(self) -> tuple: ...
173
- @property
174
- def lower_bound(self) -> Expression | builtins.list[Expression]: ...
175
- @property
176
- def upper_bound(self) -> Expression | builtins.list[Expression]: ...
177
- def __repr__(self) -> builtins.str: ...
178
- def _repr_latex_(self) -> builtins.str: ...
179
- @typing.overload
180
- def max(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
181
- r"""
182
- Return the larger of this expression and rhs.
183
- """
184
- @typing.overload
185
- def max(self) -> Expression:
186
- r"""
187
- Return the maximum element of this foldable expression.
188
- """
189
- @typing.overload
190
- def min(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
191
- r"""
192
- Return the smaller of this expression and rhs.
193
- """
194
- @typing.overload
195
- def min(self) -> Expression:
196
- r"""
197
- Return the minimum element of this foldable expression.
198
- """
199
- def __pow__(self, exponent:typing.Any, modulo:typing.Optional[typing.Any]=None) -> Expression: ...
200
- def __rpow__(self, base:typing.Any, modulo:typing.Optional[typing.Any]=None) -> Expression: ...
201
- def __add__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
202
- def __radd__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
203
- def __sub__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
204
- def __rsub__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
205
- def __mul__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
206
- def __rmul__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
207
- def __truediv__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
208
- def __rtruediv__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
209
- def __mod__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
210
- def __rmod__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
211
- def __neg__(self) -> Expression: ...
212
- def abs(self) -> Expression: ...
213
- def sqrt(self) -> Expression: ...
214
- def sin(self) -> Expression: ...
215
- def cos(self) -> Expression: ...
216
- def tan(self) -> Expression: ...
217
- def asin(self) -> Expression: ...
218
- def acos(self) -> Expression: ...
219
- def atan(self) -> Expression: ...
220
- def sinh(self) -> Expression: ...
221
- def cosh(self) -> Expression: ...
222
- def tanh(self) -> Expression: ...
223
- def asinh(self) -> Expression: ...
224
- def acosh(self) -> Expression: ...
225
- def atanh(self) -> Expression: ...
226
- def exp(self) -> Expression: ...
227
- def ln(self) -> Expression: ...
228
- def log10(self) -> Expression: ...
229
- def log2(self) -> Expression: ...
230
- def ceil(self) -> Expression: ...
231
- def floor(self) -> Expression: ...
232
- def map(self, func:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
233
- def roll(self, shift:typing.Any, *, axis:typing.Optional[builtins.int]=None) -> Expression: ...
234
- def filter(self, predicate:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
235
- def flat_map(self, func:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
236
- def rows(self) -> Expression: ...
237
- def __getitem__(self, subscripts:typing.Any) -> Expression: ...
238
- def sum(self, axis:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | builtins.int | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[builtins.int]]=None) -> Expression: ...
239
- def prod(self, axis:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | builtins.int | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[builtins.int]]=None) -> Expression: ...
240
- def __eq__(self, other:typing.Any) -> Expression: ... # type: ignore[reportIncompatibleMethodOverride]
241
- def __ne__(self, other:typing.Any) -> Expression: ... # type: ignore[reportIncompatibleMethodOverride]
242
- def __lt__(self, other:typing.Any) -> Expression: ...
243
- def __le__(self, other:typing.Any) -> Expression: ...
244
- def __gt__(self, other:typing.Any) -> Expression: ...
245
- def __ge__(self, other:typing.Any) -> Expression: ...
246
-
247
- class DecoratedProblem(typing.Protocol):
248
- r"""
249
- A variant of `Problem` that is only available in Decorator API provided by `Problem.compile`.
250
- """
251
- @typing.overload
252
- def Constraint(self, name:builtins.str, expressions:typing.Generator[Expression], description:typing.Optional[builtins.str]=None) -> Constraint:
253
- r"""
254
- Constructs `Constraint` object with comprehension syntax, __WITHOUT__ registering it to the problem.
255
- Use `+=` operator to register the constraint to the problem.
256
- """
257
- @typing.overload
258
- def Constraint(self, name:builtins.str, expression:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], domain:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], description:typing.Optional[builtins.str]=None) -> Constraint:
259
- r"""
260
- Constructs `Constraint` object from index set and function to build comparison expression from each index, __WITHOUT__ registering it to the problem.
261
- Use `+=` operator to register the constraint to the problem.
262
- """
263
- @typing.overload
264
- def Constraint(self, name:builtins.str, expression:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], description:typing.Optional[builtins.str]=None) -> Constraint:
265
- r"""
266
- Constructs `Constraint` object from comparison expression, __WITHOUT__ registering it to the problem.
267
- Use `+=` operator to register the constraint to the problem.
268
- """
269
- def __iadd__(self, other:typing.Any) -> DecoratedProblem: ...
270
- def used_placeholders(self) -> builtins.list[Placeholder]: ...
271
- def get_problem_schema(self) -> dict:
272
- r"""
273
- Returns the schema of the problem.
274
-
275
- Returns
276
- --------
277
- - `schema`: The dictionary containing the schema of the problem.
278
- """
279
- def generate_random_dataset(self, _default:typing.Any, _options:typing.Any, _seed:typing.Optional[builtins.int]) -> typing.Any:
280
- r"""
281
- Generates a dictionary of random `InstanceDataValue` for a given problem.
282
- To generate `ommx.v1.Instance` object directly, use `InstanceDataValue.generate_random_instance` instead.
283
-
284
- Args
285
- -----
286
- - `options` (optional): a dictionary of range parameters for each separate placeholders. The key must be the name of the placeholder and the value must be range parameter (as described in "Range Parameters and Range Syntax" below).
287
- - `default` (optional): default range parameters for placeholders which is not specified in `options`.
288
- - `seed` (optional): seed for random number generation.
289
-
290
- Returns
291
- --------
292
- `dict`: The dictionary from the name of placeholders to the generated `InstanceDataValue` objects. To be fed to `Interpreter.eval_problem`.
293
-
294
- Range Parameters and Range Syntax
295
- ----------------------------------
296
- A range parameter is a dictionary consisting of the following fields:
297
- - `size` (optional): interval of natural numbers for the size of each array dimension (default: `range(1, 6)`)
298
- - `value` (optional): interval of real numbers for the value of each array element (default: `range(-1.0, 1.0)` - a uniform distribution on a closed interval $[-1.0, 1.0]$).
299
-
300
- Example range parameter config:
301
-
302
- ```python
303
- {"size": range(2, 10), "value": jm.range.value.closed(100.0, 200.0)}
304
- ```
305
-
306
- Intervals are expressed as a range object.
307
- Currently, the following syntax is supported for range objects:
308
-
309
- 1. Direct value of type `int` or `float` - it corresponds to a singleton interval $[a, a] = \{a\}$. In random generation context, this just means a constant fixed value.
310
- 2. Use the functions from `jijmodeling.range`, `jijmodeling.range.size`, or `jijmodeling.range.value` modules.
311
- - Use functions from `jij.modeling.range.size` to specify (non-negative) integer intervals, and `jij.modeling.range.value` for real intervals. `jij.modeling.range` dynamically determines the type of the range based on the input.
312
- - These three modules provides the following combinators (see the module documents for more details.):
313
- - `closed(a, b)`: a closed interval $[a, b]$
314
- - `open(a, b)`: an open interval $(a, b)$
315
- - `closed_open(a, b)`: an upper half-open interval $[a, b)$
316
- - `open_closed(a, b)`: a lower half-open interval $(a, b]$
317
- - `greater_than(a)`: an open interval $(a, \infty)$
318
- - `at_least(a)`: a closed interval $[a, \infty)$
319
- - `less_than(a)`: an open interval $(-\infty, a)$
320
- - `at_most(a)`: a closed interval $(-\infty, a]$
321
- 3. Use `range` builtin function: this is equivalent to `jijmodeling.range.value.closed_open(a, b)`.
322
- - Any python range object with `step = 1` can be used as a size range; otherwise it results in runtime error.
323
- 4. Use a tuple: raw tuple `(a, b)` is equivalent to `jijmodeling.range.closed_open(a, b)` if `a` and `b` are either `int` or `float`.
324
- - You can also use bound object as a tuple component; in such case, both tuple components must be one of the following:
325
-
326
- 1. A string `"Unbounded"` means $-\infty$ (in the first component) or $\infty$ (the second).
327
- 2. A dictionary `{"Included": a}` means the endpoint is inclusive.
328
- 3. A dictionary `{"Excluded": a}` means the endpoint is exclusive.
329
- - Examples:
330
- - `(1.2, 4)` is equivalent to `closed_open(1.2, 4)`,
331
- - `(-1, {"Included": 1})` is equivalent to `closed(-1, 1)`,
332
- - `(-5, {"Excluded": 4})` is equivalent to `closed_open(-5, 4)` and built in function `range(-5, 4)`,
333
- - `({"Excluded": 1}, {"Excluded": 2.5})` is equivalent to `open(1, 2.5)`,
334
- - `({"Included": -1}, "Unbounded")` is equivalent to `at_least(-1)`.
335
- - `(5, "Unbounded")` is **INVALID**; `5` must be bound object.
336
- 5. The range object: A dictionary of form `{"start": lb, "end": ub}`, where both `lb` and `ub` are the bound object described as above.
337
-
338
- Examples
339
- ---------
340
- ```python
341
- >>> import jijmodeling as jm
342
- >>> import builtins
343
- >>> N = jm.Placeholder("N", dtype=jm.DataType.INTEGER)
344
- >>> c = jm.Placeholder("c", dtype=jm.DataType.FLOAT, shape=(N,))
345
- >>> x = jm.BinaryVar("x", shape=(N,))
346
- >>> i = jm.Element("i", belong_to=N)
347
-
348
- >>> problem = jm.Problem("problem")
349
- >>> problem += jm.sum(i, c[i] * x[i])
350
-
351
- >>> inputs = problem.generate_random_dataset(
352
- ... options={
353
- ... 'N': {"value": builtins.range(10, 20)},
354
- ... 'c': {"value": jm.range.value.closed(-1.0, 1.0)}
355
- ... # You can also specify "size" for the range of jagged array dimension size.
356
- ... },
357
- ... seed=123 # omittable
358
- ... )
359
- >>> assert set(inputs.keys()) == {"N", "c"}
360
- >>> inputs
361
- {'N': 11.0, 'c': array([ 0.93914459, -0.06511935, -0.7460324 , -0.32443706, 0.99981451,
362
- -0.24407535, 0.31329469, 0.52206453, -0.1291936 , 0.30443087,
363
- 0.53125838])}
364
-
365
- ```
366
- """
367
- def generate_random_instance(self, _default:typing.Any, _options:typing.Any, _seed:typing.Optional[builtins.int], _hints:typing.Optional[typing.Any]) -> typing.Any:
368
- r"""
369
- Generates random `ommx.v1.Instance` for a given problem.
370
- See also `InstanceDataValue.generate_random_dataset`.
371
-
372
- Args
373
- -----
374
- - `options` (optional): a dictionary of range parameters for each separate placeholders. The key must be the name of the placeholder and the value must be range parameter (as described in "Range Parameters and Range Syntax" section in :func:`~jijmodeling.Problem.generate_random_dataset`).
375
- - `default` (optional): default range parameters for placeholders which is not specified in `options`.
376
- - `seed` (optional): seed for random number generation.
377
- - `hints` (optional): the hints to be detected during compilation see `Interpreter.eval_problem` for more details.
378
-
379
- Returns
380
- --------
381
- `instance`: The OMMX v1 instance object.
382
-
383
- Examples
384
- ---------
385
- ```python
386
- >>> import jijmodeling as jm
387
- >>> import builtins
388
- >>> import ommx.v1
389
- >>> N = jm.Placeholder("N", dtype=jm.DataType.INTEGER)
390
- >>> c = jm.Placeholder("c", dtype=jm.DataType.FLOAT, shape=(N,))
391
- >>> x = jm.BinaryVar("x", shape=(N,))
392
- >>> i = jm.Element("i", belong_to=N)
393
-
394
- >>> problem = jm.Problem("problem")
395
- >>> problem += jm.sum(i, c[i] * x[i])
396
-
397
- >>> instance = problem.generate_random_instance(
398
- ... options={
399
- ... 'N': {"value": builtins.range(10, 20)},
400
- ... 'c': {"value": jm.range.value.closed(-1.0, 1.0)}
401
- ... },
402
- ... seed=123
403
- ... )
404
- >>> assert type(instance) is ommx.v1.Instance
405
-
406
- ```
407
- """
408
- def type_of(self, name:builtins.str) -> Type: ...
409
- def infer(self, expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Type: ...
410
- def decision_vars(self) -> builtins.dict[builtins.str, DecisionVar]:
411
- r"""
412
- Returns a dictionary of decision variables in the problem.
413
-
414
- Returns
415
- --------
416
- `dict[str, DecisionVar]`: Dictionary mapping variable names to DecisionVar objects.
417
- """
418
- def placeholders(self) -> builtins.dict[builtins.str, Placeholder]:
419
- r"""
420
- Returns a dictionary of placeholders in the problem.
421
-
422
- Returns
423
- --------
424
- `dict[str, Placeholder]`: Dictionary mapping placeholder names to Placeholder objects.
425
- """
426
- def Placeholder(self, name:typing.Optional[builtins.str]=None, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, dtype:DataType | type | tuple=DataType.FLOAT, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder: ...
427
- def Integer(self, name:typing.Optional[builtins.str]=None, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
428
- r"""
429
- A shorthand for `Problem.Placeholder(dtype=int)`
430
- """
431
- def Float(self, name:typing.Optional[builtins.str]=None, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
432
- r"""
433
- A shorthand for `Problem.Placeholder(dtype=DataType.FLOAT)`
434
- """
435
- def Natural(self, name:typing.Optional[builtins.str]=None, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
436
- r"""
437
- A shorthand for `Problem.Placeholder(dtype=DataType.NATURAL)`
438
- """
439
- def Length(self, name:typing.Optional[builtins.str]=None, *, ndim:typing.Optional[builtins.int]=0, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
440
- r"""
441
- A plceholder expressing array length.
442
- This is just a shorthand for `Problem.Natural()`.
443
- When omitted, `ndim` is set to be `0`.
444
- """
445
- def Dim(self, name:typing.Optional[builtins.str]=None, *, ndim:typing.Optional[builtins.int]=0, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
446
- r"""
447
- A placeholder expressing array dimension.
448
- This is just a shorthand for `Problem.Natural()`.
449
- When omitted, `ndim` is set to be `0`.
450
- """
451
- def Binary(self, name:typing.Optional[builtins.str]=None, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
452
- r"""
453
- A shorthand for `Problem.Placeholder(dtype=DataType.BINARY)`
454
- """
455
- def Graph(self, name:typing.Optional[builtins.str]=None, *, vertex:DataType | type | tuple=DataType.NATURAL, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
456
- r"""
457
- A placeholder expressing a directed graph (without edge weights), represented by a 1-dimensional array of tuples.
458
- This is just a shorthand for `Problem.Placeholder(dtype=(vertex, vertex), ndim=1)`.
459
- """
460
- def DecisionVar(self, name:typing.Optional[builtins.str]=None, *, kind:DecisionVarKind, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar:
461
- r"""
462
- A function to create a decision variable and register to the problem namespace. See `DecisionVar` for more details.
463
-
464
- Args
465
- -----
466
- - `name` (`str`): A name of the binary variable. If omitted, local variable name is used.
467
- - `kind` (`DecisionVarKind`): A kind of the decision variable.
468
- - `shape` (`list | tuple`): A sequence with the size of each dimension of the binary variable. Defaults to an empty tuple (a scalar value).
469
- - Each item in `shape` must be a valid expression evaluating to a non-negative scalar.
470
- - `lower_bound` and `upper_bound` (`jijmodeling.Expression`): A lower and upper bounds of the binary variable.
471
- - `kind` (`DecisionVarKind`): A kind of the decision variable.
472
- - `latex` (`str`, optional): A LaTeX-name of the binary variable to be represented in Jupyter notebook.
473
- - It is set to `name` by default.
474
- - `description` (`str`, optional): A description of the binary variable.
475
-
476
- Examples
477
- ---------
478
- Create a scalar binary variable whose name is "z".
479
-
480
- ```python
481
- >>> import jijmodeling as jm
482
- >>> problem = jm.Problem("my_problem")
483
- >>> z = problem.DecisionVar("z", kind=jm.DecisionVarKind.BINARY, lower_bound=0, upper_bound=1)
484
-
485
- ```
486
-
487
- Create a 2-dimensional binary variable whose name is "x" and has a 2x2 shape.
488
-
489
- ```python
490
- >>> import jijmodeling as jm
491
- >>> problem = jm.Problem("my_problem")
492
- >>> x = problem.BinaryVar("x", shape=[2, 2])
493
-
494
- ```
495
-
496
- Create a 1-dimensional binary variable with the index of `123`.
497
-
498
- ```python
499
- >>> import jijmodeling as jm
500
- >>> problem = jm.Problem("my_problem")
501
- >>> x = jm.BinaryVar("x", shape=[124])
502
- >>> x[123]
503
- BinaryVar(name='x', shape=[NumberLit(value=124)])[NumberLit(value=123)]
504
-
505
- ```
506
- """
507
- def BinaryVar(self, name:typing.Optional[builtins.str]=None, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar:
508
- r"""
509
- A function to create a binary decision variable and register to the problem namespace. See `DecisionVar` for more details.
510
-
511
- Args
512
- -----
513
- - `name` (`str`): A name of the binary variable. If omitted, local variable name is used.
514
- - `shape` (`list | tuple`): A sequence with the size of each dimension of the binary variable. Defaults to an empty tuple (a scalar value).
515
- - Each item in `shape` must be a valid expression evaluating to a non-negative scalar.
516
- - `latex` (`str`, optional): A LaTeX-name of the binary variable to be represented in Jupyter notebook.
517
- - It is set to `name` by default.
518
- - `description` (`str`, optional): A description of the binary variable.
519
-
520
- Examples
521
- ---------
522
- Create a scalar binary variable whose name is "z".
523
-
524
- ```python
525
- >>> import jijmodeling as jm
526
- >>> problem = jm.Problem("my_problem")
527
- >>> z = problem.BinaryVar("z")
528
-
529
- ```
530
-
531
- Create a 2-dimensional binary variable whose name is "x" and has a 2x2 shape.
532
-
533
- ```python
534
- >>> import jijmodeling as jm
535
- >>> problem = jm.Problem("my_problem")
536
- >>> x = problem.BinaryVar("x", shape=[2, 2])
537
-
538
- ```
539
-
540
- Create a 1-dimensional binary variable with the index of `123`.
541
-
542
- ```python
543
- >>> import jijmodeling as jm
544
- >>> problem = jm.Problem("my_problem")
545
- >>> x = problemm.BinaryVar("x", shape=[124])
546
- >>> x[123]
547
- x[123]
548
-
549
- ```
550
- """
551
- def IntegerVar(self, name:typing.Optional[builtins.str]=None, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar:
552
- r"""
553
- A function to create a decision variable and register to the problem namespace. See `DecisionVar` for more details.
554
-
555
- Args
556
- -----
557
- - `name` (`str): A name of the integer variable. If omitted, local variable name is used.
558
- - `shape` (`list | tuple`): A sequence with the size of each dimension of the integer variable. Defaults to an empty tuple (a scalar value).
559
- - Each item in `shape` must be a valid expression evaluating to a non-negative scalar.
560
- - `lower_bound`: The lower bound of the variable.
561
- - `upper_bound`: The upper bound of the variable.
562
- - `latex` (`str`, optional): A LaTeX-name of the integer variable to be represented in Jupyter notebook.
563
- - It is set to `name` by default.
564
- - `description` (`str`, optional): A description of the integer variable.
565
-
566
- Raises
567
- -------
568
- `ModelingError`: Raises if a bound is a `Placeholder` or `Subscript` object whose `ndim`
569
- is neither `0` nor the same value as `ndim` of the integer variable.
570
-
571
- Examples
572
- ---------
573
- Create a scalar integer variable whose name is "z" and domain is `[-1, 1]`.
574
-
575
- ```python
576
- >>> import jijmodeling as jm
577
- >>> problem = jm.Problem("my_problem")
578
- >>> z = problem.IntegerVar("z", lower_bound=-1, upper_bound=1)
579
-
580
- ```
581
-
582
- Create a 2-dimensional integer variable...
583
- - whose name is "x".
584
- - whose domain is [0, 2].
585
- - where each dimension has length 2 (making this a 2x2 matrix).
586
-
587
- ```python
588
- >>> import jijmodeling as jm
589
- >>> problem = jm.Problem("my_problem")
590
- >>> x = problem.IntegerVar("x", shape=[2, 2], lower_bound=0, upper_bound=2)
591
-
592
- ```
593
-
594
- Create a 1-dimensional integer variable with the index of `123`.
595
-
596
- ```python
597
- >>> import jijmodeling as jm
598
- >>> problem = jm.Problem("my_problem")
599
- >>> x = problem.IntegerVar("x", shape=[124], lower_bound=0, upper_bound=2)
600
- >>> x[123]
601
- x[123]
602
-
603
- ```
604
- """
605
- def SemiIntegerVar(self, name:typing.Optional[builtins.str]=None, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar: ...
606
- def ContinuousVar(self, name:typing.Optional[builtins.str]=None, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar:
607
- r"""
608
- A function to create a decision variable and register to the problem namespace. See `DecisionVar` for more details.
609
-
610
- Args
611
- -----
612
- - `name` (`str`): A name of the continuous variable.
613
- - `shape` (`list | tuple`): A sequence with the size of each dimension of the continuous variable. Defaults to an empty tuple (a scalar value).
614
- - Each item in `shape` must be a valid expression evaluating to a non-negative scalar.
615
- - `lower_bound`: The lower bound of the variable.
616
- - `upper_bound`: The upper bound of the variable.
617
- - `latex` (`str`, optional): A LaTeX-name of the continuous variable to be represented in Jupyter notebook.
618
- - It is set to `name` by default.
619
- - `description` (`str`, optional): A description of the continuous variable.
620
-
621
- Raises
622
- -------
623
- `ModelingError`: Raises if a bound is a `Placeholder` or `Subscript` object whose `ndim` is neither `0` nor the same value as `ndim` of the continuous variable.
624
-
625
- Examples
626
- ---------
627
- Create a scalar continuous variable whose name is "z" and domain is `[-1, 1]`.
628
-
629
- ```python
630
- >>> import jijmodeling as jm
631
- >>> z = jm.ContinuousVar("z", lower_bound=-1, upper_bound=1)
632
-
633
- ```
634
-
635
- Create a 2-dimensional continuous variable...
636
- - whose name is "x".
637
- - whose domain is [0, 2].
638
- - where each dimension has length 2 (making this a 2x2 matrix).
639
-
640
- ```python
641
- >>> import jijmodeling as jm
642
- >>> x = jm.ContinuousVar("x", shape=[2, 2], lower_bound=0, upper_bound=2)
643
-
644
- ```
645
-
646
- Create a 1-dimensional continuous variable with the index of `123`.
647
-
648
- ```python
649
- >>> import jijmodeling as jm
650
- >>> x = jm.ContinuousVar("x", shape=[124], lower_bound=0, upper_bound=2)
651
- >>> x[123]
652
- ContinuousVar(name='x', shape=[NumberLit(value=124)], lower_bound=NumberLit(value=0), upper_bound=NumberLit(value=2))[NumberLit(value=123)]
653
-
654
- ```
655
- """
656
- def SemiContinuousVar(self, name:typing.Optional[builtins.str]=None, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar: ...
657
-
658
- class DesugaredProblemBuilder:
659
- def __call__(self) -> None: ...
660
-
661
- class Expression:
662
- r"""
663
- Any expression in Python.
664
- """
665
- def _repr_latex_(self) -> builtins.str: ...
666
- def __call__(self, *args) -> Expression: ...
667
- def shape(self) -> Expression: ...
668
- def len_at(self, axis:builtins.int) -> Expression: ...
669
- def __repr__(self) -> builtins.str: ...
670
- def or_else(self, default:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
671
- r"""
672
- Returns the value inside `option` if `Some`, otherwise returns `default`.
673
- """
674
- def map_or_else(self, default:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], mapper:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
675
- r"""
676
- If self is `Some(value)`, applies `mapper(value)`, otherwise returns `default`.
677
- """
678
- @typing.overload
679
- def max(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
680
- r"""
681
- Return the larger of this expression and rhs.
682
- """
683
- @typing.overload
684
- def max(self) -> Expression:
685
- r"""
686
- Return the maximum element of this foldable expression.
687
- """
688
- @typing.overload
689
- def min(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
690
- r"""
691
- Return the smaller of this expression and rhs.
692
- """
693
- @typing.overload
694
- def min(self) -> Expression:
695
- r"""
696
- Return the minimum element of this foldable expression.
697
- """
698
- def __pow__(self, exponent:typing.Any, modulo:typing.Optional[typing.Any]=None) -> Expression: ...
699
- def __rpow__(self, base:typing.Any, modulo:typing.Optional[typing.Any]=None) -> Expression: ...
700
- def __add__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
701
- def __radd__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
702
- def __sub__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
703
- def __rsub__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
704
- def __mul__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
705
- def __rmul__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
706
- def __truediv__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
707
- def __rtruediv__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
708
- def __mod__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
709
- def __rmod__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
710
- def __neg__(self) -> Expression: ...
711
- def abs(self) -> Expression: ...
712
- def sqrt(self) -> Expression: ...
713
- def sin(self) -> Expression: ...
714
- def cos(self) -> Expression: ...
715
- def tan(self) -> Expression: ...
716
- def asin(self) -> Expression: ...
717
- def acos(self) -> Expression: ...
718
- def atan(self) -> Expression: ...
719
- def sinh(self) -> Expression: ...
720
- def cosh(self) -> Expression: ...
721
- def tanh(self) -> Expression: ...
722
- def asinh(self) -> Expression: ...
723
- def acosh(self) -> Expression: ...
724
- def atanh(self) -> Expression: ...
725
- def exp(self) -> Expression: ...
726
- def ln(self) -> Expression: ...
727
- def log10(self) -> Expression: ...
728
- def log2(self) -> Expression: ...
729
- def ceil(self) -> Expression: ...
730
- def floor(self) -> Expression: ...
731
- def map(self, func:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
732
- def roll(self, shift:typing.Any, *, axis:typing.Optional[builtins.int]=None) -> Expression: ...
733
- def filter(self, predicate:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
734
- def flat_map(self, func:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
735
- def rows(self) -> Expression: ...
736
- def __getitem__(self, subscripts:typing.Any) -> Expression: ...
737
- def sum(self, axis:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | builtins.int | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[builtins.int]]=None) -> Expression: ...
738
- def prod(self, axis:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | builtins.int | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[builtins.int]]=None) -> Expression: ...
739
- def __and__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
740
- def __rand__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
741
- def __or__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
742
- def __ror__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
743
- def __xor__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
744
- def __rxor__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
745
- def diff(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
746
- def bnot(self) -> Expression: ...
747
- def __eq__(self, other:typing.Any) -> Expression: ... # type: ignore[reportIncompatibleMethodOverride]
748
- def __ne__(self, other:typing.Any) -> Expression: ... # type: ignore[reportIncompatibleMethodOverride]
749
- def __lt__(self, other:typing.Any) -> Expression: ...
750
- def __le__(self, other:typing.Any) -> Expression: ...
751
- def __gt__(self, other:typing.Any) -> Expression: ...
752
- def __ge__(self, other:typing.Any) -> Expression: ...
753
-
754
- class ModelingError(builtins.Exception):
755
- ...
756
-
757
- class Namespace:
758
- def __new__(cls) -> Namespace: ...
759
- @staticmethod
760
- def from_problem(problem:Problem) -> Namespace: ...
761
- def add_placeholder(self, placeholder:Placeholder) -> None: ...
762
- def Placeholder(self, name:builtins.str, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, dtype:DataType | type | tuple=DataType.FLOAT, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder: ...
763
- def add_decision_var(self, var:DecisionVar) -> None: ...
764
- def type_of(self, name:builtins.str) -> Type: ...
765
- def infer(self, expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Type: ...
766
-
767
- class Placeholder:
768
- r"""
769
- A spec of a placeholder value.
770
-
771
- The Placeholder class represents a spec Placeholder, which is maintained in namespace (i.e. Problem).
772
- It is a symbol to be replaced by a numerical value when you evaluate an optimization problem before solving it.
773
-
774
- Expressions on Placeholder automatically turns into an `Expression` object.
775
-
776
- Attributes
777
- -----------
778
- - `name` (`str`): A name of the placeholder.
779
- - `ndim` (`int`): The number of dimensions of the placeholder.
780
- - `shape` (`tuple` of `Optional[Expression]`, optional): The (partial) shape of the placeholder if given.
781
- - `dtype` (`DataType`, optional): The data type (`DataType.INT` or `DataType.FLOAT`) of the placeholder.
782
- - `jagged` (`boolean`, defaut: `False`): `True` if the placeholder will be treated as a jagged array in random data generation. Ignored for scalars.
783
- - `description` (`str`, optional): A description of the placeholder.
784
-
785
- Args
786
- -----
787
- - `name` (`str`): A name of the placeholder.
788
- - `ndim` (`Optional[int]`): The number of dimensions of the placeholder. Defaults to `0`. The `ndim` must be set to a non-negative value and must concide with the length of `shape` if both specified. If `None` is given, you must specify `shape` explicitly and the length of `shape` will be used.
789
- - `shape` (`list[Optional[Expression]]`, optional): The (partial) shape of the placeholder. Used for random data generation.
790
- - `dtype` (`DataType`, optional): The data type (`DataType.INT` or `DataType.FLOAT`) of the placeholder. Used for random data generation.
791
- - `jagged` (`boolean`, defaut: `False`): `True` if the placeholder will be treated as a jagged array in random data generation. Ignored for scalars.
792
- - `latex` (`str`, optional): A LaTeX-name of the placeholder to be represented in Jupyter notebook.
793
- It is set to `name` by default.
794
- - `description` (`str`, optional): A description of the placeholder.
795
-
796
- Raises
797
- -------
798
- - `TypeError`: Raises if set a float value to `ndim`.
799
- - `OverflowError`: Raises if set a negative value to `ndim`.
800
-
801
- Examples
802
- ---------
803
- Create a scalar (or `ndim` is `0`) placeholder whose name is "a".
804
-
805
- ```python
806
- >>> import jijmodeling as jm
807
- >>> a = jm.Placeholder("a")
808
-
809
- ```
810
-
811
- Create a 2-dimensional placeholder whose name is "m".
812
-
813
- ```python
814
- >>> import jijmodeling as jm
815
- >>> problem = jm.Problem("example")
816
- >>> m = problem.Placeholder("m", ndim=2)
817
-
818
- ```
819
-
820
- Create a 1-dimensional placeholder with the index of `123`.
821
-
822
- ```python
823
- >>> import jijmodeling as jm
824
- >>> problem = jm.Problem("example")
825
- >>> a = problem.Placeholder("a", ndim=2)
826
- >>> a[123]
827
- a[123]
828
- >>> problem.get_placeholde("a")
829
- Placeholder(name='a', ndim=2, shape=None, dtype=typing.float, jagged=False)
830
- ```
831
- """
832
- @property
833
- def name(self) -> builtins.str: ...
834
- @property
835
- def ndim(self) -> builtins.int: ...
836
- @property
837
- def shape(self) -> typing.Tuple[Expression,...]:
838
- r"""
839
- Get the shape tuple of the placeholder, consisting of `Expression`s.
840
- See also `Problem.shape_spec` property to get the original value
841
- given at the declaration time.
842
- Can be converted into a `Problem`.
843
-
844
- ## Difference between `Problem.shape` and `Problem.shape_spec`
845
-
846
- - `Problem.shape` property always returns a tuple of `Expression`s,
847
- filling `None` with `len_at` expressions so that i-th component
848
- coincides with the value of `ph.len_at(i)`
849
- - `Problem.shape_spec` just returns the original `shape` definition,
850
- hence the spec itself can be `None` or contain `None` components.
851
-
852
- ## Use cases
853
-
854
- - use `Placeholder.shape` property if you want to construct expressions involving the shape of the placeholder.
855
- - use `Problem.shape_spec` property if you want to inspect the very definition of the placeholder.
856
- """
857
- @property
858
- def shape_spec(self) -> typing.Optional[typing.Tuple[typing.Optional[Expression],...]]:
859
- r"""
860
- Get the original definition of shape given at the declaration time, possibly `None` if omitted.
861
- See also `Placeholder.shape` property to get the shape as `Expression`s.
862
-
863
- ## Difference between `Problem.shape` and `Problem.shape_spec`
864
-
865
- - `Problem.shape` property always returns a tuple of `Expression`s,
866
- filling `None` with `len_at` expressions so that i-th component
867
- coincides with the value of `ph.len_at(i)`
868
- - `Problem.shape_spec` just returns the original `shape` definition,
869
- hence the spec itself can be `None` or contain `None` components.
870
-
871
- ## Use cases
872
-
873
- - use `Problem.shape_spec` property if you want to inspect the very definition of the placeholder.
874
- - use `Placeholder.shape` property if you want to construct expressions involving the shape of the placeholder.
875
- """
876
- @property
877
- def dtype(self) -> DataType | type | tuple: ...
878
- @property
879
- def jagged(self) -> builtins.bool: ...
880
- @property
881
- def description(self) -> typing.Optional[builtins.str]: ...
882
- @property
883
- def custom_latex(self) -> typing.Optional[builtins.str]: ...
884
- def __repr__(self) -> builtins.str: ...
885
- def _repr_latex_(self) -> builtins.str: ...
886
- def len_at(self, index:builtins.int) -> Expression: ...
887
- @typing.overload
888
- def max(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
889
- r"""
890
- Return the larger of this expression and rhs.
891
- """
892
- @typing.overload
893
- def max(self) -> Expression:
894
- r"""
895
- Return the maximum element of this foldable expression.
896
- """
897
- @typing.overload
898
- def min(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
899
- r"""
900
- Return the smaller of this expression and rhs.
901
- """
902
- @typing.overload
903
- def min(self) -> Expression:
904
- r"""
905
- Return the minimum element of this foldable expression.
906
- """
907
- def __pow__(self, exponent:typing.Any, modulo:typing.Optional[typing.Any]=None) -> Expression: ...
908
- def __rpow__(self, base:typing.Any, modulo:typing.Optional[typing.Any]=None) -> Expression: ...
909
- def __add__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
910
- def __radd__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
911
- def __sub__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
912
- def __rsub__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
913
- def __mul__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
914
- def __rmul__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
915
- def __truediv__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
916
- def __rtruediv__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
917
- def __mod__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
918
- def __rmod__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
919
- def __neg__(self) -> Expression: ...
920
- def abs(self) -> Expression: ...
921
- def sqrt(self) -> Expression: ...
922
- def sin(self) -> Expression: ...
923
- def cos(self) -> Expression: ...
924
- def tan(self) -> Expression: ...
925
- def asin(self) -> Expression: ...
926
- def acos(self) -> Expression: ...
927
- def atan(self) -> Expression: ...
928
- def sinh(self) -> Expression: ...
929
- def cosh(self) -> Expression: ...
930
- def tanh(self) -> Expression: ...
931
- def asinh(self) -> Expression: ...
932
- def acosh(self) -> Expression: ...
933
- def atanh(self) -> Expression: ...
934
- def exp(self) -> Expression: ...
935
- def ln(self) -> Expression: ...
936
- def log10(self) -> Expression: ...
937
- def log2(self) -> Expression: ...
938
- def ceil(self) -> Expression: ...
939
- def floor(self) -> Expression: ...
940
- def map(self, func:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
941
- def roll(self, shift:typing.Any, *, axis:typing.Optional[builtins.int]=None) -> Expression: ...
942
- def filter(self, predicate:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
943
- def flat_map(self, func:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
944
- def rows(self) -> Expression: ...
945
- def __getitem__(self, subscripts:typing.Any) -> Expression: ...
946
- def sum(self, axis:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | builtins.int | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[builtins.int]]=None) -> Expression: ...
947
- def prod(self, axis:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | builtins.int | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[builtins.int]]=None) -> Expression: ...
948
- def __and__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
949
- def __rand__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
950
- def __or__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
951
- def __ror__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
952
- def __xor__(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
953
- def __rxor__(self, lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
954
- def diff(self, rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
955
- def bnot(self) -> Expression: ...
956
- def __eq__(self, other:typing.Any) -> Expression: ... # type: ignore[reportIncompatibleMethodOverride]
957
- def __ne__(self, other:typing.Any) -> Expression: ... # type: ignore[reportIncompatibleMethodOverride]
958
- def __lt__(self, other:typing.Any) -> Expression: ...
959
- def __le__(self, other:typing.Any) -> Expression: ...
960
- def __gt__(self, other:typing.Any) -> Expression: ...
961
- def __ge__(self, other:typing.Any) -> Expression: ...
962
-
963
- class Problem:
964
- r"""
965
- A class for creating an optimization problem
966
-
967
- The Problem class is used to create an optimization problem.
968
-
969
- Attributes
970
- -----------
971
- - `name` (`str`): A name of the optimization problem.
972
- - `sense`: Sense of the optimization problem.
973
- - `objective`: The objective function of the optimization problem.
974
- - `constraints` (`dict`): A dictionary that stores constraints.
975
- - A key is the name of a constraint and the value is the constraint object.
976
- - `custom_penalty_terms` (`dict`): A dictionary that stores custom penalty terms.
977
- - A key is the name of a custom penalty and the value is the custom penalty object.
978
-
979
- Args
980
- -----
981
- - `name` (`str`): A name of the optimization problem.
982
- - `sense` (optional): Sense of the optimization problem. Defaults to `ProblemSense.MINIMIZE`.
983
- """
984
- @property
985
- def objective(self) -> Expression: ...
986
- @property
987
- def description(self) -> builtins.str: ...
988
- @property
989
- def constraints(self) -> builtins.dict[builtins.str, builtins.list[Constraint]]: ...
990
- @property
991
- def used_placeholders(self) -> builtins.list[Placeholder]: ...
992
- @property
993
- def decision_vars(self) -> builtins.dict[builtins.str, DecisionVar]:
994
- r"""
995
- Returns a dictionary of decision variables in the problem.
996
- The dictionary may contain decision variables that are not used in the problem.
997
-
998
- Returns
999
- --------
1000
- `dict[str, DecisionVar]`: Dictionary mapping variable names to DecisionVar objects.
1001
- """
1002
- @property
1003
- def placeholders(self) -> builtins.dict[builtins.str, Placeholder]:
1004
- r"""
1005
- Returns a dictionary of placeholders in the problem.
1006
- The dictionary may contain placeholders that are not used in the problem;
1007
- to get only used placeholders, use `used_placeholders` method.
1008
-
1009
- Returns
1010
- --------
1011
- `dict[str, Placeholder]`: Dictionary mapping placeholder names to Placeholder objects.
1012
- """
1013
- def __iadd__(self, other:typing.Any) -> Problem: ...
1014
- def __repr__(self) -> builtins.str: ...
1015
- def _repr_latex_(self) -> builtins.str: ...
1016
- def eval(self, instance_data:dict) -> ommx.v1.Instance: ...
1017
- def Placeholder(self, name:builtins.str, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, dtype:DataType | type | tuple=DataType.FLOAT, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder: ...
1018
- def Integer(self, name:builtins.str, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
1019
- r"""
1020
- A shorthand for `Problem.Placeholder(dtype=int)`
1021
- """
1022
- def Float(self, name:builtins.str, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
1023
- r"""
1024
- A shorthand for `Problem.Placeholder(dtype=float)`
1025
- """
1026
- def Natural(self, name:builtins.str, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
1027
- r"""
1028
- A shorthand for `Problem.Placeholder(dtype=DataType.NATURAL)`
1029
- """
1030
- def Length(self, name:builtins.str, *, ndim:typing.Optional[builtins.int]=0, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
1031
- r"""
1032
- A plceholder expressing array length.
1033
- This is just a shorthand for `Problem.Natural()`.
1034
- When omitted, `ndim` is set to be `0`.
1035
- """
1036
- def Dim(self, name:builtins.str, *, ndim:typing.Optional[builtins.int]=0, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
1037
- r"""
1038
- A placeholder expressing array dimension.
1039
- This is just a shorthand for `Problem.Natural()`.
1040
- When omitted, `ndim` is set to be `0`.
1041
- """
1042
- def Binary(self, name:builtins.str, *, ndim:typing.Optional[builtins.int]=None, shape:typing.Optional[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]] | typing.Sequence[typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]]=None, jagged:builtins.bool=False, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
1043
- r"""
1044
- A shorthand for `Problem.Placeholder(dtype=DataType.BINARY)`
1045
- """
1046
- def Graph(self, name:builtins.str, *, vertex:DataType | type | tuple=DataType.NATURAL, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> Placeholder:
1047
- r"""
1048
- A placeholder expressing a directed graph (without edge weights), represented by a 1-dimensional array of tuples.
1049
- This is just a shorthand for `Problem.Placeholder(dtype=(vertex, vertex), ndim=1)`.
1050
- """
1051
- def DecisionVar(self, name:builtins.str, *, kind:DecisionVarKind, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar:
1052
- r"""
1053
- A function to create a decision variable and register to the problem namespace. See `DecisionVar` for more details.
1054
-
1055
- Args
1056
- -----
1057
- - `name` (`str`): A name of the binary variable.
1058
- - `kind` (`DecisionVarKind`): A kind of the decision variable.
1059
- - `shape` (`list | tuple`): A sequence with the size of each dimension of the binary variable. Defaults to an empty tuple (a scalar value).
1060
- - Each item in `shape` must be a valid expression evaluating to a non-negative scalar.
1061
- - `lower_bound` and `upper_bound` (`jijmodeling.Expression`): A lower and upper bounds of the binary variable.
1062
- - `kind` (`DecisionVarKind`): A kind of the decision variable.
1063
- - `latex` (`str`, optional): A LaTeX-name of the binary variable to be represented in Jupyter notebook.
1064
- - It is set to `name` by default.
1065
- - `description` (`str`, optional): A description of the binary variable.
1066
-
1067
- Examples
1068
- ---------
1069
- Create a scalar binary variable whose name is "z".
1070
-
1071
- ```python
1072
- >>> import jijmodeling as jm
1073
- >>> problem = jm.Problem("my_problem")
1074
- >>> z = problem.DecisionVar("z", kind=jm.DecisionVarKind.BINARY, lower_bound=0, upper_bound=1)
1075
-
1076
- ```
1077
-
1078
- Create a 2-dimensional binary variable whose name is "x" and has a 2x2 shape.
1079
-
1080
- ```python
1081
- >>> import jijmodeling as jm
1082
- >>> problem = jm.Problem("my_problem")
1083
- >>> x = problem.BinaryVar("x", shape=[2, 2])
1084
-
1085
- ```
1086
-
1087
- Create a 1-dimensional binary variable with the index of `123`.
1088
-
1089
- ```python
1090
- >>> import jijmodeling as jm
1091
- >>> problem = jm.Problem("my_problem")
1092
- >>> x = jm.BinaryVar("x", shape=[124])
1093
- >>> x[123]
1094
- BinaryVar(name='x', shape=[NumberLit(value=124)])[NumberLit(value=123)]
1095
-
1096
- ```
1097
- """
1098
- def BinaryVar(self, name:builtins.str, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar:
1099
- r"""
1100
- A function to create a binary decision variable and register to the problem namespace. See `DecisionVar` for more details.
1101
-
1102
- Args
1103
- -----
1104
- - `name` (`str`): A name of the binary variable.
1105
- - `shape` (`list | tuple`): A sequence with the size of each dimension of the binary variable. Defaults to an empty tuple (a scalar value).
1106
- - Each item in `shape` must be a valid expression evaluating to a non-negative scalar.
1107
- - `latex` (`str`, optional): A LaTeX-name of the binary variable to be represented in Jupyter notebook.
1108
- - It is set to `name` by default.
1109
- - `description` (`str`, optional): A description of the binary variable.
1110
-
1111
- Examples
1112
- ---------
1113
- Create a scalar binary variable whose name is "z".
1114
-
1115
- ```python
1116
- >>> import jijmodeling as jm
1117
- >>> problem = jm.Problem("my_problem")
1118
- >>> z = problem.BinaryVar("z")
1119
-
1120
- ```
1121
-
1122
- Create a 2-dimensional binary variable whose name is "x" and has a 2x2 shape.
1123
-
1124
- ```python
1125
- >>> import jijmodeling as jm
1126
- >>> problem = jm.Problem("my_problem")
1127
- >>> x = problem.BinaryVar("x", shape=[2, 2])
1128
-
1129
- ```
1130
-
1131
- Create a 1-dimensional binary variable with the index of `123`.
1132
-
1133
- ```python
1134
- >>> import jijmodeling as jm
1135
- >>> problem = jm.Problem("my_problem")
1136
- >>> x = problemm.BinaryVar("x", shape=[124])
1137
- >>> x[123]
1138
- x[123]
1139
-
1140
- ```
1141
- """
1142
- def IntegerVar(self, name:builtins.str, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar:
1143
- r"""
1144
- A function to create a decision variable and register to the problem namespace. See `DecisionVar` for more details.
1145
-
1146
- Args
1147
- -----
1148
- - `name` (`str): A name of the integer variable.
1149
- - `shape` (`list | tuple`): A sequence with the size of each dimension of the integer variable. Defaults to an empty tuple (a scalar value).
1150
- - Each item in `shape` must be a valid expression evaluating to a non-negative scalar.
1151
- - `lower_bound`: The lower bound of the variable.
1152
- - `upper_bound`: The upper bound of the variable.
1153
- - `latex` (`str`, optional): A LaTeX-name of the integer variable to be represented in Jupyter notebook.
1154
- - It is set to `name` by default.
1155
- - `description` (`str`, optional): A description of the integer variable.
1156
-
1157
- Raises
1158
- -------
1159
- `ModelingError`: Raises if a bound is a `Placeholder` or `Subscript` object whose `ndim`
1160
- is neither `0` nor the same value as `ndim` of the integer variable.
1161
-
1162
- Examples
1163
- ---------
1164
- Create a scalar integer variable whose name is "z" and domain is `[-1, 1]`.
1165
-
1166
- ```python
1167
- >>> import jijmodeling as jm
1168
- >>> problem = jm.Problem("my_problem")
1169
- >>> z = problem.IntegerVar("z", lower_bound=-1, upper_bound=1)
1170
-
1171
- ```
1172
-
1173
- Create a 2-dimensional integer variable...
1174
- - whose name is "x".
1175
- - whose domain is [0, 2].
1176
- - where each dimension has length 2 (making this a 2x2 matrix).
1177
-
1178
- ```python
1179
- >>> import jijmodeling as jm
1180
- >>> problem = jm.Problem("my_problem")
1181
- >>> x = problem.IntegerVar("x", shape=[2, 2], lower_bound=0, upper_bound=2)
1182
-
1183
- ```
1184
-
1185
- Create a 1-dimensional integer variable with the index of `123`.
1186
-
1187
- ```python
1188
- >>> import jijmodeling as jm
1189
- >>> problem = jm.Problem("my_problem")
1190
- >>> x = problem.IntegerVar("x", shape=[124], lower_bound=0, upper_bound=2)
1191
- >>> x[123]
1192
- x[123]
1193
-
1194
- ```
1195
- """
1196
- def SemiIntegerVar(self, name:builtins.str, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar: ...
1197
- def ContinuousVar(self, name:builtins.str, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar:
1198
- r"""
1199
- A function to create a decision variable and register to the problem namespace. See `DecisionVar` for more details.
1200
-
1201
- Args
1202
- -----
1203
- - `name` (`str`): A name of the continuous variable.
1204
- - `shape` (`list | tuple`): A sequence with the size of each dimension of the continuous variable. Defaults to an empty tuple (a scalar value).
1205
- - Each item in `shape` must be a valid expression evaluating to a non-negative scalar.
1206
- - `lower_bound`: The lower bound of the variable.
1207
- - `upper_bound`: The upper bound of the variable.
1208
- - `latex` (`str`, optional): A LaTeX-name of the continuous variable to be represented in Jupyter notebook.
1209
- - It is set to `name` by default.
1210
- - `description` (`str`, optional): A description of the continuous variable.
1211
-
1212
- Raises
1213
- -------
1214
- `ModelingError`: Raises if a bound is a `Placeholder` or `Subscript` object whose `ndim` is neither `0` nor the same value as `ndim` of the continuous variable.
1215
-
1216
- Examples
1217
- ---------
1218
- Create a scalar continuous variable whose name is "z" and domain is `[-1, 1]`.
1219
-
1220
- ```python
1221
- >>> import jijmodeling as jm
1222
- >>> z = jm.ContinuousVar("z", lower_bound=-1, upper_bound=1)
1223
-
1224
- ```
1225
-
1226
- Create a 2-dimensional continuous variable...
1227
- - whose name is "x".
1228
- - whose domain is [0, 2].
1229
- - where each dimension has length 2 (making this a 2x2 matrix).
1230
-
1231
- ```python
1232
- >>> import jijmodeling as jm
1233
- >>> x = jm.ContinuousVar("x", shape=[2, 2], lower_bound=0, upper_bound=2)
1234
-
1235
- ```
1236
-
1237
- Create a 1-dimensional continuous variable with the index of `123`.
1238
-
1239
- ```python
1240
- >>> import jijmodeling as jm
1241
- >>> x = jm.ContinuousVar("x", shape=[124], lower_bound=0, upper_bound=2)
1242
- >>> x[123]
1243
- ContinuousVar(name='x', shape=[NumberLit(value=124)], lower_bound=NumberLit(value=0), upper_bound=NumberLit(value=2))[NumberLit(value=123)]
1244
-
1245
- ```
1246
- """
1247
- def SemiContinuousVar(self, name:builtins.str, *, shape:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]]=None, lower_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], upper_bound:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any] | typing.Sequence[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]], latex:typing.Optional[builtins.str]=None, description:typing.Optional[builtins.str]=None) -> DecisionVar: ...
1248
- def namespace(self) -> Namespace: ...
1249
- def update(self, func:typing.Callable[[DecoratedProblem]]) -> DesugaredProblemBuilder:
1250
- r"""
1251
- A function decorator to modify an existing `Problem` using the decorated API.
1252
- This must be decorated to a function that takes `DecoratedProblem` as the only argument and returns None.
1253
- You can call `update` multiple times.
1254
- The given function will automatically be evaluated exactly once by the decocrator, so you DO NOT need to call the original function again.
1255
-
1256
- Example
1257
- -------
1258
-
1259
- ```python
1260
- >>> import jijmodeling as jm
1261
- >>> problem = jm.Problem("Knapsack Problem", sense=jm.ProblemSense.MAXIMIZE)
1262
- >>>
1263
- >>> @problem.update
1264
- >>> def my_updater(problem: jm.DecoratedProblem):
1265
- >>> w = problem.Float(ndim=1, description="Weights of the items")
1266
- >>> N = w.len_at(0)
1267
- >>> v = problem.Float(ndim=1, description="Values of the items")
1268
- >>> W = problem.Float(description="Total weight")
1269
- >>> x = problem.BinaryVar(shape=(N,), description="Selected items")
1270
- >>>
1271
- >>> problem += problem.Constraint("weight", jm.sum(w * x) <= W)
1272
- >>> problem += jm.sum(v * x)
1273
- >>>
1274
- >>> w_data = [10, 20, 30]
1275
- >>> v_data = [60, 100, 120]
1276
- >>> instance_data = {"w": w_data, "v": v_data, "W": 50}
1277
- >>> instance = problem.eval(instance_data)
1278
- ```
1279
- """
1280
- def get_problem_schema(self) -> dict:
1281
- r"""
1282
- Returns the schema of the problem.
1283
-
1284
- Returns
1285
- --------
1286
- - `schema`: The dictionary containing the schema of the problem.
1287
- """
1288
- def generate_random_dataset(self, _default:typing.Any, _options:typing.Any, _seed:typing.Optional[builtins.int]) -> typing.Any:
1289
- r"""
1290
- Generates a dictionary of random `InstanceDataValue` for a given problem.
1291
- To generate `ommx.v1.Instance` object directly, use `InstanceDataValue.generate_random_instance` instead.
1292
-
1293
- Args
1294
- -----
1295
- - `options` (optional): a dictionary of range parameters for each separate placeholders. The key must be the name of the placeholder and the value must be range parameter (as described in "Range Parameters and Range Syntax" below).
1296
- - `default` (optional): default range parameters for placeholders which is not specified in `options`.
1297
- - `seed` (optional): seed for random number generation.
1298
-
1299
- Returns
1300
- --------
1301
- `dict`: The dictionary from the name of placeholders to the generated `InstanceDataValue` objects. To be fed to `Interpreter.eval_problem`.
1302
-
1303
- Range Parameters and Range Syntax
1304
- ----------------------------------
1305
- A range parameter is a dictionary consisting of the following fields:
1306
- - `size` (optional): interval of natural numbers for the size of each array dimension (default: `range(1, 6)`)
1307
- - `value` (optional): interval of real numbers for the value of each array element (default: `range(-1.0, 1.0)` - a uniform distribution on a closed interval $[-1.0, 1.0]$).
1308
-
1309
- Example range parameter config:
1310
-
1311
- ```python
1312
- {"size": range(2, 10), "value": jm.range.value.closed(100.0, 200.0)}
1313
- ```
1314
-
1315
- Intervals are expressed as a range object.
1316
- Currently, the following syntax is supported for range objects:
1317
-
1318
- 1. Direct value of type `int` or `float` - it corresponds to a singleton interval $[a, a] = \{a\}$. In random generation context, this just means a constant fixed value.
1319
- 2. Use the functions from `jijmodeling.range`, `jijmodeling.range.size`, or `jijmodeling.range.value` modules.
1320
- - Use functions from `jij.modeling.range.size` to specify (non-negative) integer intervals, and `jij.modeling.range.value` for real intervals. `jij.modeling.range` dynamically determines the type of the range based on the input.
1321
- - These three modules provides the following combinators (see the module documents for more details.):
1322
- - `closed(a, b)`: a closed interval $[a, b]$
1323
- - `open(a, b)`: an open interval $(a, b)$
1324
- - `closed_open(a, b)`: an upper half-open interval $[a, b)$
1325
- - `open_closed(a, b)`: a lower half-open interval $(a, b]$
1326
- - `greater_than(a)`: an open interval $(a, \infty)$
1327
- - `at_least(a)`: a closed interval $[a, \infty)$
1328
- - `less_than(a)`: an open interval $(-\infty, a)$
1329
- - `at_most(a)`: a closed interval $(-\infty, a]$
1330
- 3. Use `range` builtin function: this is equivalent to `jijmodeling.range.value.closed_open(a, b)`.
1331
- - Any python range object with `step = 1` can be used as a size range; otherwise it results in runtime error.
1332
- 4. Use a tuple: raw tuple `(a, b)` is equivalent to `jijmodeling.range.closed_open(a, b)` if `a` and `b` are either `int` or `float`.
1333
- - You can also use bound object as a tuple component; in such case, both tuple components must be one of the following:
1334
-
1335
- 1. A string `"Unbounded"` means $-\infty$ (in the first component) or $\infty$ (the second).
1336
- 2. A dictionary `{"Included": a}` means the endpoint is inclusive.
1337
- 3. A dictionary `{"Excluded": a}` means the endpoint is exclusive.
1338
- - Examples:
1339
- - `(1.2, 4)` is equivalent to `closed_open(1.2, 4)`,
1340
- - `(-1, {"Included": 1})` is equivalent to `closed(-1, 1)`,
1341
- - `(-5, {"Excluded": 4})` is equivalent to `closed_open(-5, 4)` and built in function `range(-5, 4)`,
1342
- - `({"Excluded": 1}, {"Excluded": 2.5})` is equivalent to `open(1, 2.5)`,
1343
- - `({"Included": -1}, "Unbounded")` is equivalent to `at_least(-1)`.
1344
- - `(5, "Unbounded")` is **INVALID**; `5` must be bound object.
1345
- 5. The range object: A dictionary of form `{"start": lb, "end": ub}`, where both `lb` and `ub` are the bound object described as above.
1346
-
1347
- Examples
1348
- ---------
1349
- ```python
1350
- >>> import jijmodeling as jm
1351
- >>> import builtins
1352
- >>> N = jm.Placeholder("N", dtype=jm.DataType.INTEGER)
1353
- >>> c = jm.Placeholder("c", dtype=jm.DataType.FLOAT, shape=(N,))
1354
- >>> x = jm.BinaryVar("x", shape=(N,))
1355
- >>> i = jm.Element("i", belong_to=N)
1356
-
1357
- >>> problem = jm.Problem("problem")
1358
- >>> problem += jm.sum(i, c[i] * x[i])
1359
-
1360
- >>> inputs = problem.generate_random_dataset(
1361
- ... options={
1362
- ... 'N': {"value": builtins.range(10, 20)},
1363
- ... 'c': {"value": jm.range.value.closed(-1.0, 1.0)}
1364
- ... # You can also specify "size" for the range of jagged array dimension size.
1365
- ... },
1366
- ... seed=123 # omittable
1367
- ... )
1368
- >>> assert set(inputs.keys()) == {"N", "c"}
1369
- >>> inputs
1370
- {'N': 11.0, 'c': array([ 0.93914459, -0.06511935, -0.7460324 , -0.32443706, 0.99981451,
1371
- -0.24407535, 0.31329469, 0.52206453, -0.1291936 , 0.30443087,
1372
- 0.53125838])}
1373
-
1374
- ```
1375
- """
1376
- def generate_random_instance(self, _default:typing.Any, _options:typing.Any, _seed:typing.Optional[builtins.int], _hints:typing.Optional[typing.Any]) -> typing.Any:
1377
- r"""
1378
- Generates random `ommx.v1.Instance` for a given problem.
1379
- See also `InstanceDataValue.generate_random_dataset`.
1380
-
1381
- Args
1382
- -----
1383
- - `options` (optional): a dictionary of range parameters for each separate placeholders. The key must be the name of the placeholder and the value must be range parameter (as described in "Range Parameters and Range Syntax" section in :func:`~jijmodeling.Problem.generate_random_dataset`).
1384
- - `default` (optional): default range parameters for placeholders which is not specified in `options`.
1385
- - `seed` (optional): seed for random number generation.
1386
- - `hints` (optional): the hints to be detected during compilation see `Interpreter.eval_problem` for more details.
1387
-
1388
- Returns
1389
- --------
1390
- `instance`: The OMMX v1 instance object.
1391
-
1392
- Examples
1393
- ---------
1394
- ```python
1395
- >>> import jijmodeling as jm
1396
- >>> import builtins
1397
- >>> import ommx.v1
1398
- >>> N = jm.Placeholder("N", dtype=jm.DataType.INTEGER)
1399
- >>> c = jm.Placeholder("c", dtype=jm.DataType.FLOAT, shape=(N,))
1400
- >>> x = jm.BinaryVar("x", shape=(N,))
1401
- >>> i = jm.Element("i", belong_to=N)
1402
-
1403
- >>> problem = jm.Problem("problem")
1404
- >>> problem += jm.sum(i, c[i] * x[i])
1405
-
1406
- >>> instance = problem.generate_random_instance(
1407
- ... options={
1408
- ... 'N': {"value": builtins.range(10, 20)},
1409
- ... 'c': {"value": jm.range.value.closed(-1.0, 1.0)}
1410
- ... },
1411
- ... seed=123
1412
- ... )
1413
- >>> assert type(instance) is ommx.v1.Instance
1414
-
1415
- ```
1416
- """
1417
- def type_of(self, name:builtins.str) -> Type: ...
1418
- def infer(self, expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Type: ...
1419
- @typing.overload
1420
- def Constraint(self, name:builtins.str, expression:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], domain:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], description:typing.Optional[builtins.str]=None) -> Constraint:
1421
- r"""
1422
- Constructs `Constraint` object from index set and function to build comparison expression from each index, __WITHOUT__ registering it to the problem.
1423
- Use `+=` operator to register the constraint to the problem.
1424
- """
1425
- @typing.overload
1426
- def Constraint(self, name:builtins.str, expression:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], description:typing.Optional[builtins.str]=None) -> Constraint:
1427
- r"""
1428
- Constructs `Constraint` object from comparison expression, __WITHOUT__ registering it to the problem.
1429
- Use `+=` operator to register the constraint to the problem.
1430
- """
1431
- def __new__(cls, name:builtins.str, *, sense:ProblemSense=ProblemSense.MINIMIZE, description:typing.Optional[builtins.str]=None) -> Problem: ...
1432
-
1433
- class Type:
1434
- def __eq__(self, other:builtins.object) -> builtins.bool: ...
1435
-
1436
- class TypeError(builtins.Exception):
1437
- ...
1438
-
1439
- class ConstraintSense(Enum):
1440
- EQUAL = ...
1441
- LESS_THAN_EQUAL = ...
1442
- GREATER_THAN_EQUAL = ...
1443
-
1444
- class DataType(Enum):
1445
- INTEGER = ...
1446
- FLOAT = ...
1447
- BINARY = ...
1448
- NATURAL = ...
1449
-
1450
- class DecisionVarKind(Enum):
1451
- BINARY = ...
1452
- INTEGER = ...
1453
- CONTINUOUS = ...
1454
- SEMI_INTEGER = ...
1455
- SEMI_CONTINUOUS = ...
1456
-
1457
- class ProblemSense(Enum):
1458
- r"""
1459
- An optimization sense
1460
- """
1461
- MINIMIZE = ...
1462
- MAXIMIZE = ...
1463
-
1464
- def Some(inner:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1465
-
1466
- def abs(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1467
-
1468
- def acos(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1469
-
1470
- def acosh(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1471
-
1472
- def asin(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1473
-
1474
- def asinh(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1475
-
1476
- def atan(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1477
-
1478
- def atanh(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1479
-
1480
- def band(lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1481
-
1482
- def bnot(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1483
-
1484
- def bor(lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1485
-
1486
- def ceil(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1487
-
1488
- def cos(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1489
-
1490
- def cosh(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1491
-
1492
- def diff(lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1493
-
1494
- def exp(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1495
-
1496
- def filter(predicate:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], operand:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1497
-
1498
- def flat_map(func:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], arg:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1499
-
1500
- def floor(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1501
-
1502
- def is_same(src:typing.Any, dst:typing.Any) -> builtins.bool:
1503
- r"""
1504
- Return `true` if `src` and `dst` are the same object defined by Jijmodeling.
1505
-
1506
-
1507
- Args
1508
- -----
1509
- - `src`: An object defined by Jijmodeling module, or an iterable of Jijmodeling objects.
1510
- - `dst`: An object defined by Jijmodeling module, or an iterable of Jijmodeling objects.
1511
-
1512
- Returns
1513
- --------
1514
- `bool`: `true` if `src` and `dst` is the same object. Otherwise `false`.
1515
-
1516
- Examples
1517
- ---------
1518
- Check if the two placeholders are the same.
1519
-
1520
- ```python
1521
- >>> import jijmodeling as jm
1522
- >>> problem = jm.Problem("problem")
1523
- >>> a = problem.Placeholder("name")
1524
- >>> b = problem.Placeholder("name")
1525
- >>> assert jm.is_same(a, b)
1526
- >>> c = problem.Placeholder("name", ndim=2)
1527
- >>> assert not jm.is_same(a, c) # the value of `ndim` is different
1528
- ```
1529
-
1530
- Raises
1531
- -------
1532
- `TypeError`: Raises if
1533
- - `src` and `dst` are of different types which are not iterable
1534
- - called on a type not defined by Jijmodeling (e.g. `str`)
1535
-
1536
- Note
1537
- -----
1538
- This function does not check the following attributes:
1539
- - `description`
1540
- - `latex`
1541
-
1542
- For example,
1543
-
1544
- ```python
1545
- >>> import jijmodeling as jm
1546
- >>> problem = jm.Problem("problem")
1547
- >>> src = problem.Placeholder("placeholder", latex="src")
1548
- >>> dst = problem.Placeholder("placeholder", latex="dst")
1549
- >>> assert jm.is_same(src, dst)
1550
- ```
1551
-
1552
- this code works without any exception.
1553
- """
1554
-
1555
- def ln(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1556
-
1557
- def log10(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1558
-
1559
- def log2(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1560
-
1561
- def map(func:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], arg:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1562
-
1563
- def map_or_else(option:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], default:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], mapper:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
1564
- r"""
1565
- If option is `Some(value)`, applies `mapper(value)`, otherwise returns default.
1566
- """
1567
-
1568
- @typing.overload
1569
- def max(operand:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
1570
- r"""
1571
- Return the maximum element of a list or tensor expression.
1572
- """
1573
-
1574
- @typing.overload
1575
- def max(lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
1576
- r"""
1577
- Return the larger of two expressions.
1578
- """
1579
-
1580
- @typing.overload
1581
- def min(operand:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
1582
- r"""
1583
- Return the minimum element of a list or tensor expression
1584
- """
1585
-
1586
- @typing.overload
1587
- def min(lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
1588
- r"""
1589
- Return the smaller of two expressions.
1590
- """
1591
-
1592
- def neg(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1593
-
1594
- def or_else(option:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], default:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
1595
- r"""
1596
- Returns the value inside option if Some, otherwise returns default.
1597
- """
1598
-
1599
- @typing.overload
1600
- def prod(index:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], operand:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
1601
- r"""
1602
- Takes an index and an operand representing the product operation in positional style. Eg. `jm.prod(N, lambda i: x[i])`
1603
- """
1604
-
1605
- @typing.overload
1606
- def prod(operand:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], axis:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]=None) -> Expression:
1607
- r"""
1608
- Takes the product of a set or tensor-like expression. You can use `axis` to partially reducing the tensor along specified axes. Eg. `jm.prod(N.map(lambda i: x[i]))`
1609
- """
1610
-
1611
- @typing.overload
1612
- def prod(x:typing.Generator[Expression]) -> Expression:
1613
- r"""
1614
- Comprehension syntax for jm.prod (NOTE: only works with decorated API!)
1615
- """
1616
-
1617
- def product(*sets) -> Expression:
1618
- r"""
1619
- Takes the cartesian product of given set-like expressions.
1620
- """
1621
-
1622
- def roll(operand:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], shift:typing.Any, *, axis:typing.Optional[builtins.int]=None) -> Expression: ...
1623
-
1624
- def rows(array:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1625
-
1626
- def set(operand:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1627
-
1628
- def sin(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1629
-
1630
- def sinh(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1631
-
1632
- def sqrt(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1633
-
1634
- @typing.overload
1635
- def sum(index:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], operand:typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression:
1636
- r"""
1637
- Takes an index and an operand representing the summation operation in positional style. Eg. `jm.sum(N, lambda i: x[i])`
1638
- """
1639
-
1640
- @typing.overload
1641
- def sum(operand:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], axis:typing.Optional[Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]]=None) -> Expression:
1642
- r"""
1643
- Takes the summation of set or tensor-like expression. You can use `axis` to partially reducing the tensor along specified axes. Eg. `jm.sum(N.map(lambda i: x[i]))`
1644
- """
1645
-
1646
- @typing.overload
1647
- def sum(x:typing.Generator[Expression]) -> Expression:
1648
- r"""
1649
- Comprehension syntax for jm.sum (NOTE: only works with decorated API!)
1650
- """
1651
-
1652
- def tan(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1653
-
1654
- def tanh(expr:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1655
-
1656
- def xor(lhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any], rhs:Expression | builtins.int | builtins.float | DecisionVar | Placeholder | list | tuple | typing.Callable[[Expression], typing.Any] | typing.Callable[[Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression], typing.Any] | typing.Callable[[Expression, Expression, Expression, Expression, Expression], typing.Any]) -> Expression: ...
1657
-