# OptModel 方法详情

## 方法索引

<div class="docs-method-index" markdown>

**变量与常量**

[`constant`](#optagent.OptModel.constant) · [`bool`](#optagent.OptModel.bool) · [`int`](#optagent.OptModel.int) · [`float`](#optagent.OptModel.float) · [`set`](#optagent.OptModel.set) · [`list`](#optagent.OptModel.list) · [`interval`](#optagent.OptModel.interval) · [`optional_interval`](#optagent.OptModel.optional_interval)

**约束与目标**

[`add_constraint`](#optagent.OptModel.add_constraint) · [`minimize`](#optagent.OptModel.minimize) · [`maximize`](#optagent.OptModel.maximize)

**算术与聚合**

[`sum`](#optagent.OptModel.sum) · [`prod`](#optagent.OptModel.prod) · [`min`](#optagent.OptModel.min) · [`max`](#optagent.OptModel.max) · [`sub`](#optagent.OptModel.sub) · [`abs`](#optagent.OptModel.abs) · [`dist`](#optagent.OptModel.dist) · [`div`](#optagent.OptModel.div) · [`mod`](#optagent.OptModel.mod) · [`pow`](#optagent.OptModel.pow)

**比较与逻辑**

[`eq`](#optagent.OptModel.eq) · [`neq`](#optagent.OptModel.neq) · [`geq`](#optagent.OptModel.geq) · [`leq`](#optagent.OptModel.leq) · [`gt`](#optagent.OptModel.gt) · [`lt`](#optagent.OptModel.lt) · [`not_`](#optagent.OptModel.not_) · [`and_`](#optagent.OptModel.and_) · [`or_`](#optagent.OptModel.or_) · [`xor`](#optagent.OptModel.xor) · [`iif`](#optagent.OptModel.iif)

**集合关系**

[`partition`](#optagent.OptModel.partition) · [`disjoint`](#optagent.OptModel.disjoint) · [`cover`](#optagent.OptModel.cover) · [`union`](#optagent.OptModel.union) · [`intersection`](#optagent.OptModel.intersection)

**数组与索引**

[`array`](#optagent.OptModel.array) · [`at`](#optagent.OptModel.at) · [`range`](#optagent.OptModel.range) · [`count`](#optagent.OptModel.count) · [`contains`](#optagent.OptModel.contains) · [`index`](#optagent.OptModel.index) · [`distinct`](#optagent.OptModel.distinct) · [`sort`](#optagent.OptModel.sort) · [`find`](#optagent.OptModel.find) · [`step_array`](#optagent.OptModel.step_array)

**数学函数**

[`sqrt`](#optagent.OptModel.sqrt) · [`sin`](#optagent.OptModel.sin) · [`cos`](#optagent.OptModel.cos) · [`round`](#optagent.OptModel.round) · [`ceil`](#optagent.OptModel.ceil) · [`floor`](#optagent.OptModel.floor) · [`log`](#optagent.OptModel.log) · [`exp`](#optagent.OptModel.exp)

**区间属性**

[`start`](#optagent.OptModel.start) · [`end`](#optagent.OptModel.end) · [`length`](#optagent.OptModel.length) · [`presence`](#optagent.OptModel.presence) · [`hull`](#optagent.OptModel.hull)

**Lambda 与外部函数**

[`lambda_function`](#optagent.OptModel.lambda_function) · [`call`](#optagent.OptModel.call) · [`piecewise`](#optagent.OptModel.piecewise) · [`create_int_external_function`](#optagent.OptModel.create_int_external_function) · [`create_double_external_function`](#optagent.OptModel.create_double_external_function) · [`create_int_array_external_function`](#optagent.OptModel.create_int_array_external_function) · [`create_double_array_external_function`](#optagent.OptModel.create_double_array_external_function)

**求解**

[`solve`](#optagent.OptModel.solve) · [`solve_heuristic`](#optagent.OptModel.solve_heuristic) · [`solve_optx`](#optagent.OptModel.solve_optx)

**模型文件**

[`save`](#optagent.OptModel.save) · [`read_model`](modeling.md)

</div>

`constraint()` 是 `add_constraint()` 的别名。

## 方法详情

以下示例沿用 `model = OptModel()`。除求解接口外，示例只构建表达式，注释中的结果表示求值结果。

::: optagent.OptModel
    options:
      filters:
        - "!^_"
        - "!^to_(proto|bytes)$"
      show_signature: false
      show_overloads: false
      show_bases: false
      show_root_heading: false
      show_root_toc_entry: false
      show_symbol_type_heading: false
      show_symbol_type_toc: false
      docstring_section_style: table
      annotations_path: brief
      separate_signature: false

跨接口的求解路径选择与限制对照见[求解器支持矩阵](solver-support.md)。
