MathCAD
d7c8102a

Транспортная задача


Спрашивается, как нужно организовать перевозки (найти значения переменных с1м1, с1м2, с2м1 и с2м2), чтобы затраты были минимальны. На рис. 2.10 дан ответ. Парадокс задачи в том, что по самому дешевому маршруту (со второго склада в первый магазин – 800 у.е.) ничего не возится (с2м1 = 0). Этот парадокс мы также обыграем в следующем этюде.

Задачи на рис. 2.9 и.2.10 простенькие, но очень, если так можно выразиться, жизненно важные. На каждом шагу приходится что-то оптимизировать (расходы, например), принимая во внимание всякого рода ограничения (доходы!). Возвращаясь к сноске 17, можно привести такой пример. После часа пик (зимнее утро, к примеру) расход электроэнергии падает и необходимо снижать нагрузку электрогенераторов. Как это делать? Можно отключить отдельные турбогенераторы, а можно оставить их в работе, изменив нагрузку. Диспетчер энергосистемы дает соответствующие команды, ориентируясь на некие целевые функции: средний расход топлива по системе, выброс с дымовыми газами вредных веществ в атмосферу, износ оборудования, степень готовности электростанций и дальше менять нагрузку и т.д. Переменные такой оптимизации могут быть и вещественными (мощность отдельного энергоблока, которая меняется, естественно, в разумных пределах, определяемых техническими условиями – ограничения в задаче) и целочисленными (число работающих блоков). Эта задача очень сложная, но и очень эффективная – здесь речь идет о высвобождаемых составах с топливом.

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

Разговор об оптимизации мы продолжим в этюде 3 в несколько ином ключе.

[1] Тем более что, переменная R уже занята под хранение градусов Ренкина. В этом можно убедиться, набрав R= и получив R=0.556 K (градус Ренкина в градусах Кельвина). Присвоением R:=1m мы «испортили» данную системную переменную, что может выйти нам боком, если в расчет придется вводить температуру. Отсюда вытекает хорошее правило работы в среде Mathcad: «Никогда не пользуйтесь оператором «:=». Для присваивания значения переменной лучше работать с оператором «=», автоматически превращающимся в оператор «:=», если соответствующая переменная не занята пользователем или системой.


[2] В предыдущем издании книги автор так и написал R:=1 без указания, что это не просто единица, а единица длины. Из-за этого в формуле для h была допущена, а, главное, не исправлена, ошибка, сказавшаяся бы на расчете, если бы R стала равна не единице, а, допустим, двум.

[3] Такую работу может сделать и «Лупа» графика – см. рис. 1.26.

[4] Здесь ? не символ суммы, а просто заглавная греческая буква «сигма». Три функции вводятся в график через запятую, но автоматически выстраиваются столбиком.

[5] Автор, служа в армии и моя там, как водится, полы, ставил пожарное ведро (другого не было) в перевернутую табуретку. Отсюда и «любовь» к пожарным ведрам, вылившаяся на страницы этой книги.

[6] Эту функцию мы еще помянем добрым словом ¾ см. сноску 13.

[7] В среде Mathcad допустимо разрывать длинные суммы для более компактного их размещения на экране дисплея и на бумаге принтера. Для этого нужно нажать Ctrl+Enter вместо плюса.

[8] У нас получились некие лестницы, которые мы еще обыграем, рассказывая о чувствах, которые могут охватывать пользователя Mathcad.

[9] Эта возможность появилась еще в седьмой версии Mathcad.

[10] В среде Mathcad 8 эту работу можно делать по новой технологии: прижать график левой кнопкой мыши и вращать его, двигая мышь.

[11] Функция max здесь работает в качестве логического ИЛИ – см. в этюде 3 главку «Mathcad и булевы (логические) функции»: если a<0, или b<0, или a+b>360, то объем ведра становится равным нулю, иначе – сумме объемов трех ведер.

[12] Здесь звездочка это 4, 5 и 6. Пользователям ЭВМ такое сокращение (обобщение) знакомо по работе с файлами.

[13] Библейские герои за свои заслуги перед Богом получали дополнительную гласную в свое имя: Был Аврам (Абрам), стал Авраам (Исак – Исаак и т.д.). В Mathcad 8 имя нашей «заслуженной» функции изменилось: было minerr (или Minerr), стало MinErr.

[14] Треугольник – это основа визуализации трехкомпонентных смесей

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

[15] Это, естественно, не доллары США, а на самом деле условные единицы, не влияющие на решение задачи.

[16] Автор сначала хотел было написать «компьютеров», ориентируясь на тематику данной книги, но потом передумал – см. следующую сноску.

[17] Автор на своих лекциях в Московском энергетическом институте заменяет магазины на электростанции, куда из шахт

подвозится уголь. Одним словом, «Служил Гаврила почтальоном, Гаврила уголь, пардон, почту развозил…» – см. предыдущую сноску. Уголь удобен тем, что это не целочисленная задача.


Содержание раздела