# 第一个模型

用两个整数变量表示产量，在满足需求的前提下最小化成本。运行前先完成[安装与许可证配置](installation.md)。

## 建模、求解与读值

```python
from optagent import OptModel

model = OptModel()
x = model.int(0, 10)
y = model.int(0, 10)
cost = 2 * x + y

model.constraint(x + y >= 7)
model.minimize(cost)

solution = model.solve(time_limit_s=1.0, log_level="off")
print(solution.status, solution.objectives)
if solution.feasible:
    print("x =", x.value, "y =", y.value, "cost =", cost.value)
```

示例不需要模型或变量名称：`x`、`y`、`cost` 是 Python 表达式引用，求解后通过 `.value` 读值。

这里的整数上下界都包含端点。`constraint()` 与 `add_constraint()` 等价；`minimize()` 声明最小化目标。这个小模型的数学最优解是 `x=0, y=7`，成本为 `7`；限时搜索的返回结果应以实际可行性与目标值为准。

## 换用线性求解入口

该模型满足严格线性要求，可以复用模型并显式调用 OptX：

```python
from optagent import OptxConfig

solution = model.solve_optx(config=OptxConfig(time_limit=5.0))
if solution.feasible:
    print(x.value, y.value)
```

其他入口是 `solve_cpsat()` 和 `solve_mathopt()`，需要 OR-Tools extra。各入口不自动互相回退，参数对象也不能混用。

## 接下来

- [建模指南](../guide/modeling.md)：集合、序列、区间与多目标。
- [选择求解路径](../guide/solvers.md)：能力范围和预算语义。
- [结果与诊断](../guide/results.md)：值何时有效、如何处理超时。
- [API 参考](../api/index.md)：查询调用与参数。
