Внешняя компонента Симплекс-метод

11 Comments

  1. IgorMgn

    Реальная компонента. Конечно совсем уж «Поиск решения» Excel не заменит, но кое-что можно сделать без выгрузки данных в Excel! +1, несомненно!

    Reply
  2. gelotus

    А можно исходный код компоненты?

    Reply
  3. savonov

    +1 Красиво.

    Reply
  4. Myst_

    +!

    Reply
  5. Pavlovsky

    Чего то у меня возникли проблемы с ВК.

    Вот такая задача:

    36 17

    0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 -9 = 4

    1 1 0 0 -1 0 1 1 1 0 0 0 0 1 1 0 -5 >= 22

    -2 -1 0 0 1 -1 -2 -1 0 1 -1 -1 -1 -1 0 1 9 >= 22

    1 0 0 0 -1 0 0 -1 -1 -1 1 0 -1 -1 -1 -1 7 >= 22

    -1 -1 -1 0 1 0 -1 -1 -1 0 -1 0 0 -1 -1 0 9 >= 58

    1 1 0 -1 -1 1 2 1 0 -1 1 1 1 1 0 -1 -5 >= 58

    -1 -1 -1 0 0 0 -1 -2 -1 0 0 0 -1 -1 -1 0 11 >= 58

    0 -1 -1 -1 0 0 0 -1 -2 -1 0 0 0 -1 -1 -1 11 >= 22

    1 1 0 0 0 1 1 1 0 -1 1 1 1 1 0 0 -7 >= 22

    1 1 1 0 0 1 2 2 2 1 0 0 1 1 1 0 -13 >= 22

    0 1 1 1 0 -1 0 1 1 1 0 0 0 1 1 1 -7 >= 58

    -1 -1 0 0 0 -1 -2 -1 0 0 -1 -1 -1 -1 0 0 11 >= 58

    2 2 1 0 -1 1 2 2 1 0 1 1 1 1 1 0 -14 >= 58

    -1 0 1 1 1 -1 -1 0 1 1 -1 -1 0 0 0 1 0 >= 58

    0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 -1 4 >= 22

    -2 -2 -1 0 1 -1 -2 -2 -1 0 -1 0 0 -1 0 1 12 >= 22

    1 0 -1 -1 -1 1 1 0 -1 -1 1 0 0 0 -1 -1 4 >= 58

    0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 >= 58

    -1 -1 -1 -1 0 0 0 0 0 0 -1 0 0 0 0 0 6 >= 58

    0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 >= 58

    1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >= 58

    0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >= 22

    0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >= 58

    0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 >= 58

    0 0 0 0 0 -1 -1 -1 -1 -1 0 0 0 0 0 0 6 >= 58

    0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 >= 58

    0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 >= 58

    0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 >= 58

    0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 >= 58

    0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 >= 58

    0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 6 >= 58

    0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 >= 58

    0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 >= 58

    0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 >= 58

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 >= 58

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 >= 58

    min

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

    решение у нее есть стопудово

    58, 197/2, 58, 58, 58, 58, 259/4, 58, 259/4, 58, 58, 58, 58, 58, 58, 58, 259/4

    А ВК отказывается решать эту задачу выдает результат 0 и все.

    Reply
  6. lavrik

    Pavlovsky: пришлите, пожалуйста, Вашу реализацию в 1с на эл. адрес, указанный в описании к компоненте, постараюсь рассмотреть Ваш пример.

    Reply
  7. Pavlovsky

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

    Reply
  8. Pavlovsky
    Reply
  9. Pavlovsky

    Хм. Если убрать еще одну переменную, то выдает правльный ответ

    //целевая функция

    Симплекс.ДобавитьКоэффициентФункции(0);

    Симплекс.ДобавитьКоэффициентФункции(0);

    Симплекс.ДобавитьКоэффициентФункции(0);

    Симплекс.ДобавитьКоэффициентФункции(0);

    Симплекс.ДобавитьКоэффициентФункции(1);

    //формирование ограничений

    Симплекс.НовоеОграничение(1, 58);

    Симплекс.ДобавитьКоэффициентОграничения(-1);

    Симплекс.ДобавитьКоэффициентОграничения(-1);

    Симплекс.ДобавитьКоэффициентОграничения(-1);

    Симплекс.ДобавитьКоэффициентОграничения(-1);

    Симплекс.ДобавитьКоэффициентОграничения(5);

    Симплекс.НовоеОграничение(1, 58);

    Симплекс.ДобавитьКоэффициентОграничения(1);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.НовоеОграничение(1, 58);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(1);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.НовоеОграничение(1, 58);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(1);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.НовоеОграничение(1, 58);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(1);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.НовоеОграничение(1, 58);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(0);

    Симплекс.ДобавитьКоэффициентОграничения(1);

    Reply
  10. Stepan_1c

    Спасибо!

    Reply
  11. gorneev

    Огромное спасибо за компоненту!!! Помогло в конфигурации по комбикормам!!!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *