среда, 10 октября 2012 г.

Применение классов при получении подробного решения онлайн

Задался Я целью сделать симплекс метод онлайн с подробным бесплатным решением.

Как известно, обычно, подробное решение должно быть разбито на шаги, чтобы стало ясно.

Чтобы было ясно и у меня в коде и чтобы не запутаться при написании такой сложной программы я ввел класс. Входящими параметрами в этот класс стали:
  • функция, для которой необходимо найти экстремум
  • этот экстремум является максимумом или минимумом
  • и система условий в симплекс-задаче в ввиде списка данных (python-словарей)
В __init__ (в конструкторе) инитятся какие-то глобальные вещи, например, свободные члены, искусственные переменные, преобразуются данные к удобным.

Далее, для каждого шага проверяется:
  • нужно ли выполнять соотв. шаг (в отдельном методе объекта данного класса).
  • В другом методе для данного шага выполняется преобразование входящих данных
  • записывается состояние (слепок) данных на каком-то шаге в свойство объекта класса. (Например, запоминаются данные после приведения системы условий к каноническому виду, как требует симплекс-метод)
  • Также в каком-то из методов для данного шага (на проверке или же преобразовании данных) - заполняются глобальные вещи, например, свободные переменные
 У нас всегда есть проходящие данные через все методы и куча слепков этих данных.

Далее полученный объект данного класса пихается в django-шаблон, где происходит вывод решения задачи симплекс методом простыми манипуляциями if и for.

Пример того, что получилось вы можете посмотреть по ссылке симлекс метод онлайн
(там есть текстовый пример, чтобы не скучали и видео пример)

Комментариев нет:

Отправить комментарий