none
Microsoft Solver Foundation 3.1 решение задачи линейного программирования. Как понять, что полученное решение является единственным или нет? RRS feed

  • Вопрос

  • Всем добрый день. Возник такой вопрос.

    Использую Microsoft Solver Foundation 3.1 для решения задачи линейной оптимизации (ЛП). Решаю задачу, используя симплекс-метод, получаю решение. Но мне очень важно знать, является ли данное решение единственным!!! Кто может подсказать, как это понять, где это можно увидеть?

Все ответы

  • Всем добрый день. Возник такой вопрос.

    Использую Microsoft Solver Foundation 3.1 для решения задачи линейной оптимизации (ЛП). Решаю задачу, используя симплекс-метод, получаю решение. Но мне очень важно знать, является ли данное решение единственным!!! Кто может подсказать, как это понять, где это можно увидеть?

    Мда.... Лес ответов...
    6 июня 2016 г. 14:01
  • Прочел ваш вопрос, когда вы его только запостили. Нашел в нем два ранее не известных мне термина. Ознакомился и пришел к вполне логичному выводу - нет не является. В программировании в принципе не бывает единственного решения и существует ряд других способов решения той же задачи. Является ли он более оптимальным, чем другие? Исходя из википедии - все зависит от ситуации.

    Но стоило ли мне тогда давать вам этот ответ? Думаю, что нет, так как я не имею опыта решения таких задач и исхожу из очевидных понятий.

    Ваш же вопрос дискуссионный и обсуждать его нужно в узких кругах, а не здесь.

    Если же вопрос касался исключительно Microsoft Solver Foundation 3.1, то вопрос не по адресу. Разработчиков этого Фреймворка тут нет и его внутреннее устройство здесь никто не подскажет.


    VB.Net - WPF, UWP

    • Изменено LXGDARK 6 июня 2016 г. 16:15
    6 июня 2016 г. 16:15
  • Если важно знать наверняка, то потребуется дополнительный анализ другими методами. Как кажется, вопрос равносилен задаче: "узнать, машинный 0 в решении - это действительно 0 или всё-таки это не 0?"
    • Изменено RH6M6 8 июня 2016 г. 0:14 добавить ясности
  • Жаль, что никто не подскажет....

    И может я не так выразился. Поясню!

    При решении задач линейного программирования (симплекс метод) бывают ситуации, когда полученное оптимальное решение является не единственным. Когда я говорю о решении, я не имею ввиду метод решения, а именно само решение задачи (в данном случае это вектор X = {Xi}, i = 1..n), которое дает оптимальное значение целевой функции, удовлетворяющее поставленным ограничениям задачи. Есть признаки, по которым это можно понять (например в симплекс - таблице, для оценки оптимальности очередного опорного решения, расчитываются относительные оценки и если они неотрицательные, то данное опорное решение является оптимальным, а если среди оценок есть нули, то полученное оптимальное решение не единственно). Т.о. может существовать бесконечное множество решений задачи, которые будут давать оптимальное значение функции (максимальное либо минимальное, все зависит от поставленной задачи). Вот мне как раз и нужен был всего лишь этот признак для решения моей задачи.

    Я это конечно обошел, но мое решение не является элегантным. Вот и спросил, есть ли в MSF какой то признак, единственно ли полученное решение задачи ЛП или нет. Я пытался найти ответ, просмотрел все, что смог в данном фреймворке, но не нашел ответа...

    Спасибо за беспокойство!

    8 июня 2016 г. 17:02
  • Из самой теории методов оптимизации я знаю, что при решении задачи линейного программирования по самой симплекс - таблице можно понять, единственно ли полученное оптимальное решение задачи ЛП или нет. Вот я и спрашивал, есть ли какой то признак единственности полученного решения в библиотеке MSF или нет...
    8 июня 2016 г. 17:04