Skip to content

Extract

extract_variables(expression)

Extract variables.

Parameters:

Name Type Description Default
expression Expression

target expression

required

Returns:

Type Description
tp.List[_variable.Variable]

List[Variable]: A list of variables included in the expression.

Examples:

import jijmodeling as jm
from jijmodeling.expression.extract import extract_variables
a = jm.Placeholder("d", dim=2)
n = a.shape[0]
x = jm.Binary("x", shape=(n, ))
i, j = jm.Element("i", n), jm.Element("j", n)
term = jm.Sum([i, j], x[i] - s[i, j])
extract_variables(term)
# >>> [j, i, s, x, a, a_shape_0]

extract_expressions(expression, pattern)

Extract expressions.

Parameters:

Name Type Description Default
expression Expression

target expression

required
pattern Callable[Expression, bool]

pattern to extract

required

Returns:

Type Description
tp.List[_expression.Expression]

List[Expression]: A list of expressions included in the expression.

Examples:

import jijmodeling as jm
from jijmodeling.expression.extract import extract_expressions
a = jm.Placeholder("d", dim=2)
n = a.shape[0]
x = jm.Binary("x", shape=(n, ))
i, j = jm.Element("i", n), jm.Element("j", n)
s = jm.Binary("s", shape=(n, n))
term = jm.Sum([i, j], x[i] - s[i, j])
extract_expressions(term, lambda x: isinstance(x, jm.Element))
# >>> [i, j]
extract_expressions(term, lambda x: isinstance(x, jm.Binary))
# >>> [x, s]
extract_expressions(term, lambda x: isinstance(x, jm.Subscripts) and x.variable.label == "s")
# >>> [s[i, j]]

check_unique_variable_label(expression)

Check unique variable label.

Parameters:

Name Type Description Default
expression Expression

target expression

required

Returns:

Name Type Description
None

If the every variable label is unique.

Raises:

Type Description
ModelingError

If label is not unique.


Last update: 2023年7月5日