С 2010 года · Более 2 млн запусков инструментов в месяц
С 2010 года
Добавить в Chrome

Моя Панель Инструментов

Автоматический Режим

Сохранённых инструментов пока нет.

Премиум-версия
Похожие инструменты
Следующий шаг
График системы неравенств
Та же ситуация
Решатель Неравенств
Другие инструменты
Калькулятор области определения и значенийРешатель задачи коммивояжёра (TSP)
Домашняя страница > Математика > Продвинутые математические операции

Решатель Линейного Программирования

Решайте задачи линейного программирования симплекс-методом с решателем задач линейного программирования MiniWebtool. Поддерживаются задачи максимизации и минимизации, смешанные ограничения и до восьми переменных решения; для двух переменных строится график допустимой области с отмеченным оптимумом.

Нужна помощь с инструментом? Спросите ИИ

В Gemini вставьте скопированный вопрос в чат. Его также можно скопировать ниже.

Посмотреть вопрос

3 бесплатных использования в деньБез регистрацииМгновенный результат
Решатель Линейного ПрограммированияПопробуйте — бесплатно ▼
Оптимум — вершина: максимум 3x + 2y в (3; 1) равен 11

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

Первая строка — целевая функция (Maximize или Minimize …). Каждая последующая строка — линейное ограничение. Используйте <=, >= или =. Сокращение: x, y >= 0 задает неотрицательность для нескольких переменных. До 8 переменных и 20 ограничений. Можно задать до 8 переменных и 20 ограничений. Чтобы получить целочисленное решение, добавьте строку int x, y или установите флажок ниже.

Embed Решатель Линейного Программирования Widget

О Решатель Линейного Программирования

Решатель линейного программирования — это онлайн-калькулятор, который находит максимум или минимум линейной целевой функции при соблюдении системы линейных неравенств или равенств. Он использует симплекс-метод (вариант Big-M), что позволяет свободно смешивать ограничения типа <=, >= и =, а для задач с 2 переменными он строит интерактивный график области допустимых решений с выделением каждой вершины и оптимума.

Что такое линейное программирование?

Задача линейного программирования (ЛП) ставит вопрос:

Максимизировать (или минимизировать): Z = c1 x1 + c2 x2 + … + cn xn при условии: a11 x1 + … + a1n xn (≤, ≥, или =) b1 a21 x1 + … + a2n xn (≤, ≥, или =) b2 … am1 x1 + … + amn xn (≤, ≥, или =) bm x1, x2, …, xn ≥ 0

Набор точек, удовлетворяющих каждому ограничению, называется областью допустимых решений и представляет собой выпуклый многогранник. Основная теорема линейного программирования гласит, что если ЛП имеет конечный оптимум, то он достигается в вершине (крайней точке) этого многогранника. Вот почему симплекс-метод, который переходит от вершины к вершине, так эффективен.

Как работает симплекс-метод

Начиная с допустимой вершины, симплекс-метод многократно улучшает целевую функцию, переходя к соседней вершине с лучшим значением. Механика процесса:

  1. Стандартная форма: перевод ЛП к виду max cTx при условии Ax = b, x ≥ 0. Для ограничений <= добавляются дополнительные (slack) переменные; для >= вычитаются избыточные (surplus) и добавляются искусственные с большим штрафом −M; для равенств добавляются искусственные переменные.
  2. Начальная таблица: базис состоит из дополнительных и искусственных переменных, что дает очевидную начальную вершину.
  3. Входящая переменная: выбирается небазисная переменная с наибольшей положительной оценкой \( c_j - z_j \). Если такой переменной нет, текущее решение оптимально.
  4. Выходящая переменная: для входящего столбца проводится тест минимального отношения — правая часть каждой строки делится на ее положительный элемент во входящем столбце, и выбирается строка с наименьшим отношением. Если положительных элементов нет, ЛП неограничена.
  5. Итерация (Pivot): использование исключения Гаусса, чтобы сделать входящий столбец единичным вектором с единицей в выходящей строке.
  6. Повторение до выполнения критерия остановки.

Если по завершении какая-либо искусственная переменная остается в базисе с положительным значением, исходная ЛП недопустима.

Графический метод (для 2 переменных)

Для задач с двумя переменными область допустимых решений представляет собой 2D выпуклый многоугольник. Поскольку оптимум всегда находится в вершине, перечисления всех вершин и оценки целевой функции в них достаточно для решения задачи. Этот калькулятор выполняет перечисление путем пересечения каждой пары границ ограничений, сохраняя только те пересечения, которые удовлетворяют всем остальным ограничениям, и сортируя их против часовой стрелки для визуализации.

Синтаксис ввода

Напишите целевую функцию в первой строке, затем по одному ограничению в строке. Именами переменных может быть любой идентификатор (x, y, x1, profit…). Операторы: <=, >= и =. Неотрицательность можно записать как x, y >= 0 для сокращения.

Maximize 3x + 5y x + y <= 10 2x + y <= 16 x + 3y <= 18 x, y >= 0

Пустые строки и комментарии, начинающиеся с #, игнорируются. Решатель принимает до 8 переменных решения и 20 ограничений.

Пример решения

Рассмотрим мебельную мастерскую, которая изготавливает столы и стулья. Каждый стол приносит \\$3 прибыли и требует 1 единицу древесины и 2 единицы труда. Каждый стул приносит \\$5 прибыли и требует 1 единицу древесины, 1 единицу труда и 3 единицы лака. Доступно: 10 ед. древесины, 16 ед. труда, 18 ед. лака. При x = столы и y = стулья, задача ЛП выглядит так:

Maximize Z = 3x + 5y x + y <= 10 (древесина) 2x + y <= 16 (труд) x + 3y <= 18 (лак) x, y >= 0

