Компьютерное моделирование стало одним из основных общенаучных методов исследования, методов познания мира. Без него трудно представить профессиональную деятельность людей многих профессий.
Учебно-методическое пособие предназначено для студентов специальности «Автоматизация технологических процессов и производств (по отраслям)», а также может быть использовано и для других специальностей, в управлении образовательным процессом как одно из дидактических средств обучения.
Изучение содержания данного учебно-методического пособия обеспечит возможность студенту научиться строить и исследовать модели с помощью ЭВМ, применять электронные таблицы для данной категории задач.
Компьютерное моделирование в MS Excel .doc
Сборник заданий по разделу:
K
ОМПЬЮТЕРНОЕ
МОДЕЛИРОВАНИЕ В MS EXCEL
Иванов Иван
Для всех специальностей СПО
Разработала:
преподаватель
Белева Людмила Федоровна Сыктывкар,2016 год
2 Пояснительная записка:
Учебнометодическое пособие предназначено для студентов
всех
специальностей и может быть использовано, в управлении образовательным
процессом как одно из дидактических средств обучения.
Изучение содержания данного учебнометодического пособия обеспечит
возможность студенту научиться строить и исследовать модели с помощью
ЭВМ, применять и использовать электронные таблицы для решения данной
категории задач.
3 МАТЕМАТИЧЕСКИЙ АППАРАТ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ
ВЕРОЯТНОСТЬ СЛУЧАЙНОГО СОБЫТИЯ
Событие, которое может произойти, а может и не произойти, называют случайным
событием. Например, поражение мишени или промах при выстреле – случайные события.
Выигрыш команды во встрече с соперником, проигрыш или ничейный результат – это тоже
примеры случайных событий.
Вообще, пусть определенное испытание проводится многократно в одних и тех же условиях
и при этом каждый раз фиксируется, произошло или нет интересующее нас событие А.
Число m называют частотой события А, а отношение m/n – относительной частотой, где n –
общее число испытаний.
Задача 1.
Определить относительную частоту выпадения орла.
Для этого: введите формулы в расчетные ячейки.
Формула
Комментарий
Результаты
строки
=ЦЕЛОЕ (СЛЧИС()+0,5)
Выпадение орла или решки
0 или 1
до
500
Копируем формулу
А1
A2
А3
A4
A5
A6
….
включительно
А500
А501 =СЧЕТЕСЛИ(А1:А500;1)
А502 =СЧЕТ(А1:А500)
А503 = А501/ А502*100
Вообще, результаты наблюдений и опытов показывают, что при большом числе испытаний,
проводимых в одних и тех же условиях, относительная частота принимает достаточно
устойчивое значение.
Такое определение называют статистическим определением вероятности.
Задача 2. Бросание кубика
Найдите статистическую вероятность для каждого значения выпадения
1,2,3,4,5,6.
Для этого: введите формулы в расчетные ячейки.
Число выпадений орла
Число бросков
Относительная частота
234
500
0,49
очков
A
=ЦЕЛОЕ(СЛЧИС()*6+1
Копируем формулу
до
500
строки
1
2
3
4
5
B
1
2
3
4
5
C
D
{=ЧАСТОТА(A1:A500;B1:B6)}
=С1/500*100
4 6
включительно
6
….
500
Дополнение: рассмотрим событие В, которое означает выпадение числа очков, кратного 3.
Это событие происходит при двух исходах испытания: когда выпало 3 очка и когда выпало 6
очков. Эти исходы называют благоприятными исходами для события В. При бросании
кубика из 6 равновозможных исходов испытания благоприятными для события В являются
лишь два исхода. Отношение числа благоприятных исходов к числу всех равновозможных
исходов равно 2/6. Это отношение называют вероятностью события В и пишут
Р(В)=2/6=1/3.
Вероятностью события называют отношение числа благоприятных для него исходов
испытания к числу всех равновозможных исходов.
В рассмотренном примере посмотрим назначения ячеек D3 и D6, их сумма 32,6 колеблется
около 33%. Таким образом, классическое и статистическое определение вероятности
совпадают с определенной степенью точности.
Задача 3.
Проверить, что вероятность выпадения оба раза решки равна 0,25.
Решение.
Для этого: введите формулы в расчетные ячейки.
A
B
C
=ЦЕЛОЕ(СЛЧИС()+0,5)
=ЦЕЛОЕ(СЛЧИС()+0,5)
=A1+B1
Копируем формулу
до
50
строки
включительно
1
2
3
4
5
6
…
E
{=ЧАСТОТА
(C1:C50;D1:B3)}
F
=E1/50*100
D
0
1
2
Задача 4.
Из 25 экзаменационных билетов по геометрии ученик успел приготовить 11 первых 8
последних билетов. Какова вероятность того, что на экзамене ему достанется билет,
который он не подготовил?
Решение.
Общее число равновозможных исходов при выборе билетов на экзамене 25. Пусть М –
событие, заключающееся в том, что ученику достанется на экзамене билет, к которому он не
подготовился. Число благоприятных для М исходов (но не для ученика) равно 25(11+8).
Значит Р (М) =6/26=0,24. Проверим это. Для этого: введите формулы в расчетные ячейки.
A
до
49
строки
=ЦЕЛОЕ (СЛЧИС()*25+1)
1
2 Копируем формулу
3
4
5
…
включительно
B
C
=ЕСЛИ(A9>11;1;0)
Копируем формулу Копируем формулу
=ЕСЛИ(A1<18;1;0)
D
=B1+C1
Копируем формулу
5 49
50
Число неудачных билетов
Число всех билетов
Относительная
=СЧЁТЕСЛИ(D1:D49;2)
=СЧЁТ(D1:D49)
=D50/D51*100
вероятность в %
52
Задача 5.
Антон и Игорь бросают белый и черный игральные кубики и подсчитывают сумму выпавших
очков. Они договорились, что если при очередной попытке в сумме выпадает 8 очков, то
выигрывает Антон, а если в сумме выпадает 7 оков, то выигрывает Игорь. Является ли такая
игра справедливой?
Решение.
При бросании кубиков на белом кубике может выпасть 1,2,3,4,5 или 6 очков.
Каждому числу очков, выпавших на белом кубике, соответствует шесть вариантов числа
очков, выпавших на черном кубике. Все равновозможные исходы этого испытания приведены
в таблице:
(1,1)
(1,2)
(1,3)
(1,4)
(1,5)
(1,6)
(2,1)
(2,2)
(2,3)
(2,4)
(2,5)
(2,6)
(3,1)
(3,2)
(3,3)
(3,4)
(3,5)
(3,6)
(4,1)
(4,2)
(4,3)
(4,4)
(4,5)
(4,6)
(5,1)
(5,2)
(5,3)
(5,4)
(5,5)
(5,6)
(6,1)
(6,2)
(6,3)
(6,4)
(6,5)
(6,6)
В каждой паре на первом месте записано число очков, выпавших на белом кубике, на втором
– число очков на черном кубике. Общее число равновозможных исходов равно 36. Пусть
событие А означает, что при бросании кубиков в сумме выпало 8 очков, а событие В
означает, что в сумме выпало 7 очков. Для события А благоприятными являются следующие
5 исходов:(2;6), (3,5), (4;4), (5,3), (6;2). Для события В благоприятными являются
следующие 6 исходов:(1;6),
(5,2), (6;1). Отсюда: Р (А)=5/36
Р(В)=6/36.Поэтому делаем вывод шансов выиграть у Игоря больше, чем у Антона. Значит,
такая игра не является справедливой.
Проверим это. Для этого: введите формулы в расчетные ячейки.
(2,5), (3,4), (4;3),
A
B
=ЦЕЛОЕ(СЛЧИС()*6+1)
Копируем формулу
=ЦЕЛОЕ(СЛЧИС()*6+1)
Копируем формулу
C
=A1+B1
до
100
строки
до
100
строки
F
=Е1/100*100
E
D
1 {=ЧАСТОТА(C1:C100;D1:D12)}
2
3
4
5
6
…
12
1
2
3
4
5
…
100
Задача 6.
На карточках написаны натуральные числа от 1 до 10 включительно, после чего карточки
перевернули и перемешали. Затем наугад открыли одну карточку. Какова вероятность того,
что на ней будет написано простое число или число, большее 7?
6 Решение.
Пусть событие А означает, что на каточке написано простое число, а событие В означает
число, большее 7. Для события А благоприятными являются 4 исхода 10
равновозможных(появление одного из чисел 2,3,5,7), то есть вероятность события А равна
0,4.
Для события В благоприятными являются 3 исхода из 10 равновозможных(появление чисел
8,9,10), то есть вероятность события В равна 0,3.
Нас интересует событие С, когда на карточке написано простое число или число, большее 7.
Событие С наступает тогда, когда наступает одно из событий А или В. Очевидно, что
эти события являются несовместимыми. Значит, вероятность события С равна сумме
вероятностей событий А и В, то есть: Р(С)= Р(А) + Р(В)=0,4+0,3=0,7.
Проверим это. Для этого: введите формулы в расчетные ячейки.
7 A
1
2
1
2
3
4
5
…
98
99
B
C
2
D
3
E
5
F
7
G
>7
H
=ЦЕЛОЕ(СЛЧИС()*
10+1)
=ЕСЛИ(B2
=C$1;1;0)
=ЕСЛИ(B2
=D$1;1;0)
=ЕСЛИ(B2
=Е$1;1;0
=ЕСЛИ(B2
= F$1;1;0)
=ЕСЛИ(B2
>7;1;0)
=СУММ(C2:G2)
Копируем формулу
до
97
=СЧЁТЕСЛИ
(H2:H97;">0")
=Н98/97
Задача 7.
В результате многократных наблюдений установили, что вероятность попадания в мишень
одного стрелка равна 0,9, а другого – 0,8. Каждый из стрелков сделал по одному выстрелу по
мишени. Какова вероятность того, что мишень будет поражена?
Решение.
Рассмотрим такие события: А – первый стрелок попал в мишень; В – второй стрелок попал в
мишень; С – мишень поражена. События А и В независимые. Однако воспользоваться в этом
случае умножением вероятностей нельзя, так как событие С наступает не только, тогда,
когда оба стрелка попали в мишень, но и тогда, когда в мишень попал хотя бы один из них.
Поступим иначе. Рассмотрим события Ā,
С, противоположные соответственно
событиям А, В, С. События Ā, B являются независимыми, так как промах при выстреле по
мишени первого стрелка ( событие Ā) не зависит от промаха второго стрелка( событие B).
Событие С означает совместное появление событий Ā, B. Поэтому Р( С)= Р(Ā) • Р( B).
Из свойств вероятностей противоположных событий вытекает, что Р(Ā)=10,9=0,1;
Р( B)=10,8=0,2; Отсюда получаем Р( С)= Р(Ā) •Р( B)=0,1•0,2=0,02. Так как события С и С
противоположные, то теперь несложно найти вероятность события С: Р(С)= 1Р( С)=1
0,02=0,98. Значит, вероятность того, что мишень будет поражена, равна 0,98.
Проверим это на компьютере. Для этого: введите формулы в расчетные ячейки.
B,
A
1
2
3
4
5
6
7
…
97
98
99
1
2
3
4
5
6
7
98
99
B
=СЛЧИС()
заполнить
C
=СЛЧИС()
заполнить
D
E
=ЕСЛИ(B1>0,1;1;0)
=ЕСЛИ(C1>0,2;1;0)
заполнить
заполнить
F
=C1+D1
заполнить
=СЧЁТЕСЛИ(F1:F97;">0"
)
=F98/A97
Задания для самостоятельного выполнения:
1. На карточках написали цифры 1,2,3, после чего карточки перевернули и перемешали.
Затем последовательно открыли карточки и положили в ряд. Какова вероятность того,
что получится трехзначное число, большее 300?
8 2. Для экзамена подготовили билеты с номерами от 1 до 25. Какова вероятность того,
что взятый наугад учеником билет имеет:
а) однозначный номер;
б) двухзначный номер?
3. Многократные испытания показали, что для некоторого стрелка вероятность выбить при
стрельбе 10 очков равна 0,1, а вероятность выбить 9 очков равна 0,3. Чему равна для
этого стрелка вероятность выбить не менее 9 очков?
МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ПРОЦЕССОВ
Случай является неотъемлемой частью нашей жизни. Если случай помог нам в чемто, мы
говорим — повезло, если оказался не в нашу пользу, мы сокрушаемся — что за судьба!
Многие ученые посвятили свой талант изучению закономерностей случайных событий.
Знание законов случайностей может быть полезным в разных сферах: от определения
вероятности некоторого события, например выигрыша в лотерею, до использования
статистических закономерностей в научных опытах. Ниже будут смоделированы ситуации,
которые в теории вероятности получили название «случайных блужданий».
ЗАДАЧА. Бросание монеты
I ЭТАП. ПОСТАНОВКА ЗАДАЧИ
Описание задачи
У вас есть 10 монет. Вы хотите увеличить свой капитал в два раза, испытав заодно и свою
судьбу. Суть игры проста. Играя с маклером, вы делаете ставку и бросаете монету. Если
выпадет «орел», маклер выдает вам сумму вашей ставки, в противном случае — вы ему
отдаете эту сумму. Ставка может быть любой: от 1 до 10 монет. Удвоение начального
капитала или банкротство приводит к незамедлительному прекращению этого сеанса игры и
расчету. Игра может продолжиться по вашему усмотрению.
Цель моделирования
Моделируя возможные игровые ситуации, в частности, варьируя ставки в данной игре,
выяснить, какая тактика чаще приводит к результату (положительному или
отрицательному).
Предупредить потенциальных игроков о степени риска и невозможности обогащения за счет
азартных игр.
Формализация задачи
Уточняющий вопрос
Что моделируется?
Каков характер процесса?
Чем определяется выигрыш/проигрыш?
Какие объекты участвуют?
Чем характеризуется игрок?
Чем характеризуется монета?
Какую роль выполняет маклер?
Ответ
Процесс игры
Случайный
Монетой: орел/решка
Игрок, маклер и монета
Начальным капиталом Кнач
Ставкой СТ
Текущей наличностью Ктек
9 II ЭТАП. РАЗРАБОТКА МОДЕЛИ
Информационная модель
Здесь моделируется игра. Игра — это процесс, в котором участвуют три объекта: игрок,
маклер и случай, который в данной игре представлен монетой. Маклер определяет проигрыш
или выигрыш игрока, выплачивает выигрыш.
Математическая модель процесса складывается из следующих рассуждений.
Имитировать результат падения монеты можно с помощью функции СЛЧИС(). Эта функция
выдает случайные числа х в диапазоне 0 ≤ х ? 1. Поскольку вероятность выпадения той или
иной стороны «половина на половину», то, если СЛЧИС() ? 0,5, то результат «орел» (1), в
противном случае — «решка» (0).
Формула падения монеты при броске имеет следующий вид:
Бросок = ЕСЛИ(СЛЧИС() 0,5; 1; 0)
˂
.
Объект
Название
Игрок Начальным капиталом Кнач
Ставкой СТ
Текущей наличностью Ктек
Маклер Бросок
Выигрыш
Проигрыш
Монета Вероятность угадывания
результата
Положение «орел/решка»
Параметры
Значение
Исходные данные
Исходные данные
Расчетные данные
Расчетные данные
Расчетные данные
Расчетные данные
Константа
Расчетные данные
Действия
Выбор ставки
Вычисление наличности
Продолжение игры
Выплата проигранного
Прекращение игры по
банкротству
Подбрасывание монет
Определение результата
падения
Формула изменения наличности игрока:
Наличность = ЕСЛИ (Бросок=1; Наличность+Ставка; НаличностьСтавка)
Формула определения выигрыша:
Выигрыш = ЕСЛИ(Наличность ? 2*Нач.Капитал;""; "банк") здесь выдается сообщение
«банк» при увеличении наличности вдвое или больше, что является условием прекращения
игры.
Функция определения проигрыша:
Проигрыш = ЕСЛИ (Наличность ? 0; "банкрот") здесь выдается сообщение «банкрот» по
окончании наличности, что также является условием прекращения игры.
Компьютерная модель
Для моделирования выберем среду электронной таблицы. В этой среде информационная и
математическая модель объединяются в таблицу, которая содержит три области: исходные
данные; расчетные данные (результаты); статистика по экспериментам.
В ячейку А7 вводится формулу:=ЕСЛИ(СЛЧИС()<0,5;1;0)
В ячейку В7 вводится формулу:=ЕСЛИ(A7=1;$B$4+$D$4;$B$4$D$4)
В ячейку C7 вводится формулу:=ЕСЛИ(B7<2*$B$4;”“;”банк”)
В ячейку D7 вводится формулу:=ЕСЛИ(B7>0;”“;”банкрот”)
В ячейку B8 вводится формулу:=ЕСЛИ(A8=1;B7+$D$4;B7$D$4)
10 Ввести в таблицу исходные данные.
A
БРОСАНИЕ МОНЕТЫ
1
2
3 Исходные данные
4 Начальный капитал
5
6
7 Формула 1
8
… Статистика по экспериментам
…
…
Результаты
Бросок
B
C
D
10
ставка
Наличнос Выиграш
Формула Формула 3
1
Проигрыш
Формула 4
№ сеанса
Количество бросков до результата Результат
Ставка
III ЭТАП. КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ
План эксперимента
Тестирование
Проверить правильность ввода формул.
Эксперимент 1
Исследовать выпадение «орла» и «решки» в течение сеанса игры.
Эксперимент 2
Собрать статистические данные о выигрыше и проигрыше в течение нескольких сеансов игры
с различными значениями ставок и исследовать их.
Проведение исследования
Тестирование
Введите в таблицу контрольные исходные данные и расчетные формулы в первую строку.
Результаты сравнить с приведенными в таблице.
IV ЭТАП. АНАЛИЗ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ
На основе области «Статистика» сделать выводы по поводу ставки в одну монету; других
ставок. Выбрать и обосновать собственную тактику игры (ставку).
Задания для самостоятельного выполнения:
Задача 1. Игра в рулетку
Казино процветает изза того, что у владельца всегда есть некоторое преимущество перед
игроком. Например, в одном из вариантов рулетки колесо имеет 38 лунок: 36
пронумерованы и разбиты на черный и красный цвет, а две оставшиеся имеют № 0 и 00 и
выкрашены зеленым. Игрок, ставя на красное или черное, имеет на выигрыш 18 шансов из 38,
а на то, что он проиграет, 20 шансов из 38. Пусть у вас имеется некоторый
начальный капитал, который вы хотите удвоить. Постройте компьютерную модель ситуации.
Задача 2. Игра в кости
Два игрока бросают по две игровые кости. Сумма очков, выпавших на двух игровых костях,
накапливается. Игра прекращается, когда один из игроков достигает суммы 101.
11 Игра повторяется до трех побед.
Задача 3. Лотерея «Спортлото»
Смоделируйте серию игр в 5 из 36. Изберите следующую тактику игры:
зачеркивать в билетах одну и ту же комбинацию из «счастливых билетов»
бросать кубик и из количества точек на верхней грани составлять набор чисел.
Задача 4. Очередь
За два часа обеденного перерыва 40 человек встали в очередь за билетами.
Кассирша обслуживает одного клиента в среднем одну минуту. Каждый клиент «мучает»
вопросами кассиршу до пяти минут(случайным образом). Построить модель ситуации и
исследовать ее. Ответьте на вопросы:
Хватит ли на обслуживание всех клиентов 2 часов?
Если не хватит, то, сколько будет обслужено?
Как влияет время расспросов на время обслуживания очереди?
ИГРАЛЬНАЯ КОСТЬ. ИМИТАЦИЯ БРОСАНИЯ ИГРАЛЬНОЙ КОСТИ (VBA)
Microsoft Excel имеет встроенный язык программирования Visual Basic for Аpplications
(VBA). Этот язык позволяет создавать приложения, выполняемые в среде Microsoft Office.
Редактор Visual Basic for Application позволяет существенно расширить возможности Excel.
С помощью VBA можно легко и быстро создавать различные приложения, даже не являясь
специалистом в области программирования. Редактор Visual Basic for Application имеет
графическую инструментальную среду, позволяющую создавать экранные формы и
управляющие элементы. С его помощью можно создавать свои собственные функции для
Excel, вызываемые мастером функций, разрабатывать макросы, создавать собственные меню
и многое другое.
ЗАДАЧА. Снова бросаем игральный кубик
Разработайте программу, которая будет имитировать многократное бросание одной
игральной кости, а также определять и показывать количество выпадений на кубике того или
иного числа. Программа должна делать ставки, позволять начинать бросание кости,
останавливать его в любой момент и переустанавливать результаты подсчета.
Игральную кость можно рассматривать как генератор случайных чисел в целочисленном
интервале [1..N] с одинаковой вероятностью выпадения всех чисел интервала.
Создание интерфейса
Перед началом работы над программой в
VBA, вам нужно воспользоваться
графическим редактором Paint или другим,
чтобы создать изображения игральной кости.
Вам понадобятся шесть отдельных bmp
файлов, каждый из которых будет
картинкой одной из граней кубика (кости).
12 Запустите VBA, начните новый проект и разместите на форме элемент управления Image,
18 надписей и четыре кнопки.
Назначение каждого элемента управления: (см. рисунок 1)
элемент управления Image — для графического представления игральной кости (одной ее
Рисунок 1.
грани);
надписи — для показа количества выпадений того или иного числа и для подписей к ним;
кнопки:
Выход — для завершения программы по щелчку на ней;
Начать — чтобы начать бросание по щелчку на кнопке;
Остановить — чтобы остановить бросание по щелчку на ней;
Сброс — чтобы обнулить счет по щелчку на кнопке.
В этой программе присутствует повторяющийся процесс (бросание кости и вывод
результата) через регулярные интервалы времени функция timer.
Код:
Private Sub atimer()
Dim Kost, a, d, stavka As Integer
stavka = CDbl(TextBox2.Text)
PauseTime = 1
Start = timer
Do While timer < Start + PauseTime
DoEvents
Randomize
kost = Int(Rnd * 6) + 1
Select Case kost
Case 1
Image1.Picture = LoadPicture("C:\Users\Desktop\kosti\1.bmp")
Label1.Caption = Label1.Caption + 1
Case 2
Image1.Picture = LoadPicture("C:\Users\Desktop\kosti\2.bmp")
Label2.Caption = Label2.Caption + 1
Case 3
Image1.Picture = LoadPicture("C:\Users\Desktop\kosti\3.bmp")
Label3.Caption = Label3.Caption + 1
Label3.Caption = Label3.Caption + 1
Case 4
Image1.Picture =
LoadPicture("C:\Users\Desktop\kosti\4.bmp")
Label4.Caption = Label4.Caption + 1
Case 5
13 Рисунок 2.
Image1.Picture = LoadPicture("C:\Users\Desktop\kosti\5.bmp")
Label5.Caption = Label2.Caption + 1
Case 6
Image1.Picture = LoadPicture("C:\Users\Desktop\kosti\6.bmp")
Label6.Caption = Label6.Caption + 1
End Select
Loop
If stavka = kost Then
Label15.Caption = Label15.Caption + 3
Else
Label15.Caption = Label15.Caption 2
End If
End Sub
Private Sub CommandButton1_Click()
stavka = CDbl(TextBox2.Text)
Label18.Visible = False
If stavka < 6 And stavka > 0 Then
atimer
Else
Label18.Visible = True
Label18.Caption = "Вы не сделали ставку !!!"
End If
End Sub
Private Sub CommandButton2_Click()
PauseTime = 0
End Sub
Private Sub CommandButton3_Click()
Label1.Caption = "0"
Label2.Caption = "0"
Label3.Caption = "0"
Label4.Caption = "0"
Label5.Caption = "0"
Label6.Caption = "0"
Label15.Caption = "0"
TextBox2.Text = " "
End Sub
Private Sub CommandButton4_Click()
UserForm1.Hide
End Sub
Заключение:
14 Тема работы со случайными числами является очень актуальной, так как случайные
числанаходят своё применение в приложениях различных типов и имеет большое
практическое значение. Не одна задача современного программирования (в криптографии)
не обходится без решения вопроса генерирования случайных данных.
Задания для самостоятельного выполнения:
Задача 1. Эксперимент состоит в подсчете числа бросаний двух костей до выпадения двух
шестерок. Требуется найти среднее число бросаний, необходимых для получения двух
шестерок. (Проводится N экспериментов).
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ В ЭКОНОМИКЕ
Задача 1. Пусть известно, что в штате больницы состоит 6 санитарок, 8 медсестер, 10
врачей, 3 заведующих отделениями, главный врач, заведующий аптекой, заведующий
хозяйством и заведующий больницей. Общий месячный фонд зарплаты составляет 10 000
у. е. Необходимо определить, какими должны быть оклады сотрудников больницы.
Построим модель решения этой задачи. За основу возьмем оклад санитарки, а остальные
оклады будем вычислять, исходя из него: во сколькото раз или на сколькото больше.
Говоря математическим языком, каждый оклад является линейной функцией от оклада
санитарки: , где С – оклад санитарки; Аi и Bi –
коэффициенты, которые для
каждой должности определяются следующим образом:
BCA
i
i
5,1А2 ;
В2 );
0
0
3А3 ;
– медсестра получает в 1,5 раза больше санитарки (
В3 );
– врач – в 3 раза больше санитарки (
3А4 ;
– заведующий отделением – на 30 у. е. больше, чем врач (
В5 );
2А5 ;
0
– заведующий аптекой – в 2 раза больше санитарки (
5,1А6 ;
– заведующий хозяйством – на 40 у.е. больше медсестры (
В7 );
0
– главный врач – в 4 раза больше санитарки (
– заведующий больницей – на 20 у.е. больше главного врача (
А7 ;
4
В4 );
30
В6 );
40
4А8 ;
В8 ).
20
2
2
1
1
8
BCAN...
8
BCANCAN
Зная количество человек на каждой должности, нашу модель можно записать как уравнение:
где N1 – число санитарок, N2 –
2
число медсестер и т. д.
В этом уравнении нам известны А1…А8, В1…В8 и N1…N8, а С неизвестно.
Анализ уравнения показывает, что задача составления расписания свелась к решению
линейного уравнения относительно С. Решим его.
– Заполните таблицу в соответствии с образцом:
10000
8
Коэф.
Коэф.
A
Должность
1
2 Санитарка
3 Медсестра
4 Врач
5 Зав.отделением
6 Зав. аптекой
B
А
1
1,5
3
3
2
C
В
0
0
0
30
0
F
Суммарная
зарплата
=D2*E2
G
Зарплата
санитарки
150
D
Зарплата
сотрудника
=B2*$G$2+C2
15
E
Колво
сотрудников
6
8
10
3
1 7 Завхоз
8 Главврач
9 Зав. больницей
10 Итого
1,5
4
4
40
0
20
1
1
1
=СУММ(F2:F9)
В ячейке F10 вычислите суммарный фонд заработной платы больницы. Рабочий лист
электронной таблицы будет выглядеть, как показано ниже:
B
А
1
1,5
3
3
2
1,5
4
4
C
В
0
0
0
30
0
40
0
20
A
1
Должность Коэф.
Коэф.
D
Зарплата
сотрудника
E
Колво
сотрудников
F
Суммарная
зарплата
G
Зарплата
санитарки
150
6
8
10
3
1
1
1
1
150
225
450
480
300
265
600
620
900
1800
4500
1440
300
265
600
620
10425
2 Санитарка
3 Медсестра
4 Врач
5 Зав.отделение
6 Зав. аптекой
7 Завхоз
8 Главврач
9 Зав.
10
Как видите, взяв оклад санитарки за 150, мы превысили месячный фонд зарплаты.
Определите оклад санитарки так, чтобы расчетный фонд был равен заданному.
Для этого:
– активизируйте команду Подбор параметра;
– в поле «Установить в ячейке» появившегося окна введите ссылку на ячейку F10,
содержащую формулу;
– в поле «Значение» наберите искомый результат 10000.
– В поле «Изменяя значение ячейки» введите ссылку на изменяемую ячейку G2 и щелкните
кнопкой ОК. Таблица будет выглядеть следующим образом:
Коэф.
Коэф.
A
Должность
1
2 Санитарка
3 Медсестра
4 Врач
5 Зав.
6 Зав. аптекой
7 Завхоз
Главврач
Зав. больницей
Итого
B
А
1
1,5
3
3
2
1,5
4
4
C
В
0
0
0
30
0
40
0
20
D
Зарплата
сотрудника
143,80
215,69
431,39
461,39
287,59
255,69
575,18
595,18
Колво
сотрудников
E
6
8
10
3
1
1
1
1
G
Зарплата
санитарки
143,79
F
Суммарная
зарплата
862,77
1 725,55
4 313,87
1 384,16
287,59
255,69
575,18
595,18
10 000,00
Задача об использовании сырья
Что такое линейное программирование
Многие экономические процессы описываются математическими моделями, в которых
требуется найти такие значения переменных параметров, при которых достигается
16 максимальное или минимальное значение линейной функции от этих переменных, при
различных ограничениях, задаваемых линейными управлениями или неравенствами. Искомые
переменные, называются контролируемыми факторами, функция – целевой функцией.
Задачи такого типа называются задачами линейного программирования.
Модели линейного программирования в экономике и управлении используются как
инструмент оптимизации при планировании производства, составление планов перевозов и
т.д.
Постановка задачи
Предприятие выпускает курс n видов продукции, которые обозначим: P1, P2,…, Pn. Для этого
используется m вида сырья: S1, S2, … , Sm, запасы которого равны соответственно b1, b2, … ,
bm. Известно, что расход iго вида сырья для производства единицы jго вида продукции Pj
равен aij. От реализации единицы jго вида продукции Pj предприятие получает доход,
равный Cj. Требуется составить такой план производства каждого вида продукции, чтобы
при имеющихся запасах сырья обеспечить предприятию максимальный суммарный доход.
Математическая модель
Построение математической модели осуществляется в три этапа:
1. Определение переменных, для которых будет составляться математическая модель.
2. Формирование целевой функции.
3. Формирование системы ограничений.
Составим план производства для ателье, занимающегося пошивом туристического
снаряжения – палаток. Для пошива используется три вида материалов (сырья):
водоотталкивающая ткань, утеплитель, москитная сетка. Представим данные с двумя видами
продукции (палатки двух моделей) и тремя видами материалов (водоотталкивающая ткань,
утеплитель, москитная сетка) в виде таблицы.
Материалы(Si)
Запасы материалов
(bi), м
Расход материалов на продукцию Pj, м
Палатка (модель 1)
Палатка (модель 2)
Водооттал. ткань
Утеплитель
Москитная сетка
Удельный доход от реализации (Сj)
105
68
66
7
3
1
5
4
5
6
6
Ячейки, выделенные фоном, содержат значения расхода каждого вида сырья (материалов) на
производство единицы каждого вида продукции. Это и есть матрица aij. Такой расход сырья
называется удельным. Обозначим план пошива палаток модели 1 через X (шт.), а план
пошива палат моделей палаток модели 2 через Y (шт.). При таком плане расход материалов,
например водоотталкивающей ткани, составит 7 X + 4 Y метров. Поскольку расход
материала не может превышать имеющиеся запасы, получаем ограничения по расходу
водоотталкивающей ткани 7 X + 4 Y 105. Аналогические рассуждения приводят к
ограничениям и по другим видам материалов. Кроме того, значения X и Y не могут быть
отрицательными. Сформулированные условия запишем в виде системы неравенств, которым
должны удовлетворять неизвестные X и Y:
17 Доход от реализации одной палатки модели 1 равен 5 единицам стоимости (например, 5 тыс.
руб.), а доход от реализации палатки модели 2 6 единицам стоимости тогда суммарный
доход предприятия от реализации всей произведенной продукции определится формулой: Z
=5 X + 6 Y. Следовательно, Z есть функция от X и Y. Z(X, Y) является целевой функцией,
поскольку целью производства является получение максимального дохода.
Таким образом, математическая формулировка задачи звучит так: требуется найти такое
решение системы линейных неравенств (1)(5),при котором целевая функция Z(X, Y)
принимает максимальное значение.
Решение с помощью электронных таблиц
Подготовим данные, как это показано в таб.1. В ячейках В2 и В3 будет получено решение,
т.е. найдены объемы производства каждого вида продукции, при которых суммарных доход,
вычисляемый в ячейках В17, принимает максимальное значение. Диапазон ячеек В13:В15
содержит формулы, с помощью которых задаются левые части неравенств (1)(2),
ограничивающих расход сырья. Диапазон ячеек D13:D15 содержит запасы материалов.
A
B
C
Таблица 1.
D
Запасы материалов
Палатки (модель 1)
Палатки (модель 2)
Удельный доход от реализации
Объем производства
Палатки (модель 1)
Палатки (модель 2)
Материалы
Водооттал. ткань
Утеплитель
Москитная сетка
1
2
3
4
5
6
7
8
9
10
11
12 Ограничения
13
14
15
16
17 Суммарный доход
Установим курсор в ячейку В17, в которой должно быть вычислено значение целевой
функции, и выполним команду Поиск решения.
В открывшемся окне необходимо
произвести установки, показанные на рис. 1.
Для этого выполняются следующие действия:
В поле Установить целевую ячейку вводится
адрес ячейки В17.
Для поля Равной выбирается параметр
=C7*$B$2+D7*$B$3
=C8*$B$2+D8*$B$3
=C9*$B$2+D9*$B$3
=C10*B2+D10*B3
4
5
6
6
105
68
66
Рисунок 1.
105
68
66
7
3
1
5
максимальному значению.
18 В поле Изменяя ячейки вводится диапазон ячеек с неизвестными В2:В3.
Щелчком на кнопке Добавить вызывается окно Добавить ограничение.
Для ввода первого ограничения в поле Ссылка на ячейку указывается адрес ячейки В13,
а в поле Ограничение – адрес ячейки D13. Между ними выбирается знак отношения и
нажимается кнопка Добавить. Аналогично добавляются два оставшихся ограничения.
Щелчком на кнопке параметры вызывается окно Параметры поиска решения (рис. 2), в
котором необходимо отметить, что ищутся неотрицательные значения X и Y и
используется линейная модель. Это означает то, что целевая функция линейно зависит
от переменных X и Y.
Неотрицательные решения системы линейных неравенств, при которых целевая функция
(суммарный доход) принимает максимальное значение, табличный процессор Microsoft Excel
находит приближенно, используя итерационный метод поиска, который называется
методом Ньютона. Поэтому в качестве параметров указывается предельное число
итераций и относительная погрешность. С такого рода параметрами мы встречались при
решении задачи теплопроводности методов итераций.
После того как все установки сделаны, следует
нажать кнопку Выполнить.
В результате в ячейках В2 и В3 будет получено
решение – объем производства палаток первой
второй моделей (таб.2), а в ячейке В17 –
максимальный доход,
полученный от
реализации такого объема продукции. Как
исследовало ожидать, полученные значения
совпадают с результатами графического
метода решения задачи: X = 11, Y = 7, Z = 97.
Рисунок 2.
и
Таблица 2. Результаты решение задачи
C
D
B
11
7
Запасы материалов
Палатки (модель 1)
Палатки (модель 2)
7
3
1
5
4
5
6
6
105
68
66
A
Объем производства
Палатки (модель 1)
Палатки (модель 2)
Материалы
Водооттал. ткань
Утеплитель
Москитная сетка
1
2
3
4
5
6
7
8
9
10
11
12 Ограничения
13
14
15
16
17
105
68
66
Удельный доход от реализации
105
68
53
97
Суммарный доход
Задания для самостоятельного выполнения:
Задача 1.
19 Предположим, что мы решили производить несколько видов конфет. Назовем их условно
«А», «В», «С». Известно, что реализация 10 килограммов конфет «А» дает прибыль 9 у. е.,
«В» – 10 у. е., «С» – 16 у. е.
Конфеты можно производить в любых количествах, но запасы сырья ограничены.
Необходимо определить, каких конфет и сколько десятков килограммов необходимо
произвести, чтобы общая прибыль от реализации была максимальной.
Нормы расхода сырья на производство 10 кг конфет каждого вида приведены ниже.
Нормы расхода сырья
А
18
6
5
9
В
15
4
3
10
С
12
8
3
16
Запас сырья
360
192
180
Сырье
Какао
Сахар
Наполнитель
Прибыль
Задача 2.
Ваше предприятие выпускает изделия 1, изделия 2, изделия 3, используя общий склад
комплектующих. Каждое изделие состоит из деталей, имеющихся на складе. В связи с
ограниченностью запаса необходимо найти оптимальное соотношение объемов выпуска
изделий. Прибыль, получаемая от каждого изделия, равна соответственно 47,32; 31,55; 22,08.
Число деталей, идущих на каждое изделие, указано в таблице.
Наличие на складе
Изделие 1
Изделие 2
Изделие 3
Деталь 1
Деталь 2
Деталь 3
Деталь 4
Деталь 5
450
250
800
450
600
1
1
2
1
2
1
0
2
1
1
0
0
1
0
1
Задача 3.
В ресторане готовятся фирменные блюда трех видов (блюдо А, блюдо В и блюдо С) с
использованием при приготовлении ингредиентов трех видов (ингредиент 1, ингредиент 2 и
ингредиент 3). Расход ингредиентов в граммах на блюдо задается следующей таблицей:
Вид ингредиента
Ингредиент 1
Ингредиент 2
Ингредиент 3
Блюдо А
20
20
20
Блюдо В
50
0
10
Блюдо C
10
40
10
Стоимость приготовления блюд одинакова (100 руб.).
Ежедневно в ресторан поступает 5 кг ингредиента 1 и по 4 кг ингредиентов видов 2 и 3.
Каково оптимальное соотношение дневного производства блюд различного вида, если
производственные мощности ресторана позволяют использовать весь запас поступивших
продуктов?
Задача 4.
Пошивочная мастерская планирует выпуск двух видов костюмов: мужских и женских. На
женский костюм требуется 1 м шерсти, 2 м лавсана и 1 человекодень трудозатрат. На
мужской костюм — 3,5 м шерсти, 0,5 м лавсана и 1 человекодень трудозатрат. Всего
имеется 350 м шерсти и 240 м лавсана, 150 человекодней трудозатрат. Предусматривается
20 выпуск не менее 110 костюмов, причем, необходимо обеспечить прибыль не менее 1400 руб.
Определите оптимальное количество костюмов каждого вида, если прибыль от реализации
женского костюма составляет 10 руб., а мужского — 20 руб.
ПОСТРОЕНИЕ И ИССЛЕДОВАНИЕ ОПТИМИЗАЦИОННОЙ МОДЕЛИ НА VBA
Задача 1.
В ходе производственного процесса из листов материала получают заготовки деталей двух
типов А и В тремя различными способами, при этом количество получаемых заготовок при
каждом методе различается.
Тип заготовки
А
В
1й
10
3
Способы раскроя
2й
3
6
3й
8
4
Необходимо выбрать оптимальное сочетание способов раскроя, для того чтобы получить 500
заготовок типа А и 300 заготовок типа В.
Формальная модель:
Параметрами, значения которых требуется определить, являются количества листов
материала, которые будут раскроены различными способами:
X1 количество листов, раскроенное способом 1;
X2 количество листов, раскроенное способом 2;
X3 количество листов, раскроенное способом 3.
Определяются значениями требуемых количеств заготовок типа А и В:
10X1+3X2+8X3=500
Кроме того, количества листов не могут быть отрицательными: X10, X20, X30 и
дробными X1, X2, X3 – целые.
3X1+6X2+4X3=300
Ограничения:
и
Создание интерфейса:
Запустите V BA, начните новый проект и
разместите на форме 8 надписей; одну
кнопку.
Private Sub CommandButton1_Click()
Dim x1, x2, x3, F As Integer
F = 300
For x1 = 0 To 100
For x2 = 0 To 100
21
Рисунок 1. For x3 = 0 To 100
If (10 * x1 + 3 * x2 + 8 * x3 = 500) And (3 * x1 + 6 * x2 + 4 * x3 = 300) Then
If x1 + x2 + x3 < F Then
F = x1 + x2 + x3
Label1.Caption = x1
Label2.Caption = x2
Label3.Caption = x3
Label4.Caption = F
End If
End If
Next x3
Next x2
Next x1
End Sub
Задания для самостоятельного выполнения:
Задача 1.
Фабрика производит два вида красок: первый – для наружных, а второй – для внутренних
работ. Для производства красок используется два ингредиента: А и В. Максимально
возможные суточные запасы этих ингредиентов составляют 6 и 8 т соответственно.
Известные расходы А и В на 1 т красок:
Ингредиенты
А
В
Расход ингредиентов, т.ингр./т.краски
Краска 1го вида
Краска 2го вида
Запас, т.ингр./сут
6
8
Изучение рынка сбыта показало, что суточный спрос на краску 2го вида никогда не
превышает спроса на краску 1го вида более, чем на 1 т. Кроме того, спрос на краску 2го
вида не превышает 2 т /сут. Оптовые цены 1 т красок равны: 3 т. руб. для краски 1го вида и
2 т. руб. для краски 2го вида. Найти какое количество краски каждого вида необходимо
производить, чтобы доход от реализации продукции был максимальным.
Задача 2.
Фабрика производит два вида красок: первый – для наружных, а второй – для внутренних
работ. Для производства красок используется два ингредиента: А и В. Максимально
возможные суточные запасы этих ингредиентов составляют 6 и 8 т соответственно.
Известные расходы А и В на 1 т красок:
Ингредиенты
А
В
Расход ингредиентов, т.ингр./т.краски
Краска 1го вида
Краска 2го вида
Запас, т.ингр./сут
6
8
Изучение рынка сбыта показало, что суточный спрос на краску 2го вида никогда не
превышает спроса на краску 1го вида более чем на 1 т. Кроме того, спрос на краску 2го
вида не превышает 2 т /сут. Оптовые цены 1 т красок равны: 3 т. руб. для краски 1го вида и
22
1
2
1
2
2
1
2
1 2 т. руб. для краски 2го вида. Найти какое количество краски каждого вида необходимо
производить, чтобы доход от реализации продукции был максимальным.
Рассмотрим еще одну типовую задачу линейного программирования.
ТРАНСПОРТНАЯ ЗАДАЧА
Постановка задачи
Транспортной задачей называют составления плана перевозок от поставщиков к
потребителям с помощью некоторых транспортных средств. Составленный план должен
обеспечивать выполнение таких условий, как:
Полное удовлетворение спроса потребителей;
Вывоз всей продукции от поставщика;
Минимизация транспортных затрат.
Математическая модель
Рассмотрим простейший вариант транспортной задачи. В т пунктах отправления (складах)
А1, А2, …, Ат находится однородный груз в количестве а1, а2, …, ат единиц соответственно.
Потребность в этом грузе в п пунктах назначения (магазинах) В1, В2, …, Вп составляет b1, b2,
…, bn соответственно. Будем считать, что сумма запасов на складах равна суммарным
потребностям в магазинах, т.е.
=
. Такая модель называется замкнутой.
Обозначим через Сij удельные затраты, т.е. затраты на перевозку единицы груза из iго
пункта в jй пункт назначения, а через Xij – неизвестный объем груза, который надор
перевезти из j го пункта отправления в jй пункт назначения.
Перевозку груза надо организовать таким образом, чтобы суммарные затраты на перевозки
были минимальными. Суммарные затраты на перевозки Z
определяются следующим
образом: необходимо просуммировать все объемы перевозок груза, умноженные на
23 соответствующие удельные затраты, т.е. Z=
. Суммарные затраты являются
целевой функцией.
Искомыми величинами являются объемы Xij перевозок груза, отправляемые каждым
поставщиком каждому потребителю при выполнении указанных условий.
Рассмотрим транспортную задачу на примере четырех складов и четырех магазинов.
Задача. Известно, что на складах имеется запас муки в количестве 45, 100, 20, 75 мешков. А
магазины имеют потребность в этом товаре в количестве 30, 80, 95, 35 мешков.
Склад № 1
Склад № 2
Склад № 3
Склад № 4
a1 = 45
a2 = 100
a3 = 20
a4 = 75
Магазин № 1 Магазин №2 Магазин №3 Магазин №4
b1 = 30
6
10
5
4
b2 = 80
3
4
9
2
b3 = 95
7
12
8
4
b4 = 35
10
10
11
8
Ячейки, выделенные фоном, содержат удельные стоимости перевозок Cij. Например,
стоимость перевозки единицы груза (мешка) со склада № 3 в магазин № 4 составляет 11
денежных единиц. Проверим замкнутость модели. Для этого просуммируем все запасы муки
на складах: 45 + 100 + 20 + 75 = 240. Найдем суммарные потребности магазинов в муке: 30 +
80 + 95 + 35 = 240. Таким образом, модель является замкнутой, т. е. потребность магазинов
в муке равна запасу на складах.
Весь груз со складов должен быть вывезен. Этот факт для iго склада можно отразить
следующим образом: Xi1 + Xi2 + Xi3 + Xi4 = ai. Весь груз в магазины должен быть ввезен. Для
jго магазина будет справедливо следующее: X1j + X2j + X3j + X4j = bj.
Таким образом, удовлетворению спроса магазинов отвечает выполнение системы уравнений:
Вывоз всего груза со складов достигается при выполнении системы уравнений:
Получается общая система из 8 уравнений с 16 неизвестными, которая имеет, вообще говоря,
бесконечное множество решений. Среди этих решений интерес представляют
неотрицательные решения, при которых суммарные затраты по всем маршрутам будут
минимальны, т. е. целевая функция может быть представлена следующим образом:
Z = C11 X11 + … + C14X14 + C21 ∙ X 21 + … + С24 ∙ X24 + C31 · X31 +…+ C34 · X34 +C41 · X41 +…+ C44
· X44.
Рассмотрим решение задачи на примере табличного процессора Microsoft Excel.
Решение с помощью электронных таблиц
24
Таблица 1. Представим данные в виде, показанном в таблице 1.
A
B
C
D
E
F
G
bj
Сумм. затраты:
10
10
11
8
6
1
10
5
4
3
4
9
2
=сумм
=сумм
=сумм
=сумм
ai
45
100
20
75
Матрица перевозок
30
Магазин
80
Магазин 2
95
Магазин 3
35
Магазин 4
Магазин
1
=сумм
=сумм
=сумм
=сумм
Магазин 2
Магазин 3
Магазин 4
Склад № 1
Склад № 2
Склад № 3
Склад № 4
Склад № 1
Склад № 2
Склад № 3
Склад № 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Исходными данными являются удельные затраты на перевозки (диапазон ячеек C13:F16),
запасы муки на складах (диапазон ячеек A13:A16), потребности магазинов в муке ( диапазон
ячеек С11:F11).
Диапазон ячеек C3:F6 предназначен для получения искомого решенияобъемов перевозок
груза. Суммируя объемы перевозок в каждой строке, задаем левые части уравнений
ограничений, обеспечивающий вывоз всего груза с каждого склада. Суммированием объемов
перевозок по столбцам задаются левые части уравненийогранечений, удовлетворяющих
спрос каждого магазина в муке. Формула =СУММПРОИЗВ (С3:F6; C13:F16), вычисляющая
целевую функцию(суммарные затраты) Z, размещена в ячейке С19. Встроенная функция
СУММПРОИЗВ суммирует произведения, полученные построчным перемножением
содерживого ячеек из диапозонов С3:F6; C13:F16.
Например, СУММПРОИЗВ (А1:В2;А3:B4) =A1*A3+B1*B3+A2*A4+B2*B4.
=СУММПРОИЗВЕД(С3:F16;C13:F16)
7
12
8
4
Установите курсор в ячейку С19, в
которой должно быть выполнено
значение целевой функции.
Выполним команду Поиск решения.
В открышевшемся окне необходимо
провести установки, показанные на рис.1.
В результате будет найдено решение,
представленное в таблице 2.
A
B
C
1
Матрица перевозок
D
25
Рисунок 1.
Таблица 2.
E
F
G Магазин Магазин 2
Магазин 3 Магазин 4
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Склад № 1
Склад № 2
Склад № 3
Склад № 4
bj
Склад № 1
Склад № 2
Склад № 3
Склад № 4
ai
45
100
20
75
0
30
0
0
30
30
6
10
5
4
Сумм.затраты:
1455
10
70
0
0
80
80
3
4
9
2
45
100
20
75
35
0
20
40
95
95
7
12
8
4
0
0
0
35
35
35
10
10
11
8
Магазин Магазин 2 Магазин 3 Магазин 4
Искомые объемы перевозок представлены в ячейках C3:F6. Со склада №1 мука будет
отправлена в магазины №2 и 3 в объемах 10 и 35 мешков соответсвенно, со склада №2 – в
магазины №1 и 2 в объемах 30 и 70 мешков, со склада №3 в магазин №3 в объеме 20
мешков, со склада №4 в магазины №3 и 4 в объемах 40 и 35 мешков. Минимальные затраты
на перевозки составляют 1455 денежных единиц.
Задания для самостоятельного выполнения:
Задача 1. Найти оптимальный объем перевозок товаров с 3 заводов на 5 региональных
складов. То есть минимизировать затраты на перевозку грузов от заводовпроизводителей на
торговые склады.
Производительность каждого завода и затраты на перевозку от завода на каждый склад
приведены в таблице:
Заводы
Поставки
склад 1
склад 2
склад 3
Затраты
Завод 1
Завод 2
Завод 3
Технология работы:
– Заполните таблицу в соответствии с образцом:
310
260
280
10
6
3
8
5
4
6
4
5
склад 4
5
3
5
склад 5
4
6
9
A
1 Заводы
2 Завод 1
3 Завод 2
4 Завод 3
5
6 Итого
7
8 Потреб. складов
B
Всего
C
склад 1
D
E
F
склад 2 склад 3 склад 4 склад 5
Заполнить вниз
=СУММ (С2:G2)
1
1
1
Допустим, что от каждого завода на каждый склад перевозится ед.продукции
1
1
1
1
1
1
1
1
1
G
1
1
1
=СУММ (С2;С4)
180
26
80
200
160
220 8
5
4
6
4
5
5
3
5
4
6
9
10
6
3
310
260
280
Поставки
Затраты
=С2*С10+С3*С11+С4*С12
=СУММ (С14:G14)
9 Заводы
10 Завод 1
11 Завод 2
12 Завод 3
13
14 Перевозка
Количество перевезенных грузов не может превышать производственных возможностей
заводов. Количество доставляемых грузов не должно быть меньше потребностей складов. То
есть производство должно быть не меньше потребностей. Число перевозок не может быть
отрицательным.
Задача 2.
Авиакомпания по заказу армии должна перевезти на некотором участке 700 человек. В
распоряжении компании имеется два типа самолетов, которые можно использовать для
перевозки. Самолет первого типа перевозит 30 пассажиров и имеет экипаж 3 человека,
второго типа – 65 и 5 соответственно.
Эксплуатация 1 самолета первого типа обойдется 5000$, а второго 9000$. Сколько надо
использовать самолетов каждого типа, если для формирования экипажей имеется не более
60 человек.
МОДЕЛИРОВАНИЕ ЗАДАЧИ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ
Задача. Для снабжения населенных пунктов, расположенных в труднодоступной местности,
требуется разместить железнодорожную станцию и аэродром таким образом, чтобы
суммарное расстояние (и, соответственно, стоимость) воздушных перевозок от станции и от
аэродрома к населенным пунктам было оптимальным.
Координаты населенных пунктов приведены в табл. 1.
Номера населенных пунктов
Координаты населенных пунктов
Таблица 1
Х
2,0
10,0
1,0
4,0
9,0
У
8,0
9,0
2,0
9,0
5,0
1
2
3
4
5
Решение.
Из условия задачи следует, что надо найти оптимальное, с точки зрения экономии затрат на
воздушные перевозки, местоположение двух объектов: аэродрома и железнодорожной
станции. Такое возможно, если суммарная протяженность воздушных трасс между всеми
объектами будет минимальной. Как известно, кратчайшее расстояние между двумя точками
определяется отрезком, соединяющим эти точки.
Для решения задачи введем обозначения (табл. 2).
Объект
Координата Х
Координата У
Таблица 2
27 Населенный пункт №1
Населенный пункт №2
Населенный пункт №3
Населенный пункт №4
Населенный пункт №5
Аэродром
Железнодорожная станция
Х1
Х2
Х3
Х4
Х5
ХА
ХС
У1
У2
У3
У4
У5
УА
УС
Минимальное расстояние от железнодорожной станции до iго населенного пункта (i = 1, …,
5) через аэропорт можно определить следующим образом:
YXYXYXF
i
Y
A
Y
C
Y
C
Y
i
X
i
,
A
,
A
2
2
2
,
C
,
C
X
C
X
A
X
A
,
i
i
.
2
Решение с помощью электронных таблиц
В соответствующие ячейки Табл. 3 введите расчетные формулы.
№ Адрес ячейки
1
2
3
Е5
E6—E9
В16
Содержимое ячейки (формула)
=КОРЕНЬ(($B$12B5)^2+($C$12C5)^2)
Скопировать формулу из Е5 в E6—E9
=КОРЕНЬ((B14B12)^2+(C14C12)^2)+СУММ(Е5:Е9)
Таблица 3
Объект, населенный пункт
A
1
2
3
4
5 Населенный пункт №1
6 Населенный пункт №2
7 Населенный пункт №3
8 Населенный пункт №4
9 Населенный пункт №5
10
11 Оптимальные
Координата
y
x
8,0
2,0
10,0
9,0
2,0
1,0
9,0
4,0
9,0
5,0
Компьютерная модель
C
B
D
E
Моделирование расположения аэродрома и железнодорожной станции
Расположение населенных пунктов
Расстояние между
Аэродромом и населенными
пунктами
(аэродрома и железнодорожных станций)
координаты
объектов
12 Аэродром
13 Железнодорожная станция
14
15
16 Оптимальное суммарное
расстояние от
аэродрома до станции и всех населенных
Эксперимент № 1
28 Применяя надстройку Excel «Поиск решения» ( Поиск решения), назначьте в качестве
целевой ячейки В16 и установите переключатель Равной: равным минимальному
значению.
Укажите в качестве изменяемых ячеек ячейки $B$12:$C$12; $B$14:$C$14 (координаты
аэродрома и станции). Ограничения не вводите.
Щелкните по кнопке Выполнить. Фрагмент рабочего листа
A
E
Моделирование расположения аэродрома и железнодорожной станции
Расположение населенных пунктов
D
C
B
Расстояние между
Аэродромом и населенными
пунктами
2,5
5,7
6,6
1,5
5,2
Координата
y
x
2,0
8,0
9,0
10,0
2,0
1,0
4,0
9,0
5,0
9,0
7,6
7,6
4,5
4,5
21,5
Объект, населенный пункт
1
2
3
4
5 Населенный пункт №1
6 Населенный пункт №2
7 Населенный пункт №3
8 Населенный пункт №4
9 Населенный пункт №5
10
11 Оптимальные
(аэродрома и железнодорожных станций)
координаты
объектов
12 Аэродром
13
14 Железнодорожная станция
15
16 Оптимальное суммарное
расстояние от
аэродрома до станции и всех населенных
пунктов
Постройте диаграмму, выберите тип Точечная.
Проанализируйте результат.
На основе полученных данных моделирования можно сделать следующий вывод:
моделирование, проводимое в условиях, когда ограничения не заданы, приводит к
совпадению координат расположения железнодорожной станции и аэродрома. Это вытекает
и из простого анализа расчетной формулы. Минимальное расстояние будет, когда
координаты объектов совпадут. В реальных условиях такие объекты располагаются на
безопасном расстоянии друг от друга, кроме того, есть и некоторые технические критерии
обеспечения нормальных условий функционирования объектов.
Эксперимент № 2
Усложним задачу. Введем ограничения. Предположим, что в указанном районе есть озеро и
проходит железная дорога. Координаты ограничивающие местоположение аэродрома и
станции, приведены в табл. 4
Таблица 4
Объект
Озеро
Железная дорога
Координата Х
≥ 0 и ≤4
≥ 6
Координата У
≥ 3 и ≤ 6
=1
Установите курсор в ячейку
В16.
29
Рисунок 1. Введите условия ограничения на расположение аэродрома и станции. В частности,
примите во внимание, что аэродром не должен находиться внутри области, чьи
координаты указаны в табл. 4, а железнодорожная станция, наоборот, должна находиться
на железной дороге.
Произведите поиск решения.
Фрагмент рабочего листа (после ввода ограничений)
Моделирование расположения аэродрома и железнодорожной станции
B
C
D
E
Расположение населенных пунктов
Объект, населенный пункт
Расстояние между
Аэродромом и населенными
пунктами
3,8
5,8
5,9
3,2
3,9
A
1
2
3
4
5 Населенный пункт №1
6 Населенный пункт №2
7 Населенный пункт №3
8 Населенный пункт №4
9 Населенный пункт №5
10
11 Оптимальные
(аэродрома и железнодорожных станций)
координаты
объектов
12 Аэродром
13
14 Железнодорожная станция
15
16 Оптимальное суммарное
расстояние от
аэродрома до станции и всех населенных
пунктов
Координата
x
y
8,0
2,0
9,0
10,0
2,0
1,0
4,0
9,0
5,0
9,0
6,1
1,0
5,2
6,0
27,5
ЗАДАЧИ ТЕОРИИ РАСПИСАНИЙ
Постановка задач теории расписаний
В задачах теории расписаний рассматриваются комплексы работ, связанных общим объектом
или общим исполнителем, направленные на достижение определенной цели. Модели теории
расписаний позволяют найти наиболее дешевый или наиболее быстрый порядок выполнения
работ.
К задачам выбора самого дешевого порядка выполнения работ относится известная задача о
шлюзе. Шлюз может пропускать в порядке очереди только по одному судну. Если создается
очередь, то необходимо определить такой порядок прохождения судов через шлюз, при
котором будет минимален ущерб от простоя. В такой формулировке задача появилась еще в
XIX веке.
При выборе наиболее быстрого по времени варианта работ минимизируется отрезок времени
от начала работ до их окончания (достижения цели). Простейшей задачей такого типа
является задача и двух станках. На двух станках надо обработать N деталей. Каждая из
деталей обрабатывается сначала на одном станке, а затем – на втором. Время обработки
каждой детали на каждом станке известно. Задача состоит в том, что необходимо
определить такой порядок обработки деталей, при котором время выполнения всей работы
будет минимальным. Порядок обработки, минимизируется время T,
называется
оптимальным.
30 Задача о шлюзе
Математическая модель
Через шлюз последовательно должны пройти N судов. Известно время (в часах) шлюзования
каждого судна – ti и ущерб от 1 часа простоя судна Ui
денежных единиц. Здесь индекс
обозначает порядковый номер судна в очереди. Например, t1 – это время шлюзования 1го
судна, t2 – время шлюзования 2го судна, u2 – стоимость 1 часа простоя в ожидании своей
очереди 2го судна и т.д. Время простоя в очереди, например, 4го судна, если оно ждет,
пока через шлюз пройдут первые три, равно: t1 + t2 + t3 , а материальный ущерб от простоя 4
го судна равен: u4(t1 + t2 + t3).
Показатель экономической эффективности работы шлюза связан с суммарным ущербом от
простоя судов в ожидании своей очереди на шлюзовании. Например, если к шлюзу подошли
одновременно 4 судна и они пропускаются через шлюз в порядке их номеров, то суммарный
ущерб от простоя (S) вычисляется так: S = u2 • t1 + u3(t1 + t2) + u4(t1 + t2 + t3).
В общем случае, если в очереди находятся N судов, то суммарный ущерб от простоя
выражается формулой: S =
.
Задача состоит в том, чтобы определить такой порядок пропускания судов через шлюз, при
котором величина S будет минимальна.
Математический анализ этой задачи приводит к следующему ответу: минимум величины S
достигается в том случае, если суда пропускаются в порядке убывания величины
.
Этот принцип можно пояснить на следующем примере. Пусть к шлюзу подошли
одновременно два судна, время шлюзования которых одинаково (t1 = t2 ), но стоимость
простоя разная. Тогда в первую очередь надо пропустить то судно, у которого простой стоит
дороже. Если же у двух судов в очереди одинаковая стоимость простоя ( u1 = u2 ), то вперед
надо пропустить то судно, у которого меньше время шлюзования.
Критерию убывания величины
равносилен критерий возрастания величины
. При
вычислениях можно использовать как тот, так и другой критерий.
Решение в электронных таблицах
Рассмотрим пример для пяти судов, выстроившихся в очередь к шлюзу в порядке из
прибытия. Данные приведены в таблице 1.
1
45
5
№ судна
Время шлюзования
Ущерб от простоя
4
24
4
2
36
12
3
28
7
5
72
3
Вычислим общий ущерб от простоя по формуле:
S
= u2 • t1 + u3 •(t1 + t2) + u4 •(t1 + t2 + t3) + u5 •(t1 + t2 + t3 + t4).
Если шлюзование судов проводить в таком порядке, то ущерб от простоя не будет
минимальным. В нашем случае сумма ущерба составляет 1942 денежные единицы:
S=12•45+7•(45+36)+4•(45+36+28)+3•(45+36+28+24) =1942.
Найдем оптимальный порядок (расписание) шлюзования судов, обеспечивающий
минимальный ущерб от простоя.
31 Чтобы найти ущерб от простоя, в ячейках С6:F6 вычислим суммы вида :
, а в ячейку
B7 поместим формулу = СУММПРОИЗВ(C3:F3;C6:F6).
В соответствии с этой формулой вычисляется сумма произведений:
C3*C6+D3*D6+E3*E6+F3*F6 Таблица 2.
A
B
1
45
5
C
2
36
12
Время простоя
1 № судна
2
3 Ущерб от простоя
4
5
6
7
В 4ю строку таблицы впишем формулы, по которым для каждого судна сосчитается
=СУММПРОИЗВ(C3:F3;C6:F6)
=D6+D2
=C6+C2
=E6+E2
=B2
D
3
28
7
E
4
24
4
F
5
72
3
величина k=
. Затем отсортируем столбцы диапазона ячеек B1:F4 в порядке возрастания
значений k в 4й строке. Указание на то, что производится сортировка столбцов, задается с
помощью диалогового окна Параметры сортировки: столбцы диапозона; cортировать по –
строка 4, по возрастанию.
После проведения сортировки в диапазоне ячеек B1:F1 будет содержаться порядок
прохождения судов через шлюз со следующими номерами: № 2, 3, 4, 1, 5. При такой
очередности общий ущерб от простоя будет минимальным и составит 1347 денежных
единиц, в то время как при шлюзовании судов в порядке их прибытия общий ущерб
составлял
единицы.
Таблица 3.
денежных
1942
A
Время простоя
1 № судна
2
3 Ущерб от простоя
4
5
6
7 Общий ущерб
k
B
2
36
12
3
1347
C
3
28
7
4
36
D
4
24
4
6
64
E
1
45
5
9
88
F
5
72
3
24
133
ИССЛЕДОВАНИЕ МЕТОДОВ ВЫЧИСЛЕНИЯ ОПРЕДЕЛЁННЫХ ИНТЕГРАЛОВ
Задача 1. Вычислить по формуле прямоугольников
с шагом
. Заметим,
что этот интеграл легко может быть вычислен аналитически:
Чтобы найти приближённое значение интеграла ,
нужно:
32
разделить отрезок [a, b] на n равных частей точками х0= а, х1, х2,..., х n 1, х n = b;
вычислить значения подынтегральной
функции в точках
деления, т.е. нати у 0 = f (x0), у 1 =f (x1), у 2 = f (x2), у n 1 = f (xn1), у n = f (xn) ;
воспользоваться одной из приближённых формул.
Метод прямоугольников:
Простейшим приближённым методом является метод прямоугольников.
Геометрически идея способа вычисления определённого интеграла по формуле
прямоугольников состоит в том, что площадь
трапеции АВСD заменяется суммой площадей
прямоугольников, одна сторона которых равна, а
криволинейной
другая
Для нахождения определённого интеграла методом прямоугольников необходимо ввести
значения подынтегральной функции f(x) в рабочую таблицу Excel в диапазоне х
[0;3 ] с
заданным шагом х = 0,1.
A
Аргумент
0
0,1
0,2
B
Функция
=A2^2
= 0,1* Сумм (В3:В32)
1
2
3
4
5
6
7
8
9
…
32
33
В ячейке В33 появляется приближённое значение искомого интеграла (9,455) .
Сравнивая полученное приближённое значение с истинным значением интеграла (9), можно
видеть, что ошибка приближения метода прямоугольников в данном случае равна = 0,455
Метод трапеций:
Криволинейная трапеция заменяется на сумму нескольких трапеций и приближённое
значение определённого интеграла находится как сумма площадей трапеций.
определенного интеграла
Для нахождения
методом трапеций, как и в случае использования метода прмоугольников, значения
подынтегральной функции f(x) должны быть введены рабочую таблицу Excel в диапазоне х
[0;3] с заданным шагом х = 0,1.
A
1
Аргумен
B
Функция
33 2
3
4
5
6
7
8
9
…
32
33
0
0,1
0,2
=A2^2
=0,1*((B2+B32)/2+СУММ(B2:B31)
В ячейке В34 появляется приближённое значение искомого интеграла (9,005) .
Сравнивая полученное приближённое значение с истинным значением интеграла (9), можно
видеть, что ошибка приближения метода трапеций в данном случае равна = 0,005
Метод трапеций обычно даёт более точное значение интеграла, чем метод прямоугольников
Задача 2. Вычислить по формуле прямоугольников
с шагом
.
Решение с помощью VBA
Создание интерфейса:
Рисунок 1.
Код программы:
Private Sub CommandButton3_Click()
End
End Sub
Private Sub UserForm_Initialize()
With Me.ComboBox1
.AddItem "Метод_Трапеции"
.AddItem "Метод_Прямоугольников"
End With
End Sub
Рисунок 1.
Private Sub CommandButton2_Click()
Dim n As Single, a As Single, x As Single
Dim b As Single, s As Single, s1 As Single
Dim s2 As Single, z As Single, i As String
i = ComboBox1.Value
a = TextBox1.Text
b = TextBox2.Text
n = TextBox3.Text
Select Case i
Case Is = "Метод_Трапеции"
34 h = (b a) / n: s = 0
x = a + h
Do While x < b
s = s + fun(x)
x = x + h
Loop
s = (h / 2) * (fun(a) + 2 * s + fun(b))
TextBox4.Text = s
Case Is = "Метод_Прямоугольников"
h = (b a) / n: s1 = 0
x = a + h
Do While x < b
s1 = s1 + fun(x)
x = x + h
Loop
s1 = h * s1
TextBox5.Text = s1
End Select
End Sub
Function fun(x As Single) As Single
fun = x ^ 2
End Function
Рисунок 2.
Задания для самостоятельного выполнения:
Задача 1. Методом прямоугольников и методом трапеций найти следующие интегралы:
i.
ii.
при x=0,1;
при x=0,1.
Задание 2. Построить график и вычислить площадь криволинейной трапеции, ограниченной
линиями y=x2sin x, y=0, x=a, x=b (a
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Компьютерное моделирование в MS Excel
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.