Переменные модели
Переменные модели - это заранее неизвестные величины, которые должны быть вычислены решателем. При добавлении переменной в модель ей присваивается порядковый номер и уникальное имя. Имя может быть указано явно или назначаться автоматически по шаблону "_{НомерПеременной}".
Булевы переменные
Среди переменных модели отдельно выделяются булевы переменные. Булевы переменные являются частным случаем обычных переменных и могут использоваться там же, где используются обычные переменные. Булевы переменные могут принимать только два значения: 0 (ложь) и 1 (истина).
Добавление переменных
Для добавления переменных предусмотрено несколько методов объекта модели. Методы содержат опциональный параметр "Имя", который позволяет задать уникальное имя переменной. Если имя переменной не указать явно, то имя будет присвоено автоматически по шаблону "_{НомерПеременной}", где "НомерПеременной" - порядковый номер переменной, начиная с единицы.
Переменная
Данный метод создает переменную, значение которой может меняться в максимально широком диапазоне. Ниже приведены примеры для моделей разного типа:
- Непрерывная
- Целочисленная
- Смешанно-целочисленная
Переменная = Модель.Переменная(); // <-- вещественная переменная с именем "_1"
// Или
Переменная = Модель.Переменная("x"); // <-- вещественная переменная с именем "x"
Переменная = Модель.Переменная(); // <-- целочисленная переменная с именем "_1"
// Или
Переменная = Модель.Переменная("x"); // <-- целочисленная переменная с именем "x"
НепрерывнаяПеременная = Модель.Переменная(Ложь); // <-- вещественная переменная с именем "_1"
ЦелочисленнаяПеременная = Модель.Переменная(Истина); // <-- целочисленная переменная с именем "_2"
// Или
НепрерывнаяПеременная = Модель.НепрерывнаяПеременная("x"); // <-- вещественная переменная с именем "x"
ЦелочисленнаяПеременная = Модель.ЦелочисленнаяПеременная("y"); // <-- целочисленная переменная с именем "y"
ПеременнаяДиапазона
Данный метод создает переменную, значения которой могут меняться в установленном аргументами диапазоне [ЛеваяГраница, ПраваяГраница]. Для упрощения модели рекомендуется задавать максимально узкие диапазоны переменных, т.к. это упрощает задачу решателя. Ниже приведены примеры для моделей разного типа:
- Непрерывная
- Целочисленная
- Смешанно-целочисленная
Переменная = Модель.ПеременнаяДиапазона(15.5, 45.3); // <-- вещественная переменная с именем "_1"
// Или
Переменная = Модель.ПеременнаяДиапазона(15.5, 45.3, "x"); // <-- вещественная переменная с именем "x"
Переменная = Модель.ПеременнаяДиапазона(5, 15); // <-- целочисленная переменная с именем "_1"
// Или
Переменная = Модель.ПеременнаяДиапазона(5, 15, "x"); // <-- целочисленная переменная с именем "x"
НепрерывнаяПеременная = Модель.ПеременнаяДиапазона(15.5, 45.3, Ложь); // <-- вещественная переменная с именем "_1"
ЦелочисленнаяПеременная = Модель.ПеременнаяДиапазона(5, 15, Истина); // <-- целочисленная переменная с именем "_2"
// Или
НепрерывнаяПеременная = Модель.НепрерывнаяПеременнаяДиапазона(15.5, 45.3, "x"); // <-- вещественная переменная с именем "x"
ЦелочисленнаяПеременная = Модель.ЦелочисленнаяПеременнаяДиапазона(5, 15, "y"); // <-- целочисленная переменная с именем "y"
БулеваПеременная
Метод создает и регистрирует в модели новую булеву переменную. Метод одинаокв для всех типов линейных моделей.
Переменная = Модель.БулеваПеременная(); // <-- вещественная переменная с именем "_1"
// Или
Переменная = Модель.БулеваПеременная("x"); // <-- вещественная переменная с именем "x"
МассивПеременных
Метод создает указанное количество переменных и возвращает их в виде массива. Значения всех переменных могут изменяться в максимально широком диапазаоне.
- Непрерывная
- Целочисленная
- Смешанно-целочисленная
Переменные = Модель.МассивПеременных(3); // <-- вещественные переменные с именами "_1", "_2", "_3"
// Или
Переменные = Модель.МассивПеременных(3, "x"); // <-- вещественные переменные с именами "x1", "x2", "x3"
Переменные = Модель.МассивПеременных(3); // <-- целочисленные переменные с именами "_1", "_2", "_3"
// Или
Переменные = Модель.МассивПеременных(3, "x"); // <-- целочисленные переменные с именами "x1", "x2", "x3"
НепрерывныеПеременные = Модель.МассивПеременных(3, Ложь); // <-- вещественные переменные с именами "_1", "_2", "_3"
ЦелочисленнаяПеременные = Модель.МассивПеременных(3, Истина); // <-- целочисленные переменные с именами "_1", "_2", "_3"
// Или
НепрерывныеПеременные = Модель.МассивПеременных(3, Ложь, "x"); // <-- вещественные переменные с именами "x1", "x2", "x3"
ЦелочисленнаяПеременные = Модель.МассивПеременных(3, Истина, "y"); // <-- целочисленные переменные с именами "y1", "y2", "y3"
МассивПеременныхДиапазона
Метод создает указанное количество переменных и возвращает их в виде массива. Значения всех переменных ограничены диапазоном [ЛеваяГраница, ПраваяГраница].
- Непрерывная
- Целочисленная
- Смешанно-целочисленная
Переменные = Модель.МассивПеременныхДиапазона(
3, // <-- размер массива
10.3, // <-- левая граница значений
15.45, // <-- правая граница значений
"x" // <-- префикс имени переменной
);
Переменные = Модель.МассивПеременныхДиапазона(
3, // <-- размер массива
10, // <-- левая граница значений
15, // <-- правая граница значений
"x" // <-- префикс имени переменной
);
НепрерывныеПеременные = Модель.МассивПеременныхДиапазона(
3, // <-- размер массива
Ложь, // <-- признак целочисленной переменной
10.3, // <-- левая граница значений
15.45, // <-- правая граница значений
"x" // <-- префикс имени переменной
);
// Или
ЦелочисленнаяПеременные = Модель.МассивПеременныхДиапазона(
3, // <-- размер массива
10, // <-- левая граница значений
Истина, // <-- признак целочисленной переменной
15, // <-- правая граница значений
"x" // <-- префикс имени переменной
);
МассивБулевыхПеременных
Метод создает указанное количество булевых переменных и возвращает их в виде массива.
БулевыПеременные = Модель.МассивБулевыхПеременных(3); // <-- переменные с именами "_1", "_2", "_3"
// Или
БулевыПеременные = Модель.МассивБулевыхПеременных(3, "x"); // <-- переменные с именами "x1", "x2", "x3"