Область допустимых решений — пятиугольник. Оценка Z в каждой вершине:

Решатель Линейного Программирования: Пример решения
Вершина (x, y)Z = 3x + 5yДопустимо?
(0, 0)0Да
(8, 0)24Да
(6, 4)38 ← оптимумДа
(0, 6)30Да

Таким образом, мастерской следует изготовить 6 столов и 4 стулья для получения максимальной прибыли в \\$38. Ограничения по дереву и труду являются связывающими (они равны своей правой части в оптимуме); запас лака также равен 0. Все три ограничения пересекаются в оптимуме, который является вырожденной вершиной четырехугольной допустимой области.

Общие проблемы и что обнаруживает решатель

Решатель Линейного Программирования: Общие проблемы и что обнаруживает решатель
СитуацияСимптомКак исправить
Неограниченная ЛП Решатель сообщает "Задача неограничена" Добавьте недостающую верхнюю границу. Целевая функция может расти бесконечно, потому что область допустимых решений бесконечна в направлении улучшения.
Недопустимая ЛП Решатель сообщает "Задача недопустима" Ограничения противоречат друг другу (например, x >= 10 при x <= 5). Пересмотрите каждую пару границ.
Альтернативные оптимумы Значок предупреждения; оптимальная вершина уникальна, но Z достигается вдоль всего ребра Происходит, когда вектор целевой функции параллелен связывающему ребру. Любая выпуклая комбинация двух вершин на этом ребре также является оптимальной.
Вырождение / зацикливание Симплекс итерирует без улучшения Z Редко встречается в учебных задачах; может быть решено правилом Бланда. Этот решатель ограничивает число итераций во избежание бесконечных циклов.

Области применения

Как пользоваться калькулятором

  1. Введите вашу задачу ЛП в текстовое поле. Первая строка должна начинаться с Maximize или Minimize. Каждая последующая строка содержит одно ограничение.
  2. Используйте сокращение x, y >= 0, чтобы объявить неотрицательность для всех перечисленных переменных сразу.
  3. Нажмите Решить задачу ЛП. Решатель выдаст оптимальное значение Z, оптимальные значения каждой переменной решения, список связывающих ограничений, а для задач с 2 переменными — интерактивный график области допустимых решений.
  4. Наведите на вершину на графике, чтобы увидеть ее координаты и значение Z. Оптимум отмечен звездочкой.
  5. Изучите симплекс-таблицы, чтобы увидеть каждую итерацию и проследить, как метод улучшает Z. Входящий столбец выделен янтарным цветом, выходящая строка — красным.

Часто задаваемые вопросы

Что такое задача линейного программирования?

Задача линейного программирования (ЛП) заключается в поиске максимума или минимума линейной целевой функции при наборе переменных решения, которые удовлетворяют системе линейных неравенств или равенств. Допустимое множество представляет собой выпуклый многогранник, и оптимум всегда достигается в одной из его вершин — этот ключевой факт и использует симплекс-метод.

Как работает симплекс-метод?

Симплекс-метод перемещается по вершинам допустимого многогранника. Каждый шаг (итерация) заменяет одну переменную в базисе на другую, переходя к соседней вершине со строго лучшим значением целевой функции. Алгоритм останавливается, когда итерация больше не может улучшить Z — текущая вершина тогда считается оптимальной. Инструмент использует вариант Big-M для работы со смешанными типами ограничений.

Что такое область допустимых решений?

Область допустимых решений — это набор всех значений переменных, удовлетворяющих всем ограничениям одновременно. Для 2 переменных это 2D выпуклый многоугольник; для n переменных — n-мерный многогранник. Пустой многогранник означает, что задача недопустима; многогранник, бесконечно уходящий в сторону улучшения, означает, что задача неограничена.

Что означает "неограниченная" в линейном программировании?

Задача ЛП является неограниченной, когда область допустимых решений тянется в бесконечность в том направлении, где целевая функция продолжает улучшаться. Например, Maximize x при условии x ≥ 0 не имеет предела. В реальности такие результаты обычно указывают на отсутствие важного ограничения, например, лимита ресурсов.

Что означает "альтернативный оптимум"?

Альтернативные оптимумы возникают, когда несколько точек дают одно и то же лучшее значение целевой функции. Геометрически это значит, что вектор цели параллелен активной стороне многоугольника, поэтому любая точка на этой стороне оптимальна. Решатель сообщает об этом, если небазисная переменная имеет нулевую оценку в конце расчета.

Сколько переменных и ограничений принимает решатель?

До 8 переменных решения и 20 ограничений. Интерактивный график строится только для задач с 2 переменными; для 3 и более переменных вы по-прежнему получаете полное числовое решение, пошаговые таблицы и отчет об активности ограничений.

Ссылайтесь на этот контент, страницу или инструмент так:

"Решатель Линейного Программирования" на сайте https://ru.miniWebtool.com/решатель-линейного-программирования/ от MiniWebtool, https://MiniWebtool.com/

от команды miniwebtool. Обновлено: 21 апр. 2026 г.

Обсудите инструмент с любимым ИИ

В Gemini вставьте скопированный вопрос в чат. Его также можно скопировать ниже.

Посмотреть вопрос

Продвинутые математические операции:

Решение по математикеЧто вы хотите решить?

Решение по математике

Примеры
Примеры выражений

Выберите пример, измените числа и решите. log — логарифм по основанию 10, ln — натуральный.

Числа и делители

Дроби и деление

Степени, корни и логарифмы

Алгебра и уравнения

Математический анализ

Геометрия и тригонометрия

Популярные и обновлённые инструменты:

Решатель систем линейных уравненийРешатель линейных уравненийРешатель задачи о стабильных бракахСмотреть все →
Домашняя страница > Математика > Продвинутые математические операции > Решатель Линейного Программирования