> For the complete documentation index, see [llms.txt](https://water-strategy.gitbook.io/waterstrategy/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://water-strategy.gitbook.io/waterstrategy/russkii/osnovy-modelirovaniya/pywr-concepts.md).

# Концепции Pywr

Pywr, библиотека Pywr, используемая WaterStrategy, позволяет моделировать распределение ресурсов, представляя систему ресурсов в виде сети с использованием «Nodes» и «Edges». Распределение ресурсов определяется рабочими правилами, в которых используются «Штрафы за распределение», «Ограничения» и «Параметры», а выходные данные модели фиксируются и сохраняются с помощью «Рекордеров». Варианты входных данных модели можно задавать и запускать параллельно с помощью «Сценариев».

Хотя общие концепции, используемые для создания имитационной модели распределения ресурсов в Pywr, аналогичны концепциям других инструментов, использование терминов может отличаться. В этом разделе мы определяем ключевые термины Pywr и их роль в имитационных моделях.

## Узел

Узлы представляют собой места в смоделированной системе водоснабжения, где вода добавляется, хранится, используется, потребляется или передается. В Pywr существуют различные типы узлов, которые помогут вам построить модель системы водоснабжения; подробнее о них можно узнать в [Типы узлов](https://water-strategy.gitbook.io/water-strategy/modeling-basics/node-types) раздел. Данные, определяющие физические характеристики и поведение узла, могут быть добавлены непосредственно к узлу или косвенно, обратившись к параметру (описано ниже).

## Край

Для формирования сети узлы соединяются с помощью звеньев, представляющих собой транспортировку воды. Pywr называет их «ребрами». У ребра есть начальный и конечный узлы, и вода течет из начального узла в конечный узел. Pywr не присваивает информацию этим соединениям (ребрам), а присваивает данные исходному и целевому узлам. Все данные, необходимые для моделирования управления водными ресурсами, хранятся на узлах, а ребра определяют только направление потока воды. Разработчик модели Pywr сказал бы: «Ребра Pywr определяют топологию сети», что означает, что «связи между узлами определяют движение воды в компьютерной модели».

## Ограничение

Для различных типов узлов можно установить ограничения, позволяющие представить поведение системы. Например, речной узел может иметь максимальные и/или минимальные значения стока, отражающие пропускную способность транспортного средства. В Pywr многие узлы имеют значение «max\»\_поток' и 'мин\_атрибуты «flow» для установки верхнего и нижнего пределов потока через узел при необходимости. Атрибут max\ \_flow не требует, чтобы поток, проходящий через этот узел, достигал этого значения, но если объем и приоритет воды достаточны, модель попытается достичь значения «Max Flow». Ограничения по минимальному расходу следует использовать с осторожностью, так как в случае невозможности соблюдения минимального значения они могут привести к неосуществимости модели.

## Штраф за распределение или «стоимость»

Штрафы за распределение — это атрибуты узлов, определяющие приоритет распределения воды. Обычно они выражаются в виде штрафов или «издержек», и в соответствии с моделью вода сначала распределяется по узлу с наименьшим штрафом. Если вы предпочитаете распределять воду по льготам и сначала отправлять воду туда, где она приносит наибольшую пользу, вам следует указать в Pywr свои приоритеты в виде отрицательных затрат (например, использовать отрицательные значения). Фактически, оба узла можно использовать вместе, поэтому, например, если у трех узлов есть штрафы -10, 2, 6, они получат воду в таком порядке (узел с штрафом -10 получает воду первым, а узел с штрафом 6 получает воду последним).

## Параметр

Параметры в Pywr обеспечивают гибкий и удобный способ предоставления входных данных узлам. Например, определенный тип параметра можно использовать для загрузки данных о поступлении или запросе из файла Microsoft Excel. Параметры также предоставляют гибкий и настраиваемый способ определения рабочих правил системы (например, правил, регулирующих сбросы в резервуары). Большинство входных данных модели можно предоставить с помощью параметров.

## Рекордер

Для последующей обработки результатов используются рекордеры Pywr. Создав рекордер, вы можете наблюдать и сохранять результаты моделирования. Некоторые регистраторы позволяют агрегировать результаты по времени (например, от ежедневных до годовых) и по пространству (например, по воде, распределенной группе узлов).

## Сценарий

В Pywr вы можете создавать и моделировать сценарии с различными входными данными о спросе, предложении и других изменениях. Специалисты по планированию водных ресурсов все чаще используют долгосрочное моделирование с множеством сценариев для оценки будущих изменений или проверки возможных мер вмешательства. Возможность быстро смоделировать множество вероятных сценариев будущего — одно из главных преимуществ Pywr.

***Примечание:***

Для получения дополнительной информации обратитесь к документу открытого доступа под названием: [Симулятор водных ресурсов на Python](https://doi.org/10.1016/j.envsoft.2020.104635).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://water-strategy.gitbook.io/waterstrategy/russkii/osnovy-modelirovaniya/pywr-concepts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
