Программирование для математиков
Наталья Дубова
В 1980 году на мехмате МГУ был введен новый курс программирования
Вместе с появлением первых вычислительных машин возникла потребность в фундаментальной подготовке тех, кто научит этих электрических монстров осмысленной деятельности, то есть программистов. На мехмате МГУ в начале 50-х Алексей Андреевич Ляпунов читал первый учебный курс по принципам программирования. В 1980 году здесь же возникает новый курс программирования, который в конечном итоге оказал серьезное влияние не только на несколько поколений «мехматян», но и в целом на преподавание информатики в стране.
Р’ заголовок статьи РјС‹ вынесли название учебника РїРѕ мехматскому РєСѓСЂСЃСѓ программирования, который вышел восемью годами позже. Авторы РєСѓСЂСЃР° Геннадий Викторович Лебедев Рё Анатолий Георгиевич Кушниренко подчеркивают, что название это отражало РЅРµ просто принадлежность предмета главному математическому факультету страны. Рљ 80-Рј стало очевидно, что мехмат, проложивший РґРѕСЂРѕРіСѓ преподаванию теоретического программирования, уже РЅРµ имеет соответствующего его высокой научной планке РєСѓСЂСЃР° РїРѕ этому предмету. Преподавание программирования сводилось Рє изложению Фортрана — языка, авторитет которого РІ сфере научных расчетов был непререкаем, Рё описанию архитектуры машин IBM 360, СЃ которых делались наши ЕС РР’Рњ. Качество этих РєСѓСЂСЃРѕРІ никак РЅРµ отвечало мехматским требованиям. Вызревала потребность РІ абсолютно РЅРѕРІРѕРј РєСѓСЂСЃРµ, СЃРїРѕСЃРѕР±РЅРѕРј внести вклад РІ общую математическую культуру студентов.
Теперь его авторы уверены, что в итоге, когда курс окончательно сформировался, им удалось достигнуть этой цели. Правда, накануне 1 сентября 1980 года такие глобальные идеи не формулировались. Просто молодые преподаватели решили, что каждый студент, пришедший на первое занятие по программированию, должен уйти с него с распечаткой готовой программы. Для этого решили написать пакет программ с использованием библиотек системы «Асфор» — сокращенной версии Фортрана, разработанной на мехмате специально для программирования студенческих задач. Студенты должны были построить алгоритм передвижения некого «путника» через заданный набор препятствий и составить программу, состоящую только из вызовов стандартных программ. Дальше оставалось только собрать нужные перфокарты с набитыми на них программами, запустить их обработку и получить результат.
После нескольких дней борьбы с библиотеками на Фортране создать такой пакет программ не удалось.
«В последнюю ночь в полном отчаянии и от безысходности в голове родилась шальная мысль, что Фортран здесь не нужен. Надо написать интерпретатор. С этой идеи и стартовал мехматский курс», — вспоминает Лебедев. За два часа был написан интерпретатор, обрабатывающий линейные операторы вновь придуманного языка с русской лексикой. Первое занятие прошло с полным успехом. Вся группа ушла с выполненными программами и уже приобретенным опытом исправления типовых ошибок. В прежних курсах студенты получали первые результаты не раньше чем через два-три месяца освоения языка.
Написанный за ночь интерпретатор положил начало специализированному программному обеспечению, наличие которого стало одним из основных факторов эффективности преподавания нового курса. Но в принципе курс можно было изучать, даже не подходя к вычислительной машине. Курс вводил базовые понятия программирования, не уделяя практически никакого внимания синтаксису конкретных языков. В конце студенты получали справочные сведения об операторах Фортрана, чтобы иметь возможность реализовать на этом языке разработанные ранее на псевдокоде системы. Но основное содержание курса не привязывалось к определенному языку программирования, и в этом было его важное отличие.
РџРѕ образному выражению авторов РєСѓСЂСЃР°, РІ его РѕСЃРЅРѕРІРµ лежат «три кита», которые призваны помочь студенту приобрести навыки грамотного программирования систем объемом РІ несколько тысяч строк. Рто понятие исполнителя, технология «сверху РІРЅРёР·В» Рё развитые структуры данных. Первое понятие, придуманное Владимиром Борисовичем Бетелиным, создатели РєСѓСЂСЃР° сами освоили РїСЂРё решении вполне конкретных задач Рё обнаружили, что СЃ его помощью можно СЃ успехом строить самые большие Рё сложные системы. Фактически исполнитель — пакет программ, работающих над общими данными, — предшественник объектно-ориентированного программирования, экземпляр класса РІ современной терминологии.
Два других кита — технология программирования «сверху вниз», cхематическое изображение которой вынесено на обложку учебника, и иерархия структур данных с описанием методов реализации одних структур на базе других — важнейшие компоненты, без которых не обходится программист-практик. Мехматский курс программирования действительно закладывал базу для грамотной разработки сложных систем. Однако только изложение важных понятий, не подкрепленное практикой, мало что дало бы студентам. Поэтому в курсе предлагалось разобраться с несколькими законченными проектами (построение выпуклой оболочки, реализация компилятора с языка арифметических формул, построение изображения полиэдра) и, что самое главное, модифицировать эти проекты, то есть, изучив 6-8 тыс. строк эталонных программ, добавить тысячу-другую своих. Так студент на практике закреплял полученные теоретические знания и одновременно готовился к реальной работе. Ведь в жизни часто все так и происходит — решение задачи сводится к модификации готовых программных систем.
Новый курс сразу привлек внимание студентов, равно как и профессуры. Подача предмета была интересна и необычна. Каждый студент на первой лекции получал именную распечатку с расписанием курса, программами лекций, перечнем экзаменационных задач. Преподаватели стремились сделать процесс обучения максимально эффективным, а студенты чувствовали, что о них заботятся, и не могли не оценить этого. Но со стороны профессорского состава, как вспоминает Кушниренко, нетрадиционный подход встретил психологическое и эмоциональное неприятие. Говорили, что столь полная распланированность курса с самого начала исключает творческий подход к чтению лекций. Боялись распространения подобных методов на другие предметы.
Опасения эти были безосновательны. Новая постановка преподавания программирования на мехмате не мешала изучению классических математических дисциплин. Оказалось, что сильные студенты вполне способны увлечься таким «приземленным» занятием, как программирование, найдя его интересным и своевременным. Создатели курса вложили в него всю свою энергию, увлеченность и талант. «Мы были довольно яркие ребята и делали курс с большим вкусом и интересом», — вспоминает с присущим ему юмором Кушниренко. К середине 80-х на курсе программирования для математиков была взращена группа молодых специалистов, которая вместе с ветеранами составила элиту факультетского программистского сообщества.
Авторы курса говорят, что учебник, изданный более десяти лет назад, не стыдно читать и сейчас. Рдобавляют, что порекомендуют его любому старшему школьнику или студенту, заинтересованному в глубоком изучении программирования. Во второй половине 80-х из созданного на мехмате курса выросло школьное преподавание информатики, которое начали повсеместно внедрять в те годы. К этой теме мы непременно вернемся в будущих номерах.
Список литературы
Для подготовки данной работы были использованы материалы с сайта http://www.osp.ru
topref.ru
ЛАБОРАТОРНАЯ РАБОТА №2
по мат.программированию
«Графический и симплексный методы решения ОЗЛП»
Для изготовления 2-х различных изделий А и В используется 3 вида сырья. На производство единицы изделия А требуется затратить сырья 1-го вида а1 кг, сырья 2-го вида – а2 кг, сырья 3-го вида – а3 кг. На производство единицы изделия В требуется затратить сырья 1-го вида в1 кг, сырья 2-го вида – в2 кг, сырья 3-го вида – в3 кг. Производство обеспечено сырьём 1-го вида в количестве Р1 кг, сырьём 2-го вида в количестве Р2 кг, сырьём 3-го вида в количестве Р3 кг. Прибыль от реализации единицы готового изделия А составляет ден.ед., а изделия В –ден.ед.
в„– | Р°1 | Р°2 | Р°3 | РІ1 | РІ2 | РІ3 | Р 1 | Р 2 | Р 3 | ||
8 | 11 | 7 | 8 | 10 | 5 | 6 | 425 | 450 | 550 | 2 | 4 |
Математическая модель задачи
Обозначим количество произведенной продукции 1-го вида через х1, 2-го вида – х2. Тогда линейная функция примет вид: Z (х1, х2) =2*х1+4*х2.
Рто есть цена произведенной продукции. Наше решение должно обеспечить максимальное значение этой функции.
Условие налагает на величины х1 и х2 ограничения следующего вида:
Построенная линейная функция называется функцией цели и совместно системой ограничений образует математическую модель рассматриваемой экономической задачи.
Графическое решение задачи
Построим многоугольник решений. Для этого в системе координат х1Ох2 на плоскости изобразим граничные прямые
Взяв какую-нибудь точку, например, начало координат, установим, какую полуплоскость определяет соответствующее неравенство. Многоугольником решений данной задачи является треугольник АОВ. Для построения прямой 2*х1+4*х2=0 строим радиус-вектор N =(2;4)=2.5*(2;4)=(5;10) и через точку 0 проводим прямую, перпендикулярную ему. Построенную прямую Z =0 перемещаем параллельно самой себе в направлении вектора N. Опорной по отношению к многоугольнику решений эта прямая становится в точке А (0;42,5), где функция Z принимает максимальное значение.
Оптимальный план задачи: х1=0; х2=42,5.
Подставляя значения х1 и х2 в линейную функцию, получаем Zmax =2*0+4*42.5=170 у.е.
Таким образом, для того чтобы получить максимальную прибыль в размере 170 у.е., необходимо запланировать производство 42,5 ед. продукции В.
Решение задачи симплексным методом
Запишем систему в векторной форме
С…1*Рђ1+С…2*Рђ2+С…3*Рђ3+С…4*Рђ4+С…5*Рђ5=РђРѕ, РіРґРµ
Составляем симплексную таблицу.
i | Базис | Сбаз | Ао | С1=2 | С2=4 | С3=0 | С4=0 | С5=0 | С.О. |
Рђ1 | Рђ2 | Рђ3 | Рђ4 | Рђ5 | |||||
1 | Рђ3 | 425 | 11 | 10 | 1 | 42,5 | |||
2 | Рђ4 | 450 | 7 | 5 | 1 | 90 | |||
3 | Рђ5 | 550 | 8 | 6 | 1 | 91,66667 | |||
m+1 | Zj-Cj | -2 | -4 |
Среди полученных оценок имеются РґРІРµ отрицательные: Z1-C1=-2<0 Рё Z2-C2=-4<0. Рто означает, что первоначальный опорный план РЅРµ является оптимальным Рё его можно улучшить, включив РІ базис вектор, которому соответствует максимальное РїРѕ модулю отрицательное число РІ m+1 строке. Разрешающий вектор-столбец Рђ2. Разрешающий элемент находим РїРѕ минимальному симплексному отношению. Разрешающий элемент – число 10.
Составим вторую симплексную таблицу.
i | Базис | Сбаз | Ао | С1=2 | С2=4 | С3=0 | С4=0 | С5=0 |
Рђ1 | Рђ2 | Рђ3 | Рђ4 | Рђ5 | ||||
1 | Рђ2 | 4 | 42,5 | 1,1 | 1 | 0,1 | ||
2 | Рђ4 | 237,5 | 1,5 | -0,5 | 1 | |||
3 | Рђ5 | 295 | 1,4 | -0,6 | 1 | |||
m+1 | Zj-Cj | 170 | 2,4 | 0,4 |
Просмотрев m+1 строку, убеждаемся, что опорный план – оптимален.
Оптимальный план предусматривает изготовление 42,5 ед.изделия Р’ Рё РЅРµ предусматривает изготовление изделий Рђ. Рзготовление изделий Рђ привело Р±С‹ Рє уменьшению прибыли РЅР° 2,4 Сѓ.Рµ. Сырье 1-РіРѕ РІРёРґР° используется полностью. Неиспользованными остается 450-237,5=212,5 тонн 2-РіРѕ РІРёРґР° Рё 550-295=255 тонн 3-РіРѕ РІРёРґР° сырья. Максимальная прибыль составляет 170 Сѓ.Рµ.
Решение задачи на компьютере
Выполним следующие действия:
– В ячейку А1 вводим формулу для целевой функции=2*х1+4*х2
– В ячейку А3 вводим формулу для ограничения: =11*с1+10*с2.
– В ячейку А4 вводим формулу для ограничения: =7*с1+5*с2.
– В ячейку А3 вводим формулу для ограничения: =8*с1+6*с2.
– В ячейку С1: С2 вводим начальные значения переменных (0:0).
–Выполним команду Сервис > Поиск решения.
Следовательно, план выпуска продукции, включающий изготовление 42,5 изделий В является оптимальным. При данном плане выпуска изделий полностью используется сырье 1-го вида и остаётся неиспользованным 450-237,5=212,5 тонн 2-го вида и 550-295=255 тонн 3-го вида сырья, а стоимость производимой продукции равна 170 у.е.
ЛАБОРАТОРНАЯ РАБОТА №3
по мат.программированию
«Транспортная задача»
Рмеются 3 пункта поставки РѕРґРЅРѕСЂРѕРґРЅРѕРіРѕ РіСЂСѓР·Р° Рђ1, Рђ2, Рђ3 Рё 5 пунктов Р’1, Р’2, Р’3, Р’4, Р’5 потребления этого РіСЂСѓР·Р°. РќР° пунктах Рђ1-Рђ3 находится РіСЂСѓР· соответственно РІ количестве Р°1-Р°3 тонн. Р’ пункты Р’1-Р’5 требуется доставить соответственно РІ1-РІ5 тонн РіСЂСѓР·Р°. Стоимости перевозок 1 тонны РіСЂСѓР·Р° между пунктами поставки Рё пунктами потребления приведены РІ матрице D. Найти такой план закрепления потребителей Р·Р° поставщиками РѕРґРЅРѕСЂРѕРґРЅРѕРіРѕ РіСЂСѓР·Р°, чтобы общие затраты РїРѕ перевозкам были минимальными.
Пункты поставки | Пункты потребления | Запасы | ||||
Р’1 | Р’2 | Р’3 | Р’4 | Р’5 | ||
Рђ1 | 12 | 10 | 15 | 12 | 13 | 350 |
Рђ2 | 16 | 14 | 17 | 10 | 8 | 150 |
Рђ3 | 15 | 10 | 13 | 14 | 15 | 280 |
Потребн. | 100 | 120 | 200 | 160 | 200 |
Математическая модель задачи
Математическая модель транспортной задачи состоит в нахождении такого неотрицательного решения системы линейных уравнений
при которых целевая функция
F=12*x11+10*x12+15*x13+12*x14+13*x15+16*x21+14*x22+17*x23+10*x24+8*x25+15*x31+10*x32+13*x33+14*x34+15*x35
принимает минимальное значение.
Опорный план найдем методом северо-западного угла.
Пункты поставки | Пункты потребления | Запасы | |||
Р’1 | Р’2 | Р’3 | Р’4 | Р’5 | |
Рђ1 | 350 | ||||
Рђ2 | 150 | ||||
Рђ3 | 280 | ||||
Потребн. | 100 | 120 | 200 | 160 | 200 |
Для проверки плана на оптимальность необходимо построить систему потенциалов. Для построения системы потенциалов используем условие Ui+Vj=Cij
Пункты поставки | Пункты потребления | Запасы | |||
Р’1 | Р’2 | Р’3 | Р’4 | Р’5 | |
Потенциалы | V2= | V3= | V4= | V5= | |
Рђ1 | 350 | ||||
Рђ2 | 150 | ||||
Рђ3 | 280 | ||||
Потребн. | 100 | 120 | 200 | 160 | 200 |
Пункты поставки | Пункты потребления | Запасы | |||
Р’1 | Р’2 | Р’3 | Р’4 | Р’5 | |
Потенциалы | V2= | V3= | V4= | V5= | |
Рђ1 | 350 | ||||
Рђ2 | 150 | ||||
Рђ3 | 280 | ||||
Потребн. | 100 | 120 | 200 | 160 | 200 |
Пункты поставки | Пункты потребления | Запасы | |||
Р’1 | Р’2 | Р’3 | Р’4 | Р’5 | |
Потенциалы | V2= | V3= | V4= | V5= | |
Рђ1 | 350 | ||||
Рђ2 | 150 | ||||
Рђ3 | 280 | ||||
Потребн. | 100 | 120 | 200 | 160 | 200 |
Пункты поставки | Пункты потребления | Запасы | |||
Р’1 | Р’2 | Р’3 | Р’4 | Р’5 | |
Потенциалы | V2= | V3= | V4= | V5= | |
Рђ1 | 350 | ||||
Рђ2 | 150 | ||||
Рђ3 | 280 | ||||
Потребн. | 100 | 120 | 200 | 160 | 200 |
Пункты поставки | Пункты потребления | Запасы | |||
Р’1 | Р’2 | Р’3 | Р’4 | Р’5 | |
Потенциалы | V2= | V3= | V4= | V5= | |
Рђ1 | 350 | ||||
Рђ2 | 150 | ||||
Рђ3 | 280 | ||||
Потребн. | 100 | 120 | 200 | 160 | 200 |
Пункты поставки | Пункты потребления | Запасы | |||
Р’1 | Р’2 | Р’3 | Р’4 | Р’5 | |
Потенциалы | V2=5 | V3=8 | V4=7 | V5=8 | |
Рђ1 | 100 | 40 | 160 | 50 | 350 |
Рђ2 | 150 | 150 | |||
Рђ3 | 80 | 200 | 280 | ||
Потребн. | 100 | 120 | 200 | 160 | 200 |
Все незанятые клетки удовлетворяют условию Ui+Vj<=Cij.
Общая стоимость плана составляет
S=100*12+40*10+12*160+13*50+8*150+10*80+13*200=8770 Сѓ.Рµ.
Решение задачи на компьютере
Объём перевозок | |||||
12 | 10 | 15 | 12 | 13 | |
16 | 14 | 17 | 10 | 8 | |
15 | 10 | 13 | 14 | 15 | |
Объём перевозок | Всего поставлено | ||||
100 | 40 | 160 | 50 | 350 | |
150 | 150 | ||||
80 | 200 | 280 | |||
100 | 120 | 200 | 160 | 200 | Всего получено |
Затраты на перевозки | |||||
1200 | 400 | 1920 | 650 | ||
1200 | |||||
800 | 2600 | 8770 |
Microsoft Excel 10.0 Отчет по результатам | |||
Рабочий лист: [Книга1]Лист2 | |||
Отчет создан: 17.12.2004 9:44:11 | |||
Целевая ячейка (Минимум) | |||
Ячейка | РРјСЏ | РСЃС…РѕРґРЅРѕРµ значение | Результат |
$G$13 | 8770 | ||
Рзменяемые ячейки | |||
Ячейка | РРјСЏ | РСЃС…РѕРґРЅРѕРµ значение | Результат |
$A$6 | Объём перевозок | 100 | |
$B$6 | 40 | ||
$C$6 | |||
$D$6 | 160 | ||
$E$6 | 50 | ||
$A$7 | Объём перевозок | ||
$B$7 | |||
$C$7 | |||
$D$7 | |||
$E$7 | 150 | ||
$A$8 | Объём перевозок | ||
$B$8 | 80 | ||
$C$8 | 200 | ||
$D$8 | |||
$E$8 |
www.ronl.ru
РџРѕ всем официальным Рё неофициальным рейтингам РѕРґРЅРёРјРё РёР· наиболее востребованных РЅР° рынке труда являются специальности, связанные СЃ IT-технологиями (специалисты РІ области информационных Рё вычислительных технологий компьютерной обработки данных). Согласно последним исследованиям, проведенным Международным Рнститутом Открытых Технологий, потребность РІ специалистах РІ области вычислительных Рё информационных технологий ежегодно возрастает РЅР° 36%. Профессия программиста, некогда являвшаяся привилегией избранных, становится РІСЃРµ более массовой Рё востребованной. Отсюда Рё интерес Рє этой профессии, зачастую окутанной мифами Рё легендами, что делает ее еще более привлекательной. РЎ РґСЂСѓРіРѕР№ стороны, программист программисту СЂРѕР·РЅСЊ. Р’ области IT-технологий растет конкуренция, РІСЃРµ большее значение приобретает РЅРµ то, имеешь ли ты диплом специалиста РІ области IT-технологий, Р° уровень твоих знаний Рё навыков.
Подготовку специалистов на ФПМРосуществляют две выпускающие кафедры – прикладной математики и программных систем и баз данных – и две специальные – параллельных вычислительных технологий и вычислительных технологий.
Глядя на приведенный перечень выпускающих кафедр, возникает вопрос: кого же готовит факультет Прикладной математики и информатики? Математиков или программистов? Рнасколько справедливо сложившееся мнение (или заблуждение), что “на ФПМРслишком много математики”? Попробуем в этом разобраться.
Начнем с того, что сегодня термин “программист” имеет широкое многозначное толкование равно, как и сама отрасль программирования. Специализации программистов (а точнее специальности IT-технологий) множатся и развиваются, программист, специализирующийся в одной области приложений, зачастую уже слабо понимает своего коллегу, работающего в другой области. Хотя вроде бы и языки программирования, и технологии одни и те же. Дело в том, что сами области приложений могут кардинально отличаться друг от друга, и для того, чтобы писать специализированные программы, мало знать языки и технологии программирования, нужно хорошо разбираться в той области, для которой пишется программный продукт. А для этого нужно иметь достоверную непротиворечивую модель (чаще всего математическую, но возможно и какую-либо другую – инфологическую, семантическую) той предметной области, которую Вы собираетесь исследовать или автоматизировать. У К. Маркса есть замечательные строки, что “самый плохой архитектор (читай – разработчик программ) отличается от самой хорошей пчелы, строящей соты, тем, что у него, в отличие от пчелы, в голове есть проект, план им создаваемого …”. Построение этой модели – самый важный этап разработки программного продукта, требующий не только высочайшего интеллекта, но и очень серьезного образования. Он включает анализ и исследование широкого спектра алгоритмов и математических методов, выбор наиболее приемлемых альтернатив, построение, анализ и алгоритмизацию модели, выбор и использование адекватных программных средств и технологий. Все это невозможно без основательной базовой математической подготовки, являющейся фундаментом для специалиста в области IT-технологий. Поэтому подчас вызывает умиление вид начинающего горе-программиста, который, получив сложную задачу, бросается к компьютеру и начинает “из головы” писать программу. Почему-то ни у кого не вызывает сомнения, что перед тем, как строить многоэтажный дом или разрабатывать сложное инженерное техническое сооружение, необходимо подготовить проект (и не один) того, что Вы собираетесь создавать. Конечно, каждая из специализаций IT-технологий требует глубоких познаний в соответствующих областях, но эти познания не принесут ожидаемых дивидендов без фундаментальной базовой математической подготовки.
Наш факультет не готовит “узких” специалистов в какой-то области знаний. Основная цель – подготовка специалистов, обладающих фундаментальными знаниями в области компьютерных технологий (computer science, computer science and engineering, information system и аналогичных).
Задачи, которые ставят перед собой кафедры факультета, – это подготовка профессионального специалиста, который разбирается не только в конкретных технических деталях какой-то области знаний. Мы готовим специалистов, умеющих работать в любой области знаний, самостоятельно получать новые знания и приобретать опыт работы в различных областях информационных технологий.
Рта стратегия оправдывает себя, так как РІ 17 лет студент, как правило, еще РЅРµ определился РІ выборе специализации, РґР° Рє тому же специализации РІ индустрии производства программного обеспечения рождаются Рё умирают очень быстро. Р, возможно, специалисту придется РЅРµ раз РІ жизни менять специализацию РІ соответствии СЃ развитием IT-технологий. Если Сѓ специалиста РЅРµ будет фундаментальных знаний, которые даются РЅР° факультете, сменить специализацию будет довольно затруднительно.
К окончанию же университета студенты достаточно узнают о тех сферах производственной деятельности, в которых можно будет успешно работать, а также зачастую пробуют себя в деле. Выпускники уже с открытыми глазами могут выбирать сферу своей дальнейшей деятельности. Причем не только в области производства программного обеспечения, но и в любой другой сфере деятельности, где в последнее время интенсивно внедряются компьютерные технологии.
Все это невозможно без универсального образовательного базиса, который складывается из трех взаимосвязанных направлений: математического, естественно-научного и инженерного.
Р’ наше время невозможно стать высокопрофессиональным программистом без серьезной математической подготовки. РћРЅ должен владеть формальными методами исследований, которые включают РІ себя: определение формальных моделей Рё теорий, доказательство теорем, интерпретацию результатов. РџСЂРё этом теоретический РїРѕРґС…РѕРґ должен развиваться РЅРµ только РїСЂРё изучении математических дисциплин, РЅРѕ Рё дисциплин, непосредственно связанных СЃ информатикой. Рто, например, теория алгоритмов (теория сложности), теория построения трансляторов (формальных грамматик, автоматов), теоретическое программирование, которое рассматривает программу как математический объект Рё РїСЂ. Естественно-научное направление образовательного базиса развивает такие умения, как СЃР±РѕСЂ данных Рё выработку гипотез, математическое моделирование, умение получать Рё грамотно интерпретировать полученные данные.
Последние десятилетия характеризуются тем, что РІРѕ РјРЅРѕРіРёС… областях человеческой деятельности обновление фундаментальных знаний осуществляется Р·Р° счет интенсивного использования математического моделирования. Физическая реализация экспериментов, экспериментальная проверка выдвинутых гипотез являются очень дорогостоящими, как правило, требуют значительных человеческих Рё материальных ресурсов. Рђ имитация экспериментов РЅР° математических моделях, выявление закономерностей РІ С…РѕРґРµ многократного моделирования оказывается РЅР° РїРѕСЂСЏРґРєРё дешевле. РќРµ случайно наиболее весомые результаты РІ различных научных направлениях (РІ математике, физике, геофизике, С…РёРјРёРё, технике, технологиях, СЌРєРѕРЅРѕРјРёРєРµ, управлении …) получены благодаря эффективному применению методов математического моделирования. Если быть более точным, эти результаты получены СЃ РїСЂРёВменением соответствующего программного обеспечения, реализующего матемаВтическую модель объекта Рё математические методы, позволяющие найти решение, причем оптимальное. Ресли РјС‹ заменяем физический эксперимент математическим, то должны быть уверены РІ том, что РёС… результаты совпадают, что математическая модель адекватна “физическому” объекту. Ркак тут специалисту РїРѕ IT-технологиям обойтись без глубоких математических знаний Рё вычислительных методов?
Р’Рѕ РјРЅРѕРіРёС… сферах человеческой деятельности СЃ внедрением информационных технологий наблюдается стремительное накопление информации, которая является источником новых знаний Рё содержит скрытые закономерности. Рти знания Рё закономерности РјРѕРіСѓС‚ являться основанием для принятия ответственных решений. Выявление РІ накопленной информации скрытых закономерностей является задачей интеллектуального анализа данных (Data Mining) – составной части процесса поддержки принятия решений. Рђ РІ РѕСЃРЅРѕРІРµ интеллектуального анализа данных лежит широкий спектр методов теории вероятностей Рё математической статистики.
Надо сказать, РЅР° факультет РїСЂРёС…РѕРґСЏС‚, как правило, целеустремленные молодые люди, понимающие, что знания Рё навыки РЅРµ даются без кропотливого труда. Рпрактически РІСЃРµ быстро РїСЂРёС…РѕРґСЏС‚ Рє пониманию того, что создание серьезных программных продуктов без наличия фундамента специальных математических знаний невозможно. Студенты факультета очень активно участвуют РІ научных исследованиях Рё создании программного обеспечения РїРѕ основным научным направлениям, развиваемым РЅР° факультете. Например, РІ области распределенных баз данных, сетевых технологий, информационной защиты РІ РєРѕРјРїСЊСЋВтерных сетях, РІ области создания интеллектуальных систем, РІ области матемаВтичеВСЃРєРѕРіРѕ моделирования физических процессов, моделирования электромагВРЅРёС‚Вных Рё тепловых полей, РІ области разработки методов анализа данных Рё выявления закономерностей. Рсследования РјРЅРѕРіРёС… успешно продолжаются РІ аспирантуре. Факультет является РѕРґРЅРёРј РёР· лидеров РІ университете РІ подготовке Рё защите кандидатских Рё докторских диссертаций.
Примечательно, что выпускники ФПМРлегко адаптируются в любой прикладной области, в том числе, в гуманитарных и экономических областях, быстро добиваясь успехов благодаря основательной фундаментальной подготовке и подготовке в области IT-технологий.
ami.nstu.ru
1. Детерминированные и вероятностные математические модели в экономике. Преимущества и недостатки
Методы исследования экономических процессов базируются на использовании математических — детерминированных и вероятностных — моделей, представляющих изучаемый процесс, систему или вид деятельности. Такие модели дают количественную характеристику проблемы и служат основой для принятия управленческого решения при поисках оптимального варианта. Насколько обоснованы эти решения, являются ли они лучшими из возможных, учтены ли и взвешены все факторы, определяющие оптимальное решение, каков критерий, позволяющий определить, что данное решение действительно наилучшее, — таков круг вопросов, имеющих большое значение для руководителей производства, и ответ на которые можно найти с помощью методов исследования операций [Чесноков С. В. Детерминационный анализ социально-экономических данных. — М.: Наука, 1982, стр. 45].
Одним из принципов формирования системы управления является метод кибернетических (математических) моделей. Математическое моделирование занимает промежуточное положение между экспериментом и теорией: нет необходимости строить реальную физическую модель системы, ее заменит математическая модель. Особенность формирования системы управления заключается в вероятностном, статистическом подходе к процессам управления. В кибернетике принято, что любой процесс управления подвержен случайным, возмущающим воздействиям. Так, на производственный процесс оказывают влияния большое количество факторов, учесть которые детерминированным образом невозможно. Поэтому считается, что на производственный процесс воздействуют случайные сигналы. В силу этого планирование работы предприятия может быть только вероятностным.
По этим причинам часто, говоря о математическом моделировании экономических процессов, имеют в виду именно вероятностные модели.
Опишем каждый из типов математических моделей.
Детерминированные математические модели характеризуются тем, что описывают связь некоторых факторов с результативным показателем как функциональную зависимость, т. е. в детерминированных моделях результативный показатель модели представлен в виде произведения, частного, алгебраической суммы факторов, или в виде любой другой функции. Данный вид математических моделей наиболее распространен, поскольку, будучи достаточно простыми в применении (по сравнению вероятностными моделями), позволяет осознать логику действия основных факторов развития экономического процесса, количественно оценить их влияние, понять, какие факторы и в какой пропорции возможно и целесообразно изменить для повышения эффективности производства.
Вероятностные математические модели принципиально отличаются от детерминированных тем, что в вероятностных моделях взаимосвязь между факторами и результирующим признаком вероятностная (стохастическая): при функциональной зависимости (детерминированные модели) одному и тому же состоянию факторов соответствует единственное состояние результирующего признака, тогда как в вероятностных моделях одному и тому же состоянию факторов соответствует целое множество состояний результирующего признака [Толстова Ю. Н. Логика математического анализа экономических процессов. — М.: Наука, 2001, с. 32-33].
Преимущество детерминированных моделей в простоте их применения. Основной недостаток — низкая адекватность реальной действительности, т. к., как было отмечено выше, большинство экономических процессов носит вероятностный характер.
Достоинством вероятностных моделей является то, что они, как правило, больше соответствуют реальной действительности (более адекватны), чем детерминированные. Однако, недостатком вероятностных моделей является сложность и трудоемкость их применения, так что во многих ситуациях достаточно бывает ограничиться детерминированными моделями.
2. Постановка задачи линейного программирования на примере задачи о пищевом рационе
Впервые постановка задачи линейного программирования в виде предложения по составлению оптимального плана перевозок; позволяющего минимизировать суммарной километраж, была дана в работе советского экономиста А. Н. Толстого в 1930 году.
Систематические исследования задач линейного программирования и разработка общих методов их решения получили дальнейшее развитие в работах российских математиков Л. В. Канторовича, В. С. Немчинова и других математиков и экономистов. Также методам линейного программирования посвящено много работ зарубежных и, прежде всего, американских ученых.
Задача линейного программирования состоит в максимизации (минимизации) линейной функции.
, РіРґРµ
при ограничениях
(*)
причем все
Замечание. Неравенства могут быть и противоположного смысла. Умножением соответствующих неравенств на (-1) можно всегда получить систему вида (*).
Если число переменных системы ограничений и целевой функции в математической модели задачи равно 2, то её можно решить графически.
Ртак, надо максимизировать функцию Рє удовлетворяющей системе ограничений.
Обратимся к одному из неравенств системы ограничений.
С геометрической точки зрения все точки, удовлетворяющие этому неравенству, должны либо лежать на прямой , либо принадлежать одной из полуплоскостей, на которые разбивается плоскость этой прямой. Для того чтобы выяснить это, надо проверить какая из них содержит точку ().
Замечание 2. Если , то проще взять точку (0;0).
Условия неотрицательности также определяют полуплоскости соответственно СЃ пограничными прямыми . Будем считать, что система неравенств совместна, тогда полуплоскости, пересекаясь, образуют общую часть, которая является выпуклым множеством Рё представляет СЃРѕР±РѕР№ совокупность точек, координаты которых являются решением данной системы — это множество допустимых решений. Совокупность этих точек (решений) называется многоугольником решений. РћРЅ может быть точкой, лучом, многоугольником, неограниченной многоугольной областью. Таким образом, задача линейного программирования состоит РІ нахождении такой точки многоугольника решений, РІ которой целевая функция принимает максимальное (минимальное) значение. Рта точка существует тогда, РєРѕРіРґР° многоугольник решений РЅРµ РїСѓСЃС‚ Рё РЅР° нем целевая функция ограничена сверху (СЃРЅРёР·Сѓ). РџСЂРё указанных условиях РІ РѕРґРЅРѕР№ РёР· вершин многоугольника решений целевая функция принимает максимальное значение. Для определения данной вершины построим РїСЂСЏРјСѓСЋ (РіРґРµ h — некоторая постоянная). Чаще всего берется прямая . Остается выяснить направление движения данной РїСЂСЏРјРѕР№. Рто направление определяется градиентом (антиградиентом) целевой функции.
Вектор в каждой точке перпендикулярен прямой , поэтому значение f будет возрастать при перемещении прямой в направлении градиента (убывать в направлении антиградиента). Для этого параллельно прямой проводим прямые, смещаясь в направлении градиента (антиградиента).
Рти построения будем продолжать РґРѕ тех РїРѕСЂ, РїРѕРєР° прямая РЅРµ пройдет через последнюю вершину многоугольника решений. Рта точка определяет оптимальное значение.
Ртак, нахождение решения задачи линейного программирования геометрическим методом включает следующие этапы:
Строят прямые, уравнения которых получаются в результате замены в ограничениях знаков неравенств на знаки точных равенств.
Находят полуплоскости, определяемые каждым из ограничений задачи.
Находят многоугольник решений.
Строят вектор .
Строят прямую .
Строят параллельные прямые в направлении градиента или антиградиента, в результате чего находят точку, в которой функция принимает максимальное или минимальное значение, либо устанавливают неограниченность сверху (снизу) функции на допустимом множестве.
Определяют координаты точки максимума (минимума) функции и вычисляют значение целевой функции в этой точке.
Задача о рациональном питании (задача о пищевом рационе)
Постановка задачи
Ферма РїСЂРѕРёР·РІРѕРґРёС‚ откорм скота СЃ коммерческой целью. Для простоты допустим, что имеется всего четыре РІРёРґР° продуктов: Рџ1, Рџ2, Рџ3, Рџ4; стоимость единицы каждого продукта равна соответственно РЎ1, РЎ2, РЎ3, РЎ4. РР· этих продуктов требуется составить пищевой рацион, который должен содержать: белков — РЅРµ менее b1 единиц; углеводов — РЅРµ менее b2 единиц; жиров — РЅРµ менее b3 единиц. Для продуктов Рџ1, Рџ2, Рџ3, Рџ4 содержание белков, углеводов Рё жиров (РІ единицах РЅР° единицу продукта) известно Рё задано РІ таблице, РіРґРµ aij (i=1,2,3,4; j=1,2,3) — какие-то определённые числа; первый индекс указывает номер продукта, второй — номер элемента (белки, углеводы, жиры).
продукт | элементы | ||
белки | углеводы | жиры | |
Рџ1 Рџ2 Рџ3 Рџ4 | A11 A21 A31 A41 | A12 A22 A32 A42 | A13 A23 A33 A43 |
Требуется составить такой пищевой рацион (т. е. назначить количества продуктов П1, П2, П3, П4, входящих в него), чтобы условия по белкам, углеводам и жирам были выполнены и при этом стоимость рациона была минимальна.
Математическая модель
Обозначим x1, x2, x3, x4 количества продуктов П1, П2, П3, П4, входящих в рацион. Показатель эффективности, который требуется минимизировать, — стоимость рациона (обозначим её L): она линейно зависит от элементов решения x1, x2, x3, x4.
Целевая функция:
Система ограничений:
a11x1+a21x2+a31x3+a41x4 больше или равно b1
a12x1+a22x2+a32x3+a42x4 больше или равно b2
a13x1+a23x2+a32x3+a43x4 больше или равно b3
Рти линейные неравенства представляют СЃРѕР±РѕР№ ограничения, накладываемые РЅР° элементы решения x1, x2, x3, x4.
Таким образом, поставленная задача сводится к следующему: найти такие неотрицательные значения переменных x1, x2, x3, x4, чтобы они удовлетворяли ограничениям — неравенствам и одновременно обращали в минимум линейную функцию этих переменных:
Список литературы
Гончаров Р’. Р’. Важнейшие понятия Рё концепции РІ современном управлении. — Рњ.: РњРќРРРџРЈ, 2002, 341 СЃ.
Рстория экономических учений. // РџРѕРґ ред. Рќ. Рђ. Хохлова. — РЎРџР±: Питер, 2002, 324 СЃ.
Казаков Рђ. Рџ., Минаев Рќ. Р’. РРєРѕРЅРѕРјРёРєР°. РљСѓСЂСЃ лекций. Упражнения. Тесты Рё тренинги. — Рњ.: РР·Рґ-РІРѕ Р¦РРџРљРљ РђРџ, 1999, 359 СЃ.
Макроэкономика. Учебное РїРѕСЃРѕР±РёРµ. // РџРѕРґ ред. Рђ. Рњ. Бункина. — Рњ.: Рнфра-Рњ, 1995, 337 СЃ.
Нуриев, Розанова. Поведение потребителя в рыночной экономике. // Вопросы экономики, 2003, № 1, с. 4-9.
Социально-экономическая статистика. // РџРѕРґ ред. Р“. Р›. Громыко. — Рњ.: РР·Рґ-РІРѕ МГУ, 1999, 350 СЃ.
Толстова Ю. Н. Логика математического анализа экономических процессов. — М.: Наука, 2001, 160 с.
Ховард Рљ., Рриашвили Рќ. Р”., Никитин Рђ. Рњ. Ркономическая теория. — Рњ, 2000, 564 СЃ.
Чесноков С. В. Детерминационный анализ социально-экономических данных. — М.: Наука, 1982, 259 с.
www.ronl.ru