|    | 
СИ-БИ техника | КВ техника | УКВ техника | Радиоизмерения | Защита от TVI | Источники питания | Софт | Расчеты | Справочники
Главная arrow Проектирование arrow MathCAD arrow Как автор продавал программы (быль)  

Как автор продавал программы (быль)

Оглавление
Как автор продавал программы (быль)
Страница 2
Страница 2 из 2

Итак, перебор. Следуя вышеописанному правилу, новый метод решения задачи необходимо совместить с новым программным средством для его реализации. Это, конечно, можно было сделать и в среде Excel, составив таблицу всех решений и/или написав программу перебора на языке Visual Basic for Applications (VBA), встроенном в Excel. Но у Оли на компьютере был установлен еще и Mathcad (феномен рояля в кустах). Он довольно успешно решает задачи самого разного плана (включая и экономические) без обращения к чистому программированию (BASIC, С, Pascal и др.). Кроме того, в то время я работал над книгой, которую читатель держит в руках. Пример с краской эту книгу только украсит (нечаянный каламбур).

Протокол "контрольного взвешивания" краски в среде Mathcad приведен на рис. 3.22. Комментарии поясняют, что происходит в формулах. В Mathcad-документе формируются две матрицы с именами Об и Ст, элементы которых хранят значения объема (об) и стоимости (ст) краски в зависимости от комбинаций расфасовки. Далее некоторым элементам матриц об и Ст присваиваются нулевые значения, если данные комбинации расфасовки не проходят по стоимости. Остальное — ловкость рук и никакой математики: с помощью функции match определяется номер строки (переменная N15) и номер столбца (N55) матрицы Об, на пересечении которых находится элемент с максимальным значением. Ответ (37 маленьких барабанов и 6 больших) неприятно удивил Олю. Она невольно обманывала меня на 175 тыс. руб.

Встроенная в Mathcad функция match всегда возвращает составной массив -вектор, элементы которого — новые векторы с двумя компонентами. Число элементов первого "внешнего" вектора зависит от того, сколько в анализируемой матрице (у нас это матрицы об и Ст) элементов равны заданному значению (Мак_Об и Макс_Ст). В нашем случае таких элементов оказалось по одному, но функция match и в этом случае вернула составной массив, из которого ответ (нужный вектор) пришлось изымать оператором .

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

Вернувшись из Тамбова домой в Москву, я в спокойной обстановке у своего родного компьютера еще раз проанализировал задачу. И вот что получилось.

Во-первых, заставить процедуру поиска решений Excel правильно "разъяснять" задачу о краске можно было, изменив начальные установки. А для этого нужно было не полениться и нажать кнопку Параметры в диалоговом окне Поиск решения. В новом диалоговом окне Параметры поиска решения достаточно было допустимое отклонение уменьшить с 5 до 1%. После этого правильное решение было бы найдено.

Рис. 3.22. Задача о краске — решение в среде Mathcad

Честно говоря, в Excel плоха не процедура поиска решений, а ее начальные установки. Очень мало пользователей Excel, прибегающих к ее услугам, нажимают кнопку Параметры. Тот же, кто разбирается в сути установок оптимизации, как правило, с Excel не работает. Отсюда и недоразумения.

В табл. 3.2 представлен полный анализ оптимальных решений.

Таблица 3.2. Полный анализ оптимальных решений

Характеристика

Варианты решения

Вариант расфасовки

(число маленьких барабанов/число

больших барабанов)

2/16

6/15

13/13

37/6

Объем краски (л)

910

915

910

885

Остаток невыбранных денег (руб.)

186 000

47 000

12 000

11 000

Во-вторых, когда я показал эту таблицу в отделе снабжения МЭИ, то мне было сказано, что самый оптимальный вариант и для меня (мне важны деньги), и для МЭИ (ему нужна краска) четвертый: у "Тамбовэнерго" были бы выбраны почти все деньги, а 885 литров краски, как это ни кажется странным, больше, чем 910 и 915. Дело в том, что при крупной расфасовке много краски теряется из-за переливов в меньшую тару. 15-литровый барабан можно взять в ремонтируемую аудиторию и там полностью использовать.

Задача о краске, опубликованная в предыдущем издании книги, имела интересное продолжение. Один читатель написал, что он тоже подправил Excel, перешел на перебор и получил большую премию за экономию средств на производстве (штамповка пластмассовой посуды).

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


« Пред. - След.


RLBN.ru - Электроника и компьютеры

0.1386
Hosted by uCoz