ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования
С...
38 downloads
196 Views
759KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования
Северо-Западный государственный заочный технический университет
Кафедра информатики
ИНФОРМАТИКА Методические указания к выполнению курсовой работы
Факультеты все Направление подготовки дипломированных специалистов и отнесенные к ним специальности 650000 – техника и технологии Специальности все, кроме 210100, 220100. Направления подготовки бакалавров – 550000 – технические науки, кроме 550200, 552800.
Санкт-Петербург 2005
2
Утверждено редакционно-издательским советом университета УДК 881.3 Информатика: Методические указания к выполнению курсовой работы. СПб.:Изд-во СЗТУ, 2005, 68-с. Методические указания разработаны на основе рабочей программы “Информатика” в соответствии с требованиями государственных образовательных стандартов высшего профессионального образования для подготовки дипломированных специалистов и отнесенные к ним специальности 650000 – «Техника и технологии» и направлению подготовки бакалавра 550000 – «Технические науки». Указания содержат описание трех заданий курсовых работ. Разработаны на основе рабочей программы по информатике в соответствии с требованиями государственных образовательных стандартов для всех специальностей и направлений. Рассмотрено на заседании кафедры информатики и вычислительной математики 11.04.2005г., одобрено методической комиссией факультета информационных технологий и систем управления 18.04.2005 г. РЕЦЕНЗЕНТЫ:
Каф. информатики Северо-Западного государственного заочного технического университета (зав. кафедрой, канд. физ.-мат. н., доц. Г.Г.Ткаченко), М.И. Барабанова, канд. эконом. наук, кафедры информатики СПбГУЭФ, доц.
СОСТАВИТЕЛИ:
Л.В. Боброва, канд. техн. наук, доц., Е.А. Рыбакова, ст. преп., В.Н. Сибирев, канд. физ.-мат. наук, доц., Н.А. Смирнова, канд. техн. наук, В.С. Ходоровская, ст. преп.
© Северо-Западный государственный заочный технический университет, 2005
3
1. ОБЩИЕ УКАЗАНИЯ Целью курсовой работы является развитие у студентов навыков использования перспективных информационных технологий путем освоения программных продуктов Excel и Access, входящих в состав Microsoft offiсe и работающих в среде операционной систем Windows. Курсовая работа состоит из трех индивидуальных заданий и включает создание систем принятия решений, оптимизационную задачу и разработку базы данных. Первые две задачи реализуются в табличном процессоре Excel, третья – в пакете программ для управления базами данных Access. Отчет по курсовой работе выполняется в виде пояснительной записки, образец титульного листа для которой приведен в приложении 1. Описание каждого задания должно включать: 1. Краткий обзор теоретических основ решения задачи. 2. Описание основных этапов решения. 3. Распечатки таблиц Excel и базы данных Access. 4. Список литературы. Первые два пункта могут быть выполнены в рукописном варианте или в виде документа Word, третий пункт – только в виде распечатки компьютерной реализации задачи. Решение всех видов задач подробно рассмотрено в данных методических указаниях (разделы 2-4). Индивидуальные задания на курсовую работу выдаются преподавателем каждому студенту персонально.
Библиографический список 1. Л.В. Боброва, М.Ф. Быков, Е.А. Рыбакова, Н.А. Смирнова. Информатика. Письменные лекции, -СПб.:СЗТУ, 2004. 2. Информатика. Базовый курс. Учебник для ВУЗов./Под ред. С.В. Симановича. –СПб.:ПИТЕР,2004. 3. Информатика. Методические указания к выполнению лабораторных работ с табличным процессором Excel. -СПб.:СЗТУ, 2004. 4. Информатика. Методические указания к выполнению лабораторных работ с СУБД Access, -СПб.:СЗТУ, 2004.
2. Разработка систем принятия решений 2.1. Краткие сведения о системах принятия решения (экспертных системах) В настоящее время широкое распространение получили системы искусственного интеллекта, имитирующие на компьютере мышление человека при решении различных задач. Чтобы воспроизвести на компьютере процесс принятия решения человеком, нужно предварительно отобрать все факты, характеризующие исследуемую человеком область, и сформулировать правила решения в зависимости от совокупности фактов в момент принятия решения.
4
Система искусственного интеллекта, созданная для решения задачи в конкретной области, называется экспертной системой, или системой принятия решения. Существуют системы принятия решения в таких предметных областях, как медицина (для диагностики заболеваний), бизнес (для оценки целесообразности строительства предприятий, приобретения товаров и т.д.), обучение (для проверки знаний обучаемых) и многих других. Факты и правила для системы принятия решения должны быть разработаны экспертом соответствующей предметной области (отсюда название – экспертные системы). Они хранятся в компьютере в специально организованной области памяти, называемой базой знаний (БЗ). Информация, которая предъявляется системе для анализа сочетания фактов в данный момент, хранится в компьютере в специально организованной области памяти, называемой базой данных (БД).
2.2. Разработка системы принятия решения об аттестации знаний абитуриента Необходимо разработать систему принятия решения для аттестации знаний абитуриента на основе результатов тестирования. База знаний приведена в табл.1. Таблица 1 № пп
Атрибут
Весовой фактор атрибута
Умеет решать 1 Квадратные уравнения 20 2 Квадратные неравенства 40 3 Уравнения с модулями 50 4 Показательные уравнения 30 5 Показательные неравенства 50 6 Логарифмические уравнения 40 7 Логарифмические неравенства 60 8 Тригонометрические тождества 30 9 Тригонометрические уравнения 40 10 Геометрические задачи 60 Правила вывода: Если набранная сумма баллов меньше 280 - оценка "Неудовлетворительно". Если сумма баллов находится в пределах 280-340 - оценка "Удовлетворительно". При сумме баллов 341 - 400 оценка "Хорошо". Если сумма баллов больше 400 - "Отлично". 2.2.1. Общая схема решения Приведенная в табл. 1 база знаний, разумеется, является лишь фрагментом базы знаний реальной системы аттестации абитуриента. Для получения
5
корректной оценки знаний абитуриента следует провести опрос по всем основным разделам школьной математики. Поэтому количество оцениваемых атрибутов реальной системы составляет несколько десятков. Однако для получения представления о функционировании реальной системы принятия решения вполне достаточно учитывать лишь часть атрибутов. Функционирование такой системы абсолютно аналогично работе реальной контролирующей системы. Разработка системы принятия решений включает три основных этапа: 1. Создание базы данных для тестовой проверки разработанной системы принятия решения. 2. Формализация правил принятия решений на основе имеющихся правил вывода. Обычно схему решения записывают в виде специального графа – дерева решений. 3. Компьютерная реализация системы. Система принятия решения может быть реализована с использованием языка программирования высокого уровня или в табличном процессоре. В рамках курса «Информатика» студент должен научиться эффективно использовать пакет программ Microsoft office, поэтому будем рассматривать реализацию системы принятия решения в табличном процессоре Excel. 2.2.2. Разработка базы данных для системы принятия решения База данных создается на основе базы знаний табл.1, в которую добавляется столбец ответов (табл.2). Утверждения табл.1 преобразуются в вопросы. Очевидно, что для каждого абитуриента будет свой набор ответов и соответственно своя база данных. Мы создаем один из возможных вариантов заполнения БД, который будет служить тестом для проверки функционирования разработанной системы. Если на заданный вопрос дается положительный ответ («Да»), т.е. абитуриент продемонстрировал достаточные знания по этой теме, весовой фактор атрибута сохраняется. Если ответ отрицательный («Нет») весовой фактор обнуляется. Просуммировав весовые факторы ответов в нашей базе данных (табл.2), найдем суммарный весовой фактор S=310. Поскольку эта сумма баллов находится в диапазоне 280-340, согласно правилам вывода абитуриент должен получить оценку «Удовлетворительно». Заполнив базу данных ответами, мы будем те же самые ответы вводить в систему принятия решения, реализуемую в электронной таблице Excel. В случае правильного функционирования системы принятия решения абитуриент должен получить ту же самую оценку «Удовлетворительно». Это значит, что система прошла тестирование, можно вводить в нее данные о результатах других абитуриентов и доверять поставленным оценкам. Если же оценка компьютерной системы не совпадает с оценкой, которую мы получили по итогам табл. 2, это свидетельствует о наличии ошибок в ее функционировании. Следует проверить все основные формулы таблицы.
6
№ пп 1 2 3 4 5 6 7 8 9 10
Вопрос Умеет решать? Квадратные уравнения Квадратные неравенства Уравнения с модулями Показательные уравнения Показательные неравенства Логарифмические уравнения Логарифмические неравенства Тригонометрические тождества Тригонометрические уравнения Геометрические задачи
Весовой фактор атрибута
Ответ
20 40 50 30 50 40 60 30 40 60
Да Да Нет Да Да Да Нет Да Да Да
Суммарный весовой фактор
Таблица 2 Весовой фактор ответа 20 40 0 30 50 40 0 30 40 60 310
2.2.3. Построение дерева принятия решений Дерево (граф) принятия решений строится на основе правил вывода. Граф принятия решений называется деревом, потому что имеет свои вершины и ветви. Вершины служат для проверки условий (обозначаются окружностями или эллипсами), а также для вывода сообщений о фактах и результатах решения (обозначаются прямоугольниками). Ветви соединяются вершинами и указывают направления пути решения. Обычное направление сверху вниз. Составим дерево решения для нашего примера (рис. 1). Пусть база данных заполнена ответами и рассчитана сумма накопленных баллов S. Обратите внимание! Мы считаем, что эта сумма не определена (точнее является изменяющейся величиной), ведь табл.2 – это только один из множества возможных вариантов. Первый блок проверяет выполнение условие S<280. При проверке любого условия возможны два исхода: «Условие выполнено» (ветка «ДА») и «Условие не выполнено» (ветка «Нет»). Если условие S<280 выполняется, абитуриент получает оценку «Неудовлетворительно» (первый блок принятия решения). Если условие S<280 не выполняется, значит, набранная абитуриентом сумма баллов больше 280. В этом случае нужно установить, в каком диапазоне находится сумма баллов. По ветке «Нет» от первого блока проверка условий приходим на второй блок проверки, где записано условие S<340. При его выполнении очевидно, что сумма баллов находится в диапазоне 280-340, т.е. абитуриент получает оценку «Удовлетворительно». По ветке «Да» идем к вершине «Удовл.» В случае невыполнения данного условия очевидно, что сумма балов равна или превысила значение 340. Поэтому по ветке «Нет» происходит переход к
7
последнему блоку проверки условия S<400. При выполнении данного условия (ветка «Да») абитуриент получает оценку «Хорошо», при невыполнении (ветка «Нет») – оценку «Отлично». S<280 Нет
Да
S<340
Неудовл.
Нет
Да
Удовл.
S<400 Да
Хорошо
Нет
Отлично
Рис. 1 2.2.4. Реализация системы принятия решений в табличном процессоре Excel Реализация системы принятия решений приведена в табл.3 (режим показа формул) и в табл. 4 (режим показа вычислений). В ячейках А3:В14 электронной таблицы (ЭТ) размещена исходная база занний из табл. 1. В ячейках С2:С14 приведена база данных из табл. 2. Ответы вводятся с использованием двоичной системы. При положительном ответе («Да») нужно ввести число 1, при отрицательном («Нет») – ввести – 0. Чтобы не возникло неоднозначности при вводе ответа, в ячейке С2, приводятся указания о правилах ввода. Ввод ответа в таком виде позволяет легко вычислить весовой фактор ответа путем умножения кода ответа на весовой фактор атрибута. Обработка ответов производится в ячейках D5:D14 ЭТ (формула вводится в ячейку D5 и копируется в ячейки D6: D14. В строке 13 вычисляется суммарный весовой фактор, а в строке 15 размещена формула для принятия решения. Это формула составляется в соответствии с «Правилами вывода» и деревом решения рис.1.
8
9
А 1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
В
С
Таблица 4 D
Оценка знаний абитуриента Весовой фактор атрибута
Атрибут БАЗА ЗНАНИЙ Умеет решать Квадратные уравнения Квадратные неравенства Уравнения с модулями Показательные уравнения показательные неравенства Логарифмические уравнения Логарифмические неравенства Тригонометрические тождества Тригонометрические уравнения Геометрические задачи
Если ответ "Да" введите 1, иначе 0
Весовой фактор ответа
БАЗА ДАННЫХ 20 40 50 30 50 40 40 60 40 60
Суммарный весовой фактор
1 1 0 1 1 1 0 1 1 1
20 40 0 30 50 40 0 30 40 60 310
Принятие решения удовл
2.3. Разработка системы принятия решений о продаже акций предприятия Необходимо разработать систему принятия решения о целесообразности для фирмы продажи акций. База знаний приведена в табл. 5. Таблица 5 № Характеристика Весовой фактор Факт (атрибут) п/п атрибута характеристики атрибута 1. Курс акций в данный Высокий 50 момент Средний 30 Низкий 10 2. Вероятность снижения Высокая 40 курса акций Средняя 20 10 Низкая 3. Потребность в наличных Высокая 80 деньгах Средняя 50 Низкая 20 Правила вывода:
10
Если суммарный весовой фактор меньше 100, то принять решение “Нет смысла в продаже”. Если суммарный весовой фактор выше 100, но меньше 140, то решение “Не торопитесь с продажей”. Если суммарный весовой фактор выше 140, то “Продавать”. Последовательность решения данной задачи абсолютно аналогична схеме описанной в п. 2.2. 2.3.1. Построение базы данных Составим БД (табл. 6) согласно базе знаний табл. 5 (основы построения БД описаны в п. 2.2.2.) Обратите внимание! Отличие этой задачи от предыдущей состоит в том, что, если на один из трех вопросов для любого атрибута был дан ответ “Да” значит, на оставшиеся следует отвечать “Нет”. (Например, если на вопрос: “Курс акций в данный момент средний?” был дан ответ “Да”, нельзя отвечать утвердительно, что одновременно этот курс высокий или низкий). Еще одно отличие от предыдущей задачи – весовой фактор каждого ответа получается суммированием весовых факторов всех характеристик данного ответа. Правда, из этих трех характеристик две будут иметь весовой фактор, равный нулю, но при реализации системы в ЭТ заранее неизвестно какие именно, поэтому в компьютерной реализации обязательно нужно предусмотреть вычисление данных сумм. Таблица 6 № Факт Весовой фактор Вопрос Ответ п/п (атрибут) характеристики 1. Курс акций в Высокий? Да 50 данный момент Средний? Нет 0 Низкий? Нет 0 Общий весовой фактор атрибута 1 (ВФ1) 50 2. Вероятность Высокая? Нет 0 снижения курса Средняя? Да 20 акций Низкая? Нет 0 Общий весовой фактор атрибута 2 (ВФ2) 20 3. Потребность в Высокая? Нет 0 наличных Средняя? Нет 0 деньгах Низкая? Да 20 Общий весовой фактор атрибута 3 (ВФ3) 20 Суммарный весовой фактор S 90 Суммарный весовой фактор для тестового варианта заполнения БД равен S=ВФ1+ВФ2+ВФ3=50+20+20=90. Очевидно, что согласно правилам вывода, сформулированным в задании, следует принять решение: “Не продавать” (так как S<140). 2.3.2. Построение дерева принятия решений Основы построения деревьев решения описаны в п. 2.21.3. Дерево решений строится по “правилам вывода” и имеет вид рис. 2.
11
S<100 Да
Нет
Нет смысла в продаже
S<140 Да
Не торопиьтся с продажей
нет Продавать
Рис. 2 2.3.3. Реализация системы принятия решений в ЭТ Порядок процесса создания ЭТ описан в п. 2.2.4. ЭТ, реализующая систему принятия решения согласно заданию табл. 5 имеет вид табл. 7 (режим показа формул) и табл. 8 (режим показа вычислений).
12
Таблица 7
13
A 1 2
Таблица 8 E
B C D Решение о продаже акций БАЗА ЗНАНИЙ БАЗА ДАННЫХ Весовой фактор Ответ атрибута
Весовой фактор ответа
Атрибуты
Характеристики
4 5 6
Курс акций в данный момент
Высокий Средний Низкий
50 30 10
1 0 0
50 0 0
7 8 9
Вероятность снижения курса
10 11
Потребность фирмы в наличных деньгах
Высокая Средняя Низкая Высокая
40 20 10 80
0 1 0 0
0 20 0 0
Средняя
50
0
0
Низкая
20
1
20
3
12 13 14 15
Суммарный весовой фактор
90
Принятие решения Не продавать
2.4. Разработка системы принятия решений о диагностике неисправности телевизора Требуется разработать систему принятия решения для предварительной диагностики неисправности телевизора. Исходная база знаний приведена в табл.9. Таблица 9 Атрибут Весовой фактор № пп Вид неисправности (факт) атрибута Отсутствуют: 1 Сгорел Звук 5 предохранитель Изображение 5 Световое заполнение экрана 30 2 Неисправна антенна Звук 20 Изображение 20 0 Световое заполнение экрана 3 Неисправен кинескоп Звук 0 Изображение 20 Световое заполнение экрана 10 Цвет 10
14
Схема решения задачи включает все этапы, описанные в п. 2.2. 2.4.3. Разработка базы данных Проводятся аналогично описанию 2.2.2. Отличие данной задачи от предыдущих состоит в том, что атрибуты повторяются для разных видов неисправностей. Поэтому ответив один раз положительно на вопрос, например, «Отсутствует звук?» для неисправности «Сгорел предохранитель», необходимо повторить тот же ответ («Да») для неисправностей «Неисправна антенна» и «Неисправен кинескоп». Весовые факторы рассчитываем для каждого вида неисправности, а затем сравниваем их между собой. Неисправность, набравшая максимальное число баллов, будет наиболее вероятной. Поместим тестовый вариант заполнения БД в табл. 10. Таблица 10 № Атрибут Ответ Весовой фактор пп Вид неисправности (факт) атрибута Отсутствуют: 1 Сгорел Звук? Да 5 предохранитель Изображение? Да 5 Световое заполнение экрана? Нет 0 Общий весовой фактор неисправности 1 (ВФ 1) 10 20 2 Неисправна Звук? Да 20 антенна Изображение? Да Световое заполнение 0 Нет экрана? Общий весовой фактор неисправности 2 (ВФ 2) 40 0 Да 3 Неисправен Звук? 20 Да кинескоп Изображение? Световое заполнение 0 Нет экрана? 10 Да Цвет? Общий весовой фактор неисправности 3 (ВФ 3)
30
Для тестового варианта заполнения БД подсчитаем сумму баллов, (общих весовых факторов - ВФ), которые “набрала” каждая из неисправностей: Предохранитель: ВФ1=5+5+0=10. Антенна: ВФ2=20+20+0=40. Кинескоп: ВФ3=0+20+0+10=30. Анализируя полученные результаты, можно сделать вывод, что для данного варианта ответов (табл. 10) максимальный весовой фактор имеет неисправность “Антенна”. Следовательно, можно принять решение для предварительной диагностики неисправности этого телевизора: “наиболее вероятно, что неисправна антенна”.
15
Разрабатываемая система принятия решения должна использоваться многократно для анализа различных вариантов неисправностей и предусматривать возможность многократного обновления БД (т.е. для каждого телевизора создается своя БД). 2.4.2. Построение дерева принятия решения Построим дерево решения для нашего примера. Пусть БД табл.10 заполнена ответами. (В общем виде эта БД хранится в нашем компьютере. Поскольку для каждого телевизора она задается заново, мы заранее не знаем величин ВФ1, ВФ2 и ВФ3). На основе данного варианта БД проведены расчеты общих весовых факторов. Теперь нужно проанализировать их значения и найти максимальный. Максимальному значению общего весового фактора будет соответствовать наиболее вероятная неисправность. Дерево решения имеет вид рис.3. ВФ1>ВФ2 Да
Нет
ВФ1>ВФ3 Да Предохранитель
ВФ2>ВФ3 Нет
Нет
Кинескоп
Да Антенна
Рис. 3 На каждом уровне решения сравниваются значения общих весовых факторов двух неисправностей. Из вершины проверки условия выходят две ветви: “Да” и “Нет”. Переход по ветви “Да” происходит, если условие, записанное в вершине, выполняется, и по ветви “Нет” – в противном случае. Проанализируем сначала случай, когда условие ВФ1>ВФ2 выполнилось. Очевидно, что для нахождения максимального весового фактора нужно сравнить ВФ1 и ВФ3. Поэтому ветка “Да” завершается новой вершиной проверки условия ВФ1>ВФ3. Если и это условие выполнится, можно утверждать, что максимальным является ВФ1. Поэтому по ветке “Да” приходим к вершине принятия решения (прямоугольник) - “Предохранитель”. Если условие ВФ1>ВФ3 не выполнилось, это означает, что ВФ3>ВФ1. В этом случае максимальным является ВФ3, и ветка “Нет” блока проверки ВФ1>ВФ3 приводит к блоку принятия решения “Кинескоп”. Если условие ВФ1>ВФ2 не выполняется, для нахождения максимального весового фактора нужно сравнить ВФ2 и ВФ3. По ветке “Нет” блока проверки условия ВФ1>ВФ2 приходим к вершине проверки условия ВФ2>ВФ3. Если это условие выполняется (ветка “Да”), предусмотрен блок принятия решения “Антенна”, если не выполняется (ветка “Нет”), максимальным является ВФ3, и вновь идем на принятие решения “Кинескоп”.
16
2.4.4. Реализация системы принятия решения в электронной таблице (ЭТ) Электронная таблица, реализующая систему принятия решения для рассматриваемого примера, приведена в табл.11 (режим вычислений) и в табл.12. (режим показа формул). Для ее реализации необходимо выполнить следующие действия: 1. Создать базу знаний. 1. Создать базу данных. 2. Обработать ответы. 3. Вычислить общие весовые факторы. 4. Вычислить максимальный общий весовой фактор. 5. Принять решение. Рассмотрим эти этапы более подробно. Создание базы знаний В строку 2 (ячейки В2:D2) вносим заголовок: “Вид неисправности”, в строку 3 (ячейки В3:D3) - названия вида неисправностей: “Предохранитель”, “Антенна” и “Кинескоп”. В строку 5 (ячейки А5:D5) вводим заголовок “База знаний”, в ячейках А6:А10 –размещаем характеристики неисправностей. В ячейки В6:D6 поместим заголовок “Весовые факторы неисправностей”. В ячейки В5:D8 введем весовые факторы неисправностей, согласно заданной базе знаний (табл. 9). Создание базы данных. В строках 12:20 предусматриваем вывод вопросов согласно БД (табл.10) и место для ввода ответов. В строку 12 введем заголовок: “База данных”, в строку 13 – уточнения (столбец А предназначен для вывода вопросов, поэтому в ячейку А14 введем комментарий “ Вопросы”. Столбцы В:D предназначены для ввода ответов, поэтому в ячейках В14:D14 разместим комментарий “Ответы”. В строку 15 введем подсказку, как следует отвечать на вопросы: “Если отвечаете “Да” ввод 1, иначе ввод 0”. Далее в строке 16 разместим указание, определяющее адрес ячеек для ввода ответов на вопросы: “Ответы вводить в ячейки В17:В19”. В ячейки А17:А19 запишем вопросы: ячейка А17 – “Отсутствует звук?” ячейка А18 – “Отсутствует изображение?” ячейка А19 – “Отсутствует световое заполнение экрана?” Поскольку эти же параметры характеризуют также вторую и третью неисправности, предусматриваем запись ответов на перечисленные вопросы в ячейки столбца С (для характеристики неисправности антенны) и ячейки столбца D (для характеристики неисправности кинескопа).
Например, в ячейку С17 должен быть введен тот же ответ, что будет введен пользователем системы принятия решения в ячейку В17. Поэтому запишем в С17 формулу =В17 (т.е. предписываем переписать в С17 то выражение, которое находится в В17). Аналогично заполняем ячейки С18:D18. Очевидно, что при этом следует использовать режим автозаполнения - копирования формулы.
17
1 2 3 4
Таблица 11 A B C D СИСТЕМА ПРИНЯТИЯ РЕШЕНИЙ О НЕИСПРАВНОСТИ ТЕЛЕВИЗОРА ВИД НЕИСПРАВНОСТИ ПРЕДОХРААНТЕННА КИНЕСКОП НИТЕЛЬ
5 БАЗА ЗНАНИЙ 6 Характеристика (атрибут) Весовые факторы неисправностей 7 Отсутствует звук? 5 20 0 8 Отсутствует изображение? 5 20 20 Отсутствует световое 9 заполнение экрана? 30 0 10 10 Отсутствует цвет? 10 11 12 БАЗА ДАННЫХ 13 14 Вопросы Ответы 15 Если отвечаете "да"-ввод 1, иначе - ввод 0. 16 Ответы вводить в ячейки В8:В10 17 Отсутствует звук? 1 1 1 18 Отсутствует изображение? 1 1 1 Отсутствует световое 19 заполнение экрана? 0 0 0 20 Отсутствует цвет?(ответ в D20) 1 21 ОБРАБОТКА ОТВЕТОВ 22 5 20 0 23 5 20 20 24 0 0 0 25 10 26 ВЫЧИСЛЕНИЕ ОБЩИХ ВЕСОВЫХ ФАКТОРОВ 27 10 40 30 28 ВЫЧИСЛЕНИЕ МАКСИМАЛЬНОГО ФАКТОРА 29 40 30 ПРИНЯТИЕ РЕШЕНИЯ 31 0 антенна 0
Таблица 12
18
В ячейку А20 введем вопрос, который относится только к неисправности кинескопа: “Отсутствует цвет? (ответ в D20)”. На этом подготовка к заполнению БД завершена.
19
Обработка ответов Введем в строку 21 комментарий: “Обработка ответов”. Обработка ответов заключается в определении весового фактора факта в зависимости от ответа: при ответе “Да” (т.е. при вводе в соответствующую ячейку ответа числа 1) весовой фактор должен быть тем же, что и в базе знаний. Если же был дан ответ “Нет” (т.е. в соответствующей ячейке число 0), весовой фактор должен быть равным нулю. Для получения такого результата удобно перемножить весовой фактор из базы знаний на значение соответствующей ячейки ответа. Например, весовой фактор атрибута “отсутствует звук” для неисправности “Предохранитель” находится в ячейке В7 и равен 5. Ответ на вопрос “Отсутствует звук?” для этой неисправности будет введен в ячейку В17. Если перемножить значения ячеек В7 и В17, то при ответе “Да” (т.е. наличии 1 в В17) результат перемножения будет равен 5. Если ответ “Нет” (т.е. в В17 число 0), результат равен 0. Поэтому запишем в ячейку В22 формулу =В7*В17 (табл.12). Скопируем эту формулу в ячейки В23:D24, а потом еще в ячейку D25 (пользуясь режимом автозаполнения). Вычисление общих весовых факторов Введем в строку 26 комментарий: “Вычисление общих весовых факторов”. Для вычисления общего весового фактора первой неисправности нужно просуммировать весовые факторы, полученные в результате обработки ответов, и находящиеся в ячейках В22:В24. Введем в ячейку В27 формулу =СУММ(В22:В24). По аналогии введем в ячейку С27 формулу =СУММ(С22:С24), в ячейку D27 – формулу =СУММ(D22:D25). Вычисление максимального общего весового фактора. Введем в строку 28 комментарий “Вычисление максимального общего весового фактора”. Чтобы найти наиболее вероятную неисправность, следует сравнить между собой все общие весовые факторы, находящиеся в ячейках В27:D27 и определить максимальный. Для этого вводим в ячейку В29 формулу =МАКС(В27:D27). Принятие решения. Чтобы принять решение, к какому типу относится неисправность для введенного варианта ответов, нужно провести сравнение общего весового фактора каждой неисправности с найденным максимальным значением. Например, если значение максимального общего весового фактора (ячейка В29) совпадает со значением общего весового фактора первой неисправности (ячейка В27), то можно принять решение, что неисправность первого типа ("Предохранитель"). Воспользуемся для этого оператором ЕСЛИ. В общем случае он имеет вид: =ЕСЛИ(условие; выражение 1; выражение 2). Оператор ЕСЛИ работает следующим образом: проверяется записанное условие. Если условие выполняется, то в ту ячейку, где находится оператор ЕСЛИ, записывается выражение 1. Если условие не выполняется – выражение 2. Запишем в ячейку В31 формулу
20
=ЕСЛИ(В29=В27;“Предохранитель”;0). Таким образом, если максимальный весовой фактор совпадает с общим весовым фактором первой неисправности, в ячейке В31 появится сообщение “Предохранитель”. (В противном случае – число 0). Аналогичным образом в ячейку С31 запишем формулу для принятия решения о второй неисправности =ЕСЛИ(С29=С27;“Антенна”;0). В ячейку D31 для принятия решения о третьем типе неисправности введем формулу =ЕСЛИ(D29=D27;“Кинескоп”;0). 2.4.5. Проведение тестовых расчетов в ЭТ Чтобы проверить правильность составления ЭТ, введем в табл. 11. ответы, согласно БД табл.10. Поскольку результат совпадает с тестовыми вычислениями (п. 2.4.1), можно утверждать что реализация системы принятия решения в ЭТ функционирует нормально. 2.3.6. Подготовка системы принятия решений для пользователя Разработанная система принятия решения (табл.11 табл.12 содержит много избыточной для пользователя информации. Пользователю совершенно не обязательно знать о наличии базы знаний и о весовых факторов неисправностей, о формулах обработки ответов и принятия решений. Пользователь должен вводить в ЭТ сведения о своем телевизоре и получать соответствующее решение. Для исключения лишней информации удобно пользоваться командой “Скрыть строку”. Поставим указатель мыши на номер строки 6 и щелкнем правой клавишей для получения контекстного меню. Выбрать в контекстном меню команду “Скрыть строку”. Строка 6 будет скрыта. Проделать эту же операцию со строками 7, 8, 9, 10, 11, 12, 13. Далее скрываем строки 21, 22, 23, 24, 25, 27, 28, 29. В результате получаем систему принятия решения в режиме пользователя (табл.13). В этой таблице необходимо еще скорректировать комментарии. В строке 7 следует ввести “Ответы вводить в ячейки В8:В10”, а в ячейке А11 – “Отсутствует цвет” (ответ в D11).
3. Оптимизация управленческих и экономических задач 3.1. Принципы решения задач оптимизации Задачи оптимизации очень часто встречаются в управленческой, финансовой и научной деятельности. Они позволяют отыскать наилучшее (оптимальное) решение (например, дающее максимальную прибыль или обеспечивающее минимальные затраты). При этом требуется учитывать ряд дополнительных условий на значения используемых параметров. Для решения подобных задач используются, как правило, методы математического
21
1 2 3 4 14
Таблица 13 A B C D СИСТЕМА ПРИНЯТИЯ РЕШЕНИЙ О НЕИСПРАВНОСТИ ТЕЛЕВИЗОРА ВИД НЕИСПРАВНОСТИ ПРЕДОХРААНТЕННА КИНЕСКОП НИТЕЛЬ Вопросы
Ответы
15 Если отвечаете "да"-ввод 1, иначе - ввод 0. 16 Ответы вводить в ячейки В8:В10 17 Отсутствует звук? 1 1
1
18 Отсутствует изображение?
1
1
1
Отсутствует световое 19 заполнение экрана? 20 Отсутствует цвет?(ответ в D20)
0
0
0 1
30 31
ПРИНЯТИЕ РЕШЕНИЯ 0 антенна
0
программирования. На компьютере подобные задачи можно решать, используя имеющийся в табличном процессоре Excel режим Поиск решения. Режим Поиск решения позволяет: • использовать одновременно до 200 изменяемых параметров; • задавать ограничения для этих параметров; • используя метод последовательных приближений (т.е. итерационные вычисления) отыскивать оптимальное решение. Задачи, для решения которых используют режим Поиск решения, должны обладать рядом свойств: • иметь единственную, ячейку (целевую), содержащую формулу (целевую функцию), значение которой должно быть получено как максимальное, минимальное или равное конкретному значению (например, максимальная прибыль, минимальный фонд зарплаты, ограничение равное имеющейся наличной сумме); • формула в этой ячейке должна содержать адреса ячеек (ссылки) в которых будут находиться неизвестные или переменные решаемой задачи (изменяемые ячейки). Поиск решения задачи заключается в том, чтобы подобрать такие значения этих переменных, которые бы давали оптимальное значение для формулы в целевой ячейке. Изменяемые ячейки могут содержать, например, себестоимость или цену товаров, транспортные тарифы или налоговые ставки; • кроме того, может быть задано некоторое количество ограничений условий или соотношений, которым должны удовлетворять некоторые
22
параметры из изменяемых ячеек. Например, можно потребовать, чтобы общие затраты не превосходили 100 000 рублей или чтобы затраты не рекламную кампанию составили от 10 до 15% от общих расходов. Приведем несколько примеров подобных задач Транспортная задача. Имеется несколько пунктов производства и пунктов потребления некоторого продукта. Для каждого из пунктов производства задан объем производства, а для каждого пункта потребления - объем потребления. Известна также стоимость перевозки из каждого пункта производства в каждый пункт потребления. Все пункты потребления должны быть обеспечены необходимой продукцией, но из каждого пункта производства не может вывозиться продукции больше, чем там производится, а стоимость перевозки должна была минимальной. Задача о выборе оптимального меню. Имеется набор некоторых продуктов, обладающих некоторой калорийностью, а также известно количество белков, жиров и углеводов в каждом из этих продуктов и их стоимость. Требуется составить меню, удовлетворяющее требованиям калорийности и сбалансированности питательных продуктов, при этом минимизирующее суммарную стоимость. Задача о назначениях. Имеются несколько должностей и соответствующее количество претендентов на эти должности. Назначения претендентов на должности связано с некоторыми затратами. Требуется так распределить претендентов по должностям, чтобы суммарные затраты были минимальны. Задача о выборе портфеля ценных бумаг. Вкладчик хочет выбрать портфель ценных бумаг, при этом известны средние значения доходов от каждого вида ценных бумаг и ожидаемый порядок этих доходов. Требуется отыскать оптимальный портфель, обеспечивающий максимальный ожидаемый доход при минимальном рассеянии, и, следовательно, минимальном риске.
3.2. Решение транспортной задачи Фирме необходимо организовать перевозку продукции с трех складов в пять магазинов. Сведения о наличии продукции на складах, о потребности в этой продукции у магазинов и о стоимости перевозки единицы продукции с каждого склада во все магазины приведены в табл.14. Таблица 14 Магазины Склады М1 М2 М3 М4 М5 Номер Запас Стоимость перевозок склада S1 15 1 0 3 4 2 S2 25 5 1 2 3 3 S3 20 4 8 1 4 3 Потребности магазинов 20 12 5 8 15
23
Решение задачи включает три этапа: 1. Построение математической модели. 2. Построение начального плана решения. 3. Оптимизация начального плана. 3.2.1. Построение математической модели Обозначим Хij – количество продукции, отправляемой со склада i в магазин j: Cij – стоимость перевозки единицы продукции со склада i в магазин j. Математическая модель будет состоять из ряда ограничений: а) исходя из физического смысла задачи (количество и стоимость продукции не могут быть отрицательными величинами) Хij ≥ 0; Cij ≥ 0. (1) б) ограничения по предложению (со складов нельзя вывести продукции больше, чем там имеется):
⎧ X 11 + X 12 + X 13 + X 14 + X 15 ≤ 15 ⎪ ⎨ X 21 + X 22 + X 23 + X 24 + X 25 ≤ 25 ⎪ X + X + X + X + X ≤ 20 32 33 34 35 ⎩ 31
(2)
в) ограничения по спросу (в магазины следует завести не меньше продукции, чем им требуется): ⎧ X 11 + X 21 + X 31 ≥ 20
⎪ + + ≥ 12 ⎪⎪ X 12 X 22 X 32 ⎨ X 13 + X 23 + X 33 ≥ 5 ⎪ X + X + X ≥8 24 34 ⎪ 14 ⎪⎩ X 15 + X 25 + X 35 ≥ 15
(3)
Общая стоимость перевозок (целевая функция) равна: 3
5
Z = ∑ ∑ Cij X ij = 1 ⋅ X 11 + 0 ⋅ X 12 + 3 ⋅ X 13 + 4 ⋅ X 14 + 2 ⋅ X 15 + i =1 j =1
+ 5 X 21 + 1 ⋅ X 22 + 2 ⋅ X 23 + 4 ⋅ X 24 + 3 ⋅ X 25 +
(4)
+ 4 X 31 + 8 ⋅ X 32 + 1 ⋅ X 33 + 4 ⋅ X 34 + 3 ⋅ X 35 Необходимо определить такие значения переменных Xij, которые удовлетворяют ограничениям (1), (2) и (3) и обращают в минимум целевую функцию Z (4). В такой постановке задача является транспортной задачей линейного программирования. Необходимым и достаточным условием разрешимости транспортной задачи является условие баланса: 3
5
i =1
j =1
∑ Si = ∑ m j
3
где ∑ S i - суммарное количество продукции на складах i =1
(5)
24
5
(при этом Si= ∑ X ij - количество продукции на одном складе, i=1, 2, 3); j =1
5
∑ m j - суммарное количество продукции, требуемое в магазинах (при этом -
j =1
3
m j = ∑ X ij количество продукции, которое требуется j-му магазину, j=1, 2, i =1
…,5). В нашем случае 3
∑ S i = 15 + 20 + 20 = 60;
i =1
5
∑ m j = 20 + 12 + 5 + 8 + 15 = 60
j =1
3
5
i =1
j =1
∑ S i = ∑ m j =60,
следовательно задача с балансом. 3.2.2. Разработка ЭТ с начальным планом решения ЭТ приведена в табл.15 – режим вычислений и табл.16 – режим показа формул. 1. Подготовим блок ячеек с исходными данными. В ячейках В4:В7 помещаем сведения о наличии продукции на складах. В ячейках С9:G9 – сведения о потребностях магазинов. В ячейках С5:G7 – данные о стоимости перевозок единицы продукции со складов в магазин. 2. Построим начальный план перевозок. Считаем, что с каждого склада в каждый магазин везут одну единицу товара (ячейки С11:G13 заполним единицами). 3. Вычислим количество перевозимой продукции а) В ячейку В11 – введем формулу для вычисления количества продукции, вывозимой с 1-го склада: =СУММ(С11:G11). Аналогично в ячейки В12, В13 введем формулы для вычисления количества продукции, вывозимой со второго и третьего складов: =СУММ(С12:G12). =СУММ(С13:G13). Для начального плана перевозок все суммы равны 5. б) В ячейку С15 введем формулу для вычисления количества продукции, которую везем в первый магазин =СУММ(С11:С13). Аналогично в ячейки D15:G15 введем формулы для вычисления количества продукции, которую везем во 2-й, 3-й, 4-й, 5-й магазины. В ячейку D15 = СУММ (D11:D13) В ячейку E15 =СУММ (E11:E13) В ячейку F15 =СУММ (F11:F13) В ячейку G15 =СУММ (G11:G13)
25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Таблица 15 A B C D E F G ОПТИМИЗАЦИЯ ПЛАНА ПЕРЕВОЗОК Склады Магазины 1-й 2-й 3-й 4-й 5-й Номер Запас Стоимость перевозок 1 15 1 0 3 4 2 2 25 5 1 2 3 3 3 20 4 8 1 4 3 Потребности магазинов 20 12 5 8 15 Всего ввозится План перевозок 1 5 1 1 1 1 2 5 1 1 1 1 3 5 1 1 1 1 Завоз в магазины 3 3 3 3 Стоимость перевозок в 10 9 6 11 каждый магазин Целевая 44 функция
1 1 1 3 8
4. Определим стоимость перевозок в каждый из магазинов Для определения стоимости перевозок в 1-й магазин Z1=X11C11+ X12C12+ X13C13 введем в ячейку С16 формулу: =СУММПРОИЗВ(С5:С7;С11:С13). В ячейке D16 вычислим стоимость перевозок во второй магазин Z2=X12C12+ X22C22+ X32C32, т.е. введем формулу. =СУММПРОИЗВ(D5:D7;D11:D13) Аналогично в ячейки Е16:G16 введем формулы для вычисления стоимости перевозок в остальные магазины В ячейку Е16 =СУММПРОИЗВ(Е5:Е7;Е11:Е13) В ячейку F16 =СУММПРОИЗВ(F5:F7;F11:F13) В ячейку G16 =СУММПРОИЗВ(G5:G7;G11:G13) 5. Определим общую стоимость перевозок (целевую функцию ЦФ) Z=Z1 +Z2 +Z3 +Z4+Z5 (6) Для этого введем в ячейку В17 формулу =СУММ(С16:G16). Для нашего начального плана полученная стоимость равна 44 денежным единицам.
26
3.2.3. Улучшение (оптимизация) плана перевозок Используем режим Поиск решения Excel. 1) После выполнения команд Сервис, Поиск решения открывается диалоговое окно Поиск решения (рис. 4). 2) Введем данные: В17 Установить целевую ячейку Равной: минимальному значению C11:G13 изменяя ячейки 3) Щелкнуть по кнопке Добавить для ввода ограничений. 4) В открывшемся окне Изменение ограничения (рис. 5) ввести ограничения. C11:G13 >=0 С11: G13 = целые В11:В13 ≤ B5:D7 С15:G15 ≥ C9:G9 (левая часть каждого ограничения вводится в поле Ссылка на ячейку, правая часть ограничения – в поле Ограничение, знак выбирается в средней части окна. После ввода каждого ограничения нужно нажать кнопку Добавить, после ввода последнего ограничения нажать кнопку Ок.)
Рис. 4
Рис. 5
27
5) Для запуска режима Поиск решения щелкнуть по кнопке Выполнить (см. рис. 4). Если все формулы в табл.15 и все ограничения в окнах рис.4 и рис.5 введены правильно, появится окно с сообщением о том, что решение найдено. Щелкнув по кнопке Ок, получаем решение (табл.17). В результате улучшения плана теперь мы имеем оптимальный план стоимости перевозок с целевой функцией, равной 121 денежной единице. Таблица 17 A B C D E F G 1 ОПТИМИЗАЦИЯ ПЛАНА ПЕРЕВОЗОК 2 Склады Магазины 3 1-ый 2-ой 3-ий 4-ый 5-ый 4 Номер Запас Стоимость перевозок 5 1 15 1 0 3 4 2 6 2 25 5 1 2 3 3 7 3 20 4 8 1 4 3 8 Потребности магазинов 9 20 12 5 8 15 10 Всего ввозится План перевозок 11 1 15 15 0 0 0 0 12 2 25 0 12 0 8 5 13 3 20 5 0 5 0 10 14 Завоз в магазины 15 20 12 5 8 15 Стоимость перевозок в 16 35 12 5 24 45 каждый магазин 17 Целевая функция
121
3.3. Решение задачи о штате фирмы Администрации брокерской фирмы требуется определить штаты и составить график работы обслуживающего персонала. При этом необходимо обеспечить следующие условия: • каждый из сотрудников должен иметь пять рабочих дней в неделю и два выходных подряд; • все сотрудники фирмы имеют одинаковую заработную плату (500 руб. в день); • всего в фирме на текущий момент работает 30 человек; • исходя из специфики работы фирмы, имеются требования к минимальному количеству работающих сотрудников для каждого из дней недели (табл.18).
Таблица 18 День ПонеВоскреВторникСредаЧетверг Пятница Суббота недели дельник сенье Требуемое число 16 12 14 16 16 25 25
28
сотрудников Требуется определить минимальное число сотрудников в фирме для обеспечения названных условий. Решение реализовать с использованием табличного процессора Excel (режим Поиск решения). Решение задачи включает следующие этапы: 1. Построение математической модели. 2. Построение начального плана решения. 3. Оптимизация начального плана. 3.3.1. Построение математической модели Поскольку одним из требований является наличие пяти рабочих дней у каждого сотрудника и наличие двух выходных рядом, составим табл. 19, в которую занесем возможный режим работы для каждого сотрудника. Внизу этой таблицы запишем для оценки необходимого числа работающих исходную табл.18. Определение возможных режимов работы В первом столбце табл.19 поместим возможные режимы работы сотрудников. Так как сотрудник должен иметь два выходных дня рядом, получаем следующее возможные режимы выходных дней: Понедельник, вторник; Вторник, среда; Среда, четверг; Четверг, пятница; Пятница, суббота; Суббота, воскресенье; Воскресенье, понедельник. Определение возможного графика работы Обозначим число сотрудников, имеющих выходные в понедельник и вторник, Х1 . Число сотрудников, имеющих выходные во вторник и среду – Х2 и так далее (см. второй столбец табл.19). Из табл. 18 видно, что больше всего сотрудников должно работать в субботу и воскресенье. Следовательно, число выходных у работников в эти дни должно быть меньше всего. В условии задачи сказано, что всего в фирме 30 сотрудников. Попробуем составить предварительный график работы сотрудников. В напряженные рабочие дни (т.е. в строках х5, х6, х7 табл. 19) спланируем по 2 человека отдыхающих. В остальные дни - по 6 человек. (Всего 6*4+2*3=30 30 − 4 ⋅ 6 человек). Таким образом, Х1=Х2=Х3=Х4=6; Х5=Х6=Х7= = 2. 4 В дальнейшем, изменяя эти значения, будем искать оптимальное решение, обеспечивающее минимальный фонд зарплаты (т.е. минимальное число работающих) при соблюдении требований к рабочему графику.
29
Определение числа работников, выходящих на работу каждый день согласно данному графику В столбцах “Рабочие дни” введем параметры аij - индикаторы выхода на работу сотрудников, имеющих режим выходных в строке i в рабочий день j. Например, а11 - индикатор выхода сотрудника, имеющего выходной в первой строке, в Понедельник. Так как этот день у него выходной, а11=0. В среду у этого сотрудника рабочий день, поэтому а13=1. В строке “Всего” подсчитывается количество работников, выходящих на работу согласно составленному графику. Во втором столбце (Число имеющих этот график) Х1+ Х2 + Х3 + Х4 + Х5 + Х6 + Х7 = 6 + 6 + 6 + 6 + 2 + 2 + 2 = 30. В столбце “Всего” для понедельника общее число работающих подсчитывается по формуле Х1⋅ а11 + Х2⋅ а21 + Х3⋅ а31 + Х4⋅ а41 + Х5⋅ а51 + Х6⋅ а61 + Х7⋅ а71 = = 6 ⋅ 0 + 6 ⋅ 1 + 6 ⋅ 1 + 6 ⋅ 1 + 2 ⋅ 1 + 2 ⋅ 1 + 2 ⋅ 0 = 22, т.е. находится сумма произведений элементов столбца “Х” на элементы столбца “Пн”.
Аналогичным образом, чтобы найти число работающих согласно данному графику во вторник, нужно найти сумму произведений элементов столбца “Х” на элементы столбца “Вт”. В последней строке “Требуется” записано число работников, которые должны работать каждый день недели согласно заданию (табл. 18). Таблица 19 Выходные Число имеющих Рабочие дни дни этот график Пн Вт Ср Чт Пт Сб Вс Понедельник, Х1=6 а11=0 а12=0 а13=1 а14=1 а15=1 а16=1 а17=1 вторник Вторник, Х2=6 а21=1 а22=0 а23=0 а24=1 а25=1 а26=1 а27=1 среда Среда, Х3=6 а31=1 а32=1 а34=0 а34=0 а35=1 а36=1 а37=1 четверг Четверг, Х4=6 а41=1 а42=1 а43=1 а44=0 а45=0 а46=1 а47=1 пятница Пятница, Х5=2 а51=1 а52=1 а53=1 а54=1 а55=0 а56=0 а57=1 суббота Суббота, Х6=2 а61=1 а62=1 а63=1 а64=1 а65=1 а66=0 а67=0 воскресенье Воскресенье, Х7=2 а71=0 а72=0 а73=0 а74=0 а75=1 а76=1 а77=0 понедельник ВСЕГО:
30
22
18
18
18
22
26
26
ТРЕБУЕТСЯ
30
16
12
14
16
16
25
25
30
Определение целевой функции задачи Как видим, в строке “Всего” удовлетворяются требования строки “Требуется” с избытком, т.е. план явно не оптимальный. Следует улучшить этот план, имея в виду нахождение минимума для целевой функции - фонда недельной зарплаты, которая считается следующим образом: F = B ⋅ K, где F - фонд заработной платы, В - зарплата работника за день (согласно заданию, В=500 руб.), K - число выходов сотрудника в течение недели (в нашем случае согласно табл.19 строка “Всего”) К = 22 + 18 + 18 + 18 + 22 + 26 + 26 =150 Таким образом, F = B ⋅ K = 500 ⋅ 150 = 75 000 (руб.) 3.3.2. Разработка электронной таблицы 1) Составим электронную таблицу (табл.20 – показ вычислений, табл.21 – показ формул), реализующую планирование списочного состава и графика работы фирмы. 2) Введем на рабочий лист необходимые исходные данные согласно табл. 19 – ячейки А1:К10. 3) Теперь можно приступить к вводу формул, описывающих количество работающих сотрудников. Поместим в ячейку С14 общее количество сотрудников, работающих по данному графику, а в интервал ячеек Е14:К14 количество работающих сотрудников в соответствующий день недели. Для этого в ячейку С14 нужно поместить формулу суммирования значений интервала С4:C10, =СУММ(C4:C10), а в ячейках интервала Е14:К14 следует просуммировать произведения ячеек из столбца С на значения соответствующего столбца из интервала Е:К, заполненного нулями и единицами. Для этого: • щелкнуть по кнопке Мастер функции, выбрать функцию СУММПРОИЗВ. В первом окне набрать $C$4:$C$10, во втором Е4:Е10; • щелкнуть по кнопке ОК. Дадим здесь некоторые пояснения. Поскольку мы собираемся распространить формулу из ячейки Е14 в другие ячейки интервала F14:К14, но при этом постоянно должны ссылаться на интервал С4:C10, необходимо, чтобы эта ссылка была абсолютной (используем знак абсолютного адреса $ для ячеек С4:С10, получаем $С$4: $С$10). Теперь установим указатель мыши на маркер выделения в ячейке Е14, и отбуксируем его до ячейки К14 - и нужные формулы будут распространены на весь выделенный интервал. Осталось ввести данные о необходимом количестве работников в каждый из дней недели, которые будут использованы в качестве данных для ограничений решаемой задачи, формулу для общей заработной платы и необходимые текстовые комментарии, а также выполнить, если это нужно, дополнительное форматирование для окончательного оформления рабочего листа.
31
4) Введем комментарии в ячейки А16:А18, требуемое число работников в ячейки Е15:K15, дневную зарплату в С16. В ячейку С17 введем число выходов за неделю: =СУММ(Е14К14). В С18 поместим формулу для вычисления недельной зарплаты работников =С16*С17. Таблица 20 A B C D E F G H I J K 1 График работы персонала фирмы Имеющих этот график 2 3 Выходные дни Пн Вт Ср Чт Пт Сб Вс Понедельник 4 вторник 6 0 0 1 1 1 1 1 Вторник 5 среда 6 1 0 0 1 1 1 1 6 Среда четверг Четверг 7 пятница Пятница 8 суббота Суббота 9 воскресенье Воскресенье 10 понедельник 11 12 13 14 Всего 15 Дневная зарплата 16 сотрудников Число выходов за 17 неделю Общая недельная 18 зарплата
Требуется 500 150 75000
6
1
1
0
0
1
1
1
6
1
1
1
0
0
1
1
2
1
1
1
1
0
0
1
2
1
1
1
1
1
0
0
2
0
1
1
1
1
1
0
30
По дням недели 22 18 18 18 22 26 26
30
18 12 14 16 16 25 25
32
33
3.3.3. Оптимизация решения Исходные данные подготовлены. Перейдем теперь к формулированию задачи для режима Поиск решения. В условиях нашей задачи целевой функцией будет функция в ячейке С18 (общая недельная зарплата), изменяемыми ячейками - интервал С4:С10, содержащий число сотрудников, имеющих данный график работы, и наконец, интервал Е14:К15 будет использоваться при определении ограничений. 1. Приступим к запуску режима Поиск решения, для этого введем команду: • Сервис⇒Поиск решения (появится окно Поиск Решения (см. рис. 6) 2. Определим параметры окна Поиск решения • в поле установить целевую ячейку ввести: =$C$18 • равной установить минимальному значению. • в поле Изменяя ячейки ввести: =$C$4:$C$10 (можно использовать выделение данного интервалов мышью). 3. Далее приступим к вводу ограничений: а) щелкнуть по кнопке Добавить, появится окно Изменение ограничения (рис. 7); б) в окне Изменение ограничения • ввести ссылку на ячейки: $C$4:$C$10, • выбрать пункт Ограничения цел, • щелкнуть по кнопке Добавить, т.е. получаем ограничение С4:С10 целые (так как в ячейках С4:С10 хранится информация о количестве работающих, эти величины не могут быть дробными) в) ссылка на ячейки: =$Е$14:$К$14; • выбрать ограничение >=, • в правой части выбрать Ограничение:=$E15:$K$15, • щелкнуть по кнопке Добавить, т.е. получаем ограничение Е14:К14 ≥ Е15:К15. (Число работающих по нашему графику не может быть меньше требуемого условием задачи). г) ссылка на ячейки С4:С10 • выбрать ограничение >= • в правой части ввести Ограничение: 0 (т.е. ввели ограничение С4:С10 ≥ 0 – число работающих неотрицательно). • щелкнуть по кнопке ОК, т.к ввод ограничений завершен. Происходит возврат к окну Поиск решения (рис.6).
34
Рис. 6
Рис. 7
Рис. 8 4. Запускаем программу Поиск решения на выполнение • в окне Поиск решения щелкнуть по кнопке Выполнить. Дополнение Поиск решения приступает к итерациям. Затем, закончив вычисления, открывает диалоговое окно Результаты поиска решения (рис. 8), в котором выводится сообщение о том, найдено или нет решение поставленной задачи. Если найденное решение вас устраивает, можете сохранить его на рабочем листе: • выбрать опцию Сохранить найденное решение, • щелкнуть по кнопке ОК.
35
В результате получаем табл. 22, из которой видно, что теперь число работников 26 (вместо 30), следовательно, фонд зарплаты 6500 руб. (вместо 7500). Таблица 22 A B C D E F G H I J K 1 График работы персонала фирмы 2 график 3 Выходные дни Пн. Вт. Ср Чт Пт Сб Вс Понедельник, 4 вторник 5 0 0 1 1 1 1 1 Вторник, 5 среда 9 1 0 0 1 1 1 1 Среда, 6 четверг 1 1 1 0 0 1 1 1 Четверг, 7 пятница 9 1 1 1 0 0 1 1 Пятница, 8 суббота 1 1 1 1 1 0 0 1 Суббота, 9 воскресенье 0 1 1 1 1 1 0 0 Воскресенье, 10 понедельник 1 0 1 1 1 1 1 0 11 12 13 По дням недели 14 Всего 26 20 12 16 16 16 25 25 15 Требуется 16 12 14 16 16 25 25 16 Дневная зарплата 17 сотрудников 500 Пн Вт Ср Чт Пт Сб Вс Число выходов за 18 неделю 124 Общая недельная 19 65000 зарплата
3.4. Задача планирования выпуска продукции Предприятие выпускает два вида деталей. Оно закупает заготовки, подвергаемые обработке на станках трех типов S1, S2, S3. Данные, характеризующие производительность станочного парка, а также стоимостные характеристики, приведены в табл.23. Предполагая, что можно выпустить любую комбинацию деталей А и В, найти план выпуска продукции, максимизирующий прибыль.
36
Станки Вид
Стоимость часа работы (у.е) S1 24 S2 21 S3 18 Стоимость одной заготовки ( у.е) Продажная цена одной детали (у.е)
Таблица 23 Производительность станков (шт/час) Деталь А Деталь В
30 50 20 30 59,5
30 25 40 40 79,89
Решение задачи включает все этапы, описанные в пп. 3.2 и 3.3. 3.4.1. Построение математической модели 1). Рассчитаем прибыль на одну деталь. Расчеты сведем в табл. 24. Таблица 24 Затраты на обработку одной детали (у.е.) Деталь А Деталь В Стоимость обраS1 24/30=0.8 24/30=0.8 ботки детали на S2 21/50=0.42 21/25=0.84 одном станке (у.е.) S3 18/20=0.9 18/40=0.45 0,8+0,42+0,9=2,12 0,8+0,84+0,45=2,09 Общие затраты на обработку (у.е.) Покупная цена заготовки (у.е.) 30 40 Общие затраты на одну деталь (у.е.) 30+2,12=32,12 40+2,09=42,09 Продажная цена одной детали (у.е) 59,5 79,89 Прибыль на одну деталь (у.е.) 59,5-32,12=27,38 79,89-42,09=37,8 2). Рассчитаем целевую функцию – прибыль предприятия от деталей, изготовляемых за один час работы. Обозначим Х1- число выпускаемых в час деталей А; Х2 - число выпускаемых в час деталей В. Тогда чистая прибыль за час составит Z = 27,38 * Х1 +37,8 * Х2 (1) 3). Значения Х нельзя выбирать произвольно. Рассмотрим ограничения, накладываемые на эти переменные. Таких ограничений два. Первое. По физическому смыслу переменных. Количество выпускаемых деталей не может быть отрицательным, т.е. Х1>= 0 X2 >= 0 (2) Второе. По мощности оборудования. Для станка S1. На этом станке в час может быть обработано 30 деталей А или 30 деталей В, отсюда получаем неравенство Х1/30 + Х2/30 <= 1. (3) Для станка S2. На этом станке в час может быть обработано 50 деталей А или 25 деталей В, отсюда получаем неравенство Х1/50 + Х2/25 <= 1. (4) Для станка S3. На этом станке в час может быть обработано 20 деталей А или 40 деталей В, отсюда получаем неравенство
37
Х1/20 + Х2/40 <= 1. Сведем уравнения (3) – (5) в систему:
⎧ Х 1 / 30 + Х 2 / 30 ≤ 1 ⎪ ⎨ Х 1 / 50 + Х 2 / 25 ≤ 1 ⎪ Х / 20 + Х / 40 ≤ 1 2 ⎩ 1
(5)
(6)
Избавляясь от знаменателей в системе уравнений (6), получаем
⎧ Х 1 + Х 2 ≤ 30 ⎪ ⎨ Х 1 + 2 * Х 2 ≤ 50 ⎪2 * Х + Х ≤ 40 1 2 ⎩
(7)
Итак, математическую модель задачи составляют уравнение (1) и неравенства (2) и (7). Нужно найти такие значения переменных Х1 и Х2, которые доставляют максимум целевой функции (1) при выполнении ограничений (2) и (7). 3.4.2. Разработка начального плана выпуска продукции. Реализация в Excel 1) В ячейках А3:С4 ЭТ (табл.25 и табл.26) разместим исходные данные о переменных Х1 и Х2 . Будет считать, что план выпуска составляет 1 деталь А в час и 1 деталь В в час. 2) В ячейках Е3:F5 поместим данные о коэффициентах левой части системы неравенств (7). 3) В строках 6-8 введем информацию о целевой функции: а) в ячейках В8 и С8 разместим коэффициенты перед переменными в целевой функции Z; б) в ячейку D8 введем формулу для вычисления значения целевой функции. Можно ввести формулу =В4*В8+С4*С8, а можно воспользоваться функцией =СУММПРОИЗВ(В4:С4;В8:С8). 4) В строках 9-13 разместим данные для проверки выполнения системы ограничений (7): а) в ячейку А11 введем формулу для вычисления левой части первого неравенства из системы (7). =СУММПРОИЗВ(В4:С4;E3:F3). б) чтобы скопировать эту формулу в другие ячейки, следует запретить изменить адреса ячеек В4:С4 при копировании. Введем знаки доллара, получим формулу =СУММПРОИЗВ(В$4:С$4;E3:F3). в) Копируем формулу в ячейки В12:В13. В ячейке A12 формула =СУММПРОИЗВ(В$4:С$4; E4:F4). В ячейке A13 формула =СУММПРОИЗВ(В$4:С$4; E5:F5). 2.5. В ячейки F11:F13 введем правые части неравенств системы (7).
38
A 1 2 3 4 5
B
C
D
E
Таблица 25 F
Оптимизация плана выпуска продукции КОЭФФИЦИЕНТЫ ПРИ ПЕРЕМЕННЫЕ НЕИЗВЕСТНЫХ В СИСТЕМЕ ОГРАНИЧЕНИЙ ИМЯ ДЛЯ S1 Х1 Х2 1 1 ЗНАЧЕНИЕ ДЛЯ S2 1 1 1 2 ДЛЯ S3 2 1
6
Целевая функция Значение целевой функции 7 Коэффициенты при переменных 8 27,38 37,8 65,18 9 Система ограничений 10 Значения левой части Правая часть 11 2 30 12 3 50 13 3 40 3.4.3. Оптимизация плана выпуска 1) Запускаем режим «Поиск решения». Для этого выполним команды Сервис – Поиск решения. Появится окно Поиск решения (рис. 9). Таблица 26
1 2 3 4 5 6
Оптимизация плана выпуска продукции КОЭФФИЦИЕНТЫ ПРИ ПЕРЕМЕННЫЕ НЕИЗВЕСТНЫХ В СИСТЕМЕ ОГРАНИЧЕНИЙ ИМЯ ДЛЯ S1 Х1 Х2 1 1 ЗНАЧЕНИЕ 1 ДЛЯ S2 1 1 2 ДЛЯ S3 2 1
Целевая функция Значение целевой функции 7 Коэффициенты при переменных 8 27,38 37,8 =СУММПРОИЗВ(B4:C4;B8:C8) 9 Система ограничений 10 Значения левой части Правая часть 11 =СУММПРОИЗВ(B$4:C$4;E3:F3) 30 12 =СУММПРОИЗВ(B$4:C$4;E4:F4) 50 13 =СУММПРОИЗВ(B$4:C$4;E5:F5) 40
39
Рис. 9 2) В поле Установить целевую ячейку ввести D8 3) Выбрать режим поиска Равной Максимальному значению 4) В поле Изменяя ячейки ввести В4:С4. 5) Чтобы ввести ограничения, щелкнуть по кнопке Добавить. Появится окно Изменение ограничения. 6) Ввести ограничения: В4:С4≥0 В4:С4=целое А11:А13≤F11:F13. После каждого ограничения щелкнуть по кнопке Добавить, после последнего Ок. 7) Щелкнуть по кнопке Выполнить. В результате получим оптимальный план выпуска продукции (табл. 27). 3.5. Задача о распределении ресурсов
Малое предприятие выпускает два вида деталей. На их изготовление идет три вида ресурсов R1, R2, R3, выделяемых предприятию в ограниченных количествах. Данные о наличии и расходе материалов, себестоимость 1000 шт. деталей каждого вида, а также оптовая цена за 1000 шт. приведены в табл. 28. Составить план выпуска деталей, обеспечивающий получение максимальной прибыли. Решение задачи включает этапы, описанные в пп 3.2.-3.4.
40
A
1 2 3 4 5
Таблица 27 F
B C D E Оптимизация плана выпуска продукции Коэффициенты при неизвестных в Переменные системе ограничений ИМЯ ДЛЯ S1 Х1 Х2 1 1 ЗНАЧЕНИЕ ДЛЯ S2 10 20 1 2 ДЛЯ S3 2 1
6
Целевая функция Значение целевой функции 7 Коэффициенты при переменных 8 27,38 37,8 1029,8 9 Система ограничений 10 Значения левой части Правая часть 11 30 30 12 50 50 13 40 40
Таблица 28 Расход материалов Виды материалов Запасы (усл. ед.) на 1000 ед. деталей (усл. ед) Деталь А Деталь В R1 216 12 18 R2 224 14 16 R3 200 20 10 Себестоимость 1000 шт. (усл. ед.) 3,8 3,5 Оптовая цена 1000 шт. (усл. ед.) 5 6 3.5.1. Построение математической модели Обозначим: Х1 – число выпускаемых деталей А (в тысячах штук); Х2 - число выпускаемых деталей В (в тысячах штук). На неизвестные величины накладываются два вида ограничений: Первое. По физическому смыслу (число деталей неотрицательно) ⎧ Х1 ≥ 0 ⎨ ⎩Х 2 ≥ 0 Второе. По запасам ресурсов: ⎧12 ⋅ Х 1 + 18 ⋅ Х 2 ≤ 216 ⎪ ⎨14 ⋅ Х 1 + 16 ⋅ Х 2 ≤ 224 ⎪20 ⋅ Х + 10 ⋅ Х ≤ 200 1 2 ⎩
(1)
(2)
41
Для расчета целевой функции (прибыли от продажи выпускаемых деталей) рассчитаем прибыль, получаемую от тысячи деталей каждого вида. Для деталей А: 5-3,8=1,2. Для деталей В: 6-3,5=2,5. Тогда целевая функция равна Z=1,2X1+2,5X2 (3) Требуется найти такие значения неизвестных Х1 и Х2, которые обеспечивают максимум целевой функции (3) при выполнении ограничений (1) и (2). 3.5.2. Построение начального плана решения План решения аналогичен описанному в п. 3.4 и приведен в табл.29 и табл.30. Таблица 29 A B C D E F 1 Задача распределения ресурсов 2 План выпуска Целевая функция Значение Доход от 1000 Доход от 1000 Деталь А Деталь В целевой деталей А деталей В 3 функции 4 1 1 1,2 2,5 3,7 5 6 Ограничения Левая часть Правая часть Расход материала системы (3) системы (3) 7 на 1000 деталей 8 Для R1 12 18 30 216 9 Для R2 14 16 30 224 10 Для R3 20 10 30 200 3.5.3. Оптимизация плана решения Основы оптимизации, описаны в п. 3.4. Диалоговое окно Поиск решения приведено на рис. 10 – а оптимальный план решения – в табл. 31.
Рис. 10
42
43
A 1 2
B
План выпуска
Деталь А Деталь В
3 4 5 6 7 8 9 10
0
12
Таблица 31 F
C D E Задача распределения ресурсов Целевая функция
Значение целевой функции 30
Доход от 1000 Доход от 1000 деталей А деталей В 1,2
2,5
Ограничения Расход материала Левая часть на 1000 деталей системы (3) Для R1 12 18 216 Для R2 14 16 192 Для R3 20 10 120
Правая часть системы (3) 216 224 200
3.6. Задача об оптимальном составе сплава
Для получения сплавов А и В используются четыре металла I, II, III и IV. Характеристики и запасы руд, из которых получают эти металлы, указаны в табл. 32. Требования к содержанию металлов I, II, III и IV в сплавах, а также стоимости одной тонны сплавов при продаже приведены в табл. 33. Необходимо максимизировать прибыль от продажи сплавов А и В. Таблица 32 Состав, % Максимальный запас, Цена, доллары Руда Другие тонны за тонну I II III IV компоненты 1 1000 20 10 30 30 10 30 2 2000 10 20 30 30 10 40 3 3000 5 5 70 20 0 50 Сплав Требование к содержанию металла Не более 80% металла I А Не более 30% металла II От 40% до 60% металла II В Не менее 30% металла II Не более 70% металла IV
Таблица 33 Цена одной тонны сплава, в долларах 200
210
Решение включает этапы, описанные в пп. 3.2-3.5. 3.6.1. Построение математической модели 1) Определение целевой функции Обозначим количество металлов I, II, III и IV, использованных для получения сплава А, переменными Х1А, Х2А, Х3А, Х4А. Количество металлов I, II,
44
III и IV, использованных для получения сплава В, обозначим переменными Х1В, Х2В, Х3В, Х4В. Для обозначения количества используемой руды введем переменные Y1, Y2, Y3. Объем производимого сплава А (в тоннах) равен Х1А+Х2А +Х3А +Х4А Аналогично объем сплава В равен Х1В+Х2В+Х3В +Х4В. Прибыль от продажи сплава А составит Z1=200(Х1А+Х2А +Х3А +Х4А) , (1) а прибыль от продажи сплава В равна Z2=210(Х1В+Х2В+Х3В +Х4В). (2) Стоимость руд, использованных при литье металлов, равна Z3=30Y1+40Y2+50Y3. (3) Тогда целевую функцию – прибыль предприятия – можно записать в виде разности между прибылью от продажи сплавов и затратами на руды Z=Z1+Z2-Z3 (4) Или, подставляя выражения (1), (2) и (3) получим Z=200(Х1А+Х2А +Х3А +Х4А)+ 210(Х1В+Х2В+Х3В +Х4В)-30Y1-40Y2-50Y3 (5) 2) Определение ограничений на переменные Можно выделить четыре вида ограничений: а) По физическому смыслу переменных – объемы используемых металлов и руд не могут быть отрицательными, следовательно
⎧ X i A ≥ 0, ⎪ ⎨ X i B ≥ 0, ⎪ Y ≥ 0, ⎩ i
i = 1,2,3,4 i = 1,2,3,4 i = 1,2,3
(6)
б) Ограничения на состав сплавов. Согласно табл.33, получаем
⎧ X 1 A ≤ 0.8( X 1A + X 2 A + X 3 A + X 4 A ) ⎪X ≤ 0.3( X 1A + X 2 A + X 3 A + X 4 A ) ⎪ 2A ⎪ X 2 B ≤ 0.6( X 1B + X 2 B + X 3B + X 4 B ) ⎨ ⎪ X 2 B ≥ 0.4( X 1B + X 2 B + X 3B + X 4 B ) ⎪ X 3B ≥ 0.3( X 1B + X 2 B + X 3B + X 4 B ) ⎪ ⎩ X 4 В ≤ 0.7( X 1B + X 2 B + X 3B + X 4 B )
в) Ограничения на состав металлов согласно табл. 32: ⎧ X 1A + X 1B ≤ 0.2Y1 + 0.1Y2 + 0.05Y3 ⎪ X + X ≤ 0.1Y + 0.2Y + 0.05Y ⎪ 2A 2B 1 2 3 ⎨ ⎪ X 3 A + X 3B ≤ 0.3Y1 + 0.3Y2 + 0.7Y3 ⎪⎩ X 4 A + X 4 B ≤ 0.3Y1 + 0.3Y2 + 0.2Y3 г) ограничения по запасам руды:
(7)
(8)
45
⎧ Y1 ≤ 1000 ⎪ (9) ⎨Y2 ≤ 2000 ⎪Y ≤ 3000 ⎩ 3 Итак, для решения задачи нужно найти такие значения расходуемых объемов металлов Х1А, Х2А, Х3А, Х4А, Х1В, Х2В, Х3В, Х4В и руд Y1, Y2, Y3, которые обеспечат максимальное значение целевой функции (5) при выполнении ограничений (6) – (9). 3.6.2. Построение начального плана решения 1) Отведем под переменные Х1А, Х2А , Х3А , Х4А диапазон ячеек В4:В7 электронной таблицы (в табл. 34 ЭТ приведена в режиме показа вычислений, в табл. 35 – в режиме показа формул).
A
B
C
D E F G H Оптимальный состав сплава
I
Таблица 34 J K
1 2 Сплав Состав металлов 3 Металл А В Руда II III IY 4 1 0 0 Номер Затраты Запас Цена I 5 2 0 0 1 0 1000 30 0,2 0,1 0,3 0,3 6 3 0 0 2 0 2000 40 0,1 0,2 0,3 0,3 7 4 0 0 3 0 3000 50 0,05 0,1 0,7 0,2 8 Ограничения 9 Левая часть Правая часть 10 0 0 11 0 0 12 0 0 13 0 0 14 0 0 15 0 0 16 0 0 17 0 0 18 0 0 19 0 0 20 Целевая функция 21 0 2) Для хранения переменных Х1В, Х2В, Х3В, Х4В отведем диапазон ячеек С4:С7 электронной таблицы. 3) В ячейках Е5:Е7 разместим значения переменных Y1, Y2, Y3. Для всех переменных начальные значения полагаем равными нулю.
46
4) В диапазоне ячеек F5:F7 вводим значения имеющихся запасов руды из второго столбца табл. 32. 5) В диапазон ячеек G5:G7 вводим цены за одну тонну руды из последнего столбца табл. 32. 6) В диапазон ячеек Н5:К7 помещаем характеристики состава руд из столбцов 3 – 6 табл. 32. 7) В ячейки диапазона А10:А15 вводим левые части ограничений (7). 8) В ячейки диапазона Е10:Е15 вводим правые части ограничений (7). 9) В ячейки диапазона А16:А19 вводим левые части ограничений (8). 10) В ячейки диапазона Е16:Е19 вводим правые части ограничений (8). 11)В ячейке А21 размещаем целевую функцию (5). 3.6.3. Оптимизация плана решения 1) Вызываем режим Поиск решения (Сервис – Поиск решения). 2) Заполняем окно Поиск решения согласно рис. 11. 3) Командой Выполнить запускаем режим Поиск решения. Результат его работы представлен в табл. 36. Таблица 35 A B C D E F G H I J K 1 Оптимальный состав сплава 2 Сплав 3 Металл А В Руда Состав металлов I II III IY 4 1 0 0 Номер Затраты Запас Цена 5 2 0 0 1 0 1000 30 0,2 0,1 0,3 0,3 6 3 0 0 2 0 2000 40 0,1 0,2 0,3 0,3 7 4 0 0 3 0 3000 50 0,05 0,05 0,7 0,2 8 Ограничения 9 Левая часть Правая часть 10 =В4 =0,8*СУММ(В4:В7) 11 =В5 =0,3*СУММ(В4:В7) 12 =С5 =0,6*СУММ(С4:С7) 13 =С5 =0,4*СУММ(С4:С7) 14 =С6 =0,3*СУММ(С4:С7) 15 =С7 =0,7*СУММ(С4:С7) 16 =СУММ(B4:C4) =СУММПРОИЗВ(E5:E7;H5:H7) 17 =СУММ(B5:C5) =СУММПРОИЗВ(E5:E7;I5:I7) 18 =СУММ(B6:C6) =СУММПРОИЗВ(E5:E7;J5:J7) 19 =СУММ(B7:C7) =СУММПРОИЗВ(E5:E7;K5:K7) 20 Целевая функция 21 =200*СУММ(B4:B7)+210*СУММ(C4:C7)-СУММПРОИЗВ(E5:E7;G5:G7)
47
Рис. 11
A
B
C
D E F G Оптимальный состав сплава
H
Таблица 36 I J K
1 2 Сплав Состав металлов 3 Металл А В Руда I II III IY 4 1 62,5 488 Номер Затраты Запас Цена 5 2 1 1000 30 0,2 0,1 0,3 0,3 0 650 1000 6 3 2 2000 40 0,1 0,2 0,3 0,3 2512,5 488 2000 7 4 3 3000 50 0,05 0,1 0,7 0,2 1500 0 3000 8 Ограничения 9 Левая часть Правая часть 10 62,5 3260 11 0 1222,5 12 650 975 13 650 650 14 487,5 487,5 15 0 1137,5 16 550 550 17 650 650 18 3000 3000 19 1500 1500 20 Целевая функция 21 896250
48
3.7. Задача о производстве красок Фабрика выпускает два вида красок: для внутренних работ (В) и наружных работ (Н). Для производства красок используются два исходных продукта Р1 и Р2. Максимально возможные суточные запасы этих продуктов, расходы на 1 т соответствующих красок и оптовые цены одной тонны приведены в табл. 37. Таблица 37 Максимально Расход исходных продуктов Исходный возможный запас, (в тоннах) на тонну краски продукт в тоннах Краска В Краска Н Р1 1 2 6 Р2 2 1 8 Оптовая цена за 2000 руб. 3000 руб. одну тонну Изучение рынка сбыта показало, что суточный спрос на краску Н никогда не превышает спроса на краску В более, чем на 1 т. Кроме того, установлено, что спрос на краску Н никогда не превышает 2 т в сутки. Какое количество краски каждого вида должна производить фабрика, чтобы доход от реализации продукции был максимальным? Решение включает три этапа, описанные в пп. 3.2-3.6. 3.7.1. Построение математической модели 1) Определение целевой функции Обозначим ХВ - суточный объем производства краски В; ХН - суточный объем производства краски Н. Целевой функцией будет суммарная суточная прибыль от производства красок: (1) Z=2000·ХВ + 3000 ·ХН 2) Определение ограничений на переменные На переменные ХВ и ХН накладывается три вида ограничений. а) Ограничение по физическому смыслу задачи – объём производства красок не может быть отрицательным. Следовательно, ⎧ХВ ≥0 (2) ⎨ ⎩Х Н ≥ 0 б) Ограничение по ресурсам. Расход исходного продукта для производства обоих видов красок не может превосходить максимально возможный запас данного исходного продукта. Таким образом, Для Р1 ⎧ ХВ + 2⋅ ХН ≤6 (3) ⎨ Для Р1 ⎩2 ⋅ Х В + 2 ⋅ Х Н ≤ 8 в) Ограничения на величину спроса краски имеют вид: ⎧Х Н − Х В ≤ 1 (4) ⎨ ⎩ ХН ≤2
49
Итак целью фабрики является определение среди множества допустимых значений ХН и ХВ таких, которые обеспечат максимальное значение целевой функции (1) при выполнении ограничений (2) – (4). 3.7.2. Построение начального плана решения Создадим электронную таблицу для реализации решения (табл.38 - ЭТ в режиме показа формул, табл.39 - ЭТ в режиме показа вычислений). В ячейкахА3:В4 размещен начальный план выпуска красок. Поскольку сразу определить оптимальный план выпуска не удастся, считаем, что начальные объёмы производства красок равны нулю
1 2
Таблица 38 A B Оптимизация производства красок Переменные
3 4 5 6 7 8 9 10 11 12
Х1 Х2 0 0 Целевая функция =3000*А4+2000*В4 Ограничения Левая часть Правая часть =А4+2*C4 6 =2*А4+C4 8 =CА-B4 1 =C4 2
1 2 3 4 5
Таблица 39 A B Оптимизация производства красок Переменные Х1 Х2 0 0 Целевая функция
6 7 8 9 10 11
0 Ограничения Левая часть Правая часть 0 6 0 8 0 1
12
0
2
Строки 5 и 6 отведены для вычисления целевой функции. В ячейках А9:А12 вычисляются левые части ограничений (2) – (4) для текущего объёма производства красок, а в ячейках В9:В12 находятся правые части этих ограничений. 3.7.3. Оптимизация плана решения 1) Запускаем средство Поиск решения (Сервис – Поиск решения). 2) Установим в окне Поиск решения параметры, показанные на рис. 12 3) Щелкнем по кнопке Выполнить. Результат приведен в табл. 40.
50
Рис. 12
1 2 3 4 5 6 7 8 9 10 11 12
Таблица 40 A B Оптимизация производства красок Переменные Х1 Х2 3,33333333 1,33333333 Целевая функция 12666,66667 Ограничения Левая часть Правая часть 6 6 8 8 1 -2 2 1,3333333
4. Проектирование баз данных (БД) 4.1. Основные понятия В широком смысле слова база данных - это совокупность сведений о конкретных объектах реального мира в какой-либо области. Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро извлекать выборку с произвольным сочетанием признаков. Сделать это возможно, только если данные структурированы. Структурирование - это введение соглашений о способах представления данных. Неструктурированными называют данные, записанные, например, в текстовом файле.
51
На рис.13 приведен пример неструктурированных данных, содержащих сведения о студентах (номер личного дела, фамилию, имя, отчество и год рождения). Понятно, что организовать поиск необходимых данных, хранящихся в неструктурированном виде сложно, а упорядочить подобную информацию практически не представляется реальным. Личное дело №16495, Сергеев Петр Михайлович, дата рождения 1 января 1976г.; Л/д №16593, Петрова Анна Владимировна, дата рожд.15 марта 1975г.; № личн. дела 16693, д.р. 14.04.76, Анохин Андрей Борисович Рис. 13 Чтобы автоматизировать поиск и систематизировать эти данные, необходимо выработать определенные соглашения о способах представления данных, т.е. дату рождения нужно записывать одинаково для каждого студента, она должна иметь одинаковую длину и определенное место среди остальной информации. Эти же замечания справедливы и для остальных данных (номер личного дела, фамилия, имя, отчество). Структурированная запись данных приведена в табл. 41. Таблица 41 № личного Дата Фамилия Имя Отчество дела рождения 16493 Сергеев Петр Михайлович 01.01.76 16593 Петрова Анна Владимировна 15.03.75 16693 Анохин Андрей Борисович 14.04.76 Итак, база данных (БД) - это поименованная совокупность структурированных данных, относящихся к определенной предметной области. Система управления базами данных (СУБД) - это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации. 4.1.1. Структурные элементы базы данных Понятие базы данных тесно связано с такими понятиями, как поле, запись, отношение, файл, ключ. Поле - элементарная единица логической организации данных. В двумерной таблице поле – один из столбцов таблицы. При создании БД нужно предварительно описать все поля. Для описания поля используются следующие характеристики: имя (например, Фамилия, Имя, Отчество, Дата рождения – т. е. название столбца таблицы); тип (например, символьный, числовой, календарный – в памяти компьютера разный тип информации кодируется различным образом. Для поля Фамилия задается символьный тип информации, для поля Дата рождения – календарный); длина (например, 15 символов, причем длина будет определяться максимально возможным количеством символов в данном поле и служит для предварительного задания ширины столбца. Так для поля Фамилия достаточно
52
задать длину 15 символов, поскольку большинство фамилий не содержит более 15 букв, а для столбца Пол достаточно одного символа, т.к. туда будет вводится признак пола – одна буква “м” или буква “ж”); точность – необходимо задавать ее только для числовых данных (например, два десятичных знака для отображения дробной части числа 15.28); Запись (рис.14) - совокупность логически связанных полей. Экземпляр записи - отдельная реализация записи, содержащая конкретные значения ее полей т.е. одна строка двумерной таблицы. (В табл. 41 один экземпляр записи характеризует студента Сергеева, второй - Петрова). Имя поля 1
Имя поля 2
Имя поля 3 Запись
Рис.14 Отношение – совокупность однородных записей (одна таблица, например, табл. 41). Файл - совокупность объектов одной базы данных. Обычно база данных включает следующие объекты: Таблицы (для хранения данных). Запросы (для отбора информации). Формы (для просмотра, ввода и вывода информации). Отчеты (для подготовки информации к печати). Ключ – это поле, по которому можно однозначно найти любую запись в БД. В табл. 41 ключом является № личного дела. Если, например, выбрать в качестве ключа поле Фамилия, то однозначность поиска нужной записи о студенте не будет обеспечена, т.к. в любой достаточно большой БД обязательно окажется несколько студентов с фамилией Иванов, Смирнов и т.д. Описание логической структуры записи файла содержит последовательность расположения полей записи и их основные характеристики, как это показано в табл. 42. Таблица 42 Имя файла Поле Формат поля Признак Имя Полное Точность ключа Тип Длина (обозн.) наименов. (для чисел) Имя 1 ... Имя n
Как видно из табл. 42, кроме уже известных характеристик, в структуре записи файла указываются поля, значения которых являются ключами. В табл.43 приведен пример описания логической структуры записи файла (таблицы) СТУДЕНТ, содержимое которого приводится на рис.13.
53
Таблица 43 Имя файла Поле Обозначение Полное в БД наименование Номер № личн. дела Фамилия Фамилия студ Имя Имя студента Отчество Отчество студ Дата Дата рождения
Признак ключа ключ
Тип Числ. Текст. Текст. Текст. Дата
Формат поля Точность Длина (для чисел) 5 15 10 15 8
4.1.2. Реляционная модель данных Существует несколько типов (моделей) организации БД: иерархический, сетевой, реляционный. В настоящее время наиболее распространенной является реляционная модель. Понятие реляционный (англ. relation - отношение) связано с разработками известного американского специалиста в области баз данных Е. Кодда. Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных. Реляционная модель представляет собой организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами: - каждый элемент таблицы - один элемент данных; - все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковые тип (числовой, символьный и т.д.) и длину; - каждый столбец имеет уникальное имя; - одинаковые строки в таблице отсутствуют; - порядок следования строк и столбцов может быть произвольным. Наиболее популярные СУБД (Paradox, FoxPro, Access) основаны на использовании реляционной модели данных. Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе (табл.44) Таблица 44 № личного Дата Фамилия Имя Отчество Группа дела рождения 16493 Сергеев Петр Михайлович 01.01.76 111 16593 Петрова Анна Владимировна 15.03.75 112 16693 Анохин Андрей Борисович 14.04.76 111
Таблицы БД в реляционных моделях называются отношениями, строки соответствуют записям, а столбцы - атрибутам отношений (полям). Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи можно однозначно определить только значениями нескольких полей, то такая
54
таблица базы данных имеет составной ключ. В примере, показанном в табл. 44, простым ключевым полем таблицы является "№ личного дела". Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей). На рис. 15 показан пример реляционной модели, построенной на основе отношений (таблиц): СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ. СТУДЕНТ (Номер)
СТИПЕНДИЯ (Результат) СЕССИЯ (Номер) (Результат)
Рис. 15 Таблицы, входящие в состав модели рис.15, могут включать, например, следующие поля: СТУДЕНТ(Номер, Фамилия, Имя, Отчество, Пол, Дата рождения, Группа); СЕССИЯ (Номер, Оценка1, Оценка2, Оценка3, Оценка4, Результат); СТИПЕНДИЯ (Результат, Процент). Выделенные поля в описанных таблицах являются ключевыми. Поле Номер - это номер личного дела студента. Поле Результат – средний балл студента за сессию. Таблицы СТУДЕНТ и СЕССИЯ имеют совпадающие ключи (Номер), что дает возможность легко организовать связь между ними. Таблица СЕССИЯ имеет первичный ключ Номер и содержит внешний ключ Результат, который обеспечивает ее связь с таблицей Стипендия. 4.1.3. Нормализация отношений Одни и те же данные могут группироваться в таблицы (отношения) различными способами. Возможная организация различных наборов отношений должна быть рациональной, т.е. исключающей дублирование данных и упрощающей процедуры их обработки и обновления. Нормализация отношений формальный аппарат ограничений на формирование отношений (таблиц), который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение (ввод, корректировку) базы данных. Е. Коддом выделены три нормальные формы отношений и предложен механизм, позволяющий любое отношение преобразовать к третьей (самой совершенной) нормальной форме. Первая нормальная форма Отношение называется нормализованным или приведенным к первой нормальной форме, если все его атрибуты простые (далее неделимы). Преобразование отношения к первой нормальной форме может привести к увеличению количества реквизитов (полей) таблицы и изменению ключа.
55
Например, отношение Студент (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой нормальной форме. (Каждое поле однозначно описывает какую-то характеристику студента. Ни одно поле не требует дополнительных разъяснений). Отношение Студент1 (Номер, Фамилия, Имя, Отчество, Группа, Дети) не находится в первой нормальной форме, т.к. студент может иметь несколько детей и тогда об одном и том же студенте придется ввести в таблицу несколько записей. Например, пусть студент Иванов Иван Иванович, номер личного дела 11111 учится в 215 группе и имеет двоих детей - Максима и Ольгу. Тогда таблица с записью о нем будет иметь вид табл. 45. Таблица 45 Имя Имя Возраст Номер Фамилия Отчество Группа студента ребенка ребенка 11111 Иванов Иван Иванович 215 Максим 10 11111 Иванов Иван Иванович 215 Ольга 3 Чтобы привести отношение СТУДЕНТ1 к первой нормальной форме, нужно разбить эту таблице на две: СТУДЕНТ1 (Номер, Фамилия, Имя, Отчество, Группа) ДЕТИ (Номер, Имя ребенка, Возраст ребенка). Теперь каждая из таблиц СТУДЕНТ1 и ДЕТИ не содержат повторной информации, т.е. БД приведена к первой нормальной форме. Вторая нормальная форма. Чтобы рассмотреть вопрос приведения отношений ко второй нормальной форме, необходимо дать пояснения к таким понятиям, как функциональная зависимость и полная функциональная зависимость. Функциональная зависимость реквизитов - зависимость, при которой в одном экземпляре информационного объекта определенному значению ключа соответствует только одно значение описательного реквизита. В случае составного ключа вводится понятие функционально полной зависимости. Функциональная полная зависимость неключевых атрибутов заключается в том, что каждый неключевой атрибут функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа. Отношение будет находиться во второй нормальной форме, если оно находится в первой нормальной форме, и каждый неключевой атрибут функционально полно зависит от составного ключа. Отношение Студент (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой и во второй нормальной форме одновременно, так как описательные реквизиты однозначно определены и функционально зависят от ключа Номер. Отношение Успеваемость (Номер, Фамилия, Имя, Отчество, Дисциплина, оценка) находится в первой нормальной форме и имеет составной ключ Номер + Дисциплина. Это отношение не находится во второй нормальной форме, так как атрибуты Фамилия, Имя, Отчество не находится в полной функциональной зависимости с составным ключом отношения.
56
Чтобы привести это отношение ко второй нормальной форме, следует разбить его на два: Успеваемость (Номер, Фамилия, Имя, Отчество, Дисциплина) и Дисциплина (Дисциплина, Оценка). Третья нормальная форма. Понятие третьей нормальной формы основывается на понятии нетранзитивной зависимости. Транзитивная зависимость наблюдается в том случае, если один из двух описательных реквизитов зависит от ключа, а другой описательный реквизит зависит от первого описательного реквизита. Отношение будет находиться в третьей нормальной форме, если оно находится во второй нормальной форме, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. Если в состав описательных реквизитов информационного объекта Студент включать фамилию старосты группы (Староста), которая определяется только номером группы, то одна и та же фамилия старосты будет многократно повторяться в разных экземплярах данного информационного объекта. В этом случае наблюдаются затруднения в корректировке фамилии старосты в случае назначения нового старосты, а также неоправданный расход памяти для хранения дублированной информации. Для устранения транзитивной зависимости описательных реквизитов необходимо провести "расщепление" исходного информационного объекта. В результате расщепления часть реквизитов удаляется из исходного информационного объекта и включается в состав других (возможно, вновь созданных) информационных объектов. "Расщепление" информационного объекта, содержащего транзитивную зависимость описательных реквизитов, показано на рис.16. Как видно из рис.16, исходный информационный объект Студент группы представляется в виде совокупности правильно структурированных информационных объектов (Студент и Группа), реквизитный состав которых тождественен исходному объекту. Отношение Студент (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится одновременно в первой, второй и третьей нормальной форме. Студент группы Номер* Фамилия Имя Отчество = Дата Группа Староста
Студент Номер* Фамилия Имя Отчество Дата Группа
Группа Группа* + Староста
Рис.16 4.1.4. Типы связей Все информационные объекты предметной области связаны между собой. Различаются связи нескольких типов, для которых введены следующие обозначения: - один к одному (1:1); - один ко многим (1:М) или (1:∞);
57
- многие ко многим (М:М) или (∞:∞). Рассмотрим эти типы связей на примере. Дана совокупность информационных объектов, отражающих учебный процесс в вузе: СТУДЕНТ (Номер, Имя, Отчество, Пол, Дата рождения, Группа) СЕССИЯ (Номер, Оценка1, Оценка2, Оценка3, Оценка4, Результат) СТИПЕНДИЯ (Результат, Процент) ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество). Связь один к одному (1:1) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует не более одного экземпляра информационного объекта В и наоборот. Рис.17 иллюстрирует указанный тип отношений. А1 А2 А3
В1 А
В
В2 Рис. 17
Примером связи 1:1 может объектами СТУДЕНТ и СЕССИЯ: СТУДЕНТ
служить связь между информационными
СЕССИЯ
Каждый студент имеет определенный набор экзаменационных оценок в сессию. При связи один ко многим (1:М) одному экземпляру информационного объект А А соответствует 0,1 или больше экземпляров объекта В, но каждый экземпляр объекта В связан не более чем с 1 экземпляром объекта А. Графически данное соответствие имеет вид, представленный на рис.18 А1 А2 А3
В1 В2 В3
А
В
Рис. 18 Примером связи 1:М служит связь между информационными объектами СТИПЕНДИЯ и СЕССИЯ: СТИПЕНДИЯ
СЕССИЯ
Установленный размер стипендии по результатам сдачи сессии может повторяться многократно для различных студентов. Связь многие со многими (М:М) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует 0,1 или более экземпляров объекта В и наоборот. На рис.19 графически представлено указанное соответствие. А1 А2 А3
В1 В2 В3
А
В Рис.19
58
Примером данного отношения служит связь ными объектами СТУДЕНТ и ПРЕПОДАВАТЕЛЬ: СТУДЕНТ
между информацион-
ПРЕПОДАВАТЕЛЬ
Один студент обучается у многих преподавателей, один преподаватель обучает многих студентов.
4.2. Основные этапы проектирования, создания и ведения баз данных Задание курсовой работы по проектированию баз данных рекомендуется выполнять в соответствии со следующими этапами (обычный порядок проектирования баз данных). 1. Обследование предметной области и выявление объектов, сведения о которых должны храниться в базе данных (перечень атрибутов). 2. Выбор системы управления базами данных. 3. Конструирование схемы базы данных (разработка информационнологической модели БД). 4. Создание схем базы данных для машинных носителей. 5. Заполнение таблиц данными (не менее 10 записей). 6. Реализация запросов. Составление программ реализации запросов. Проверка запросов на контрольном примере. 7. Составление инструкции по технологии ведения базы данных.
4.3. Пример выполнения курсовой работы по проектированию баз данных Постановка задачи. Пусть требуется разработать базу данных, в которой бы хранились данные о результатах сдачи экзаменов каждым студентом одного факультета за весь период обучения. Назовем такую базу данных "Студент". 4.3.1. Отбор атрибутов, сведения о которых должны храниться в БД В соответствии с заданием, в БД должны храниться следующие сведения о студентах: - номер зачетной книжки; - фамилия; - имя; - отчество; - дата рождения; - пол; - шифр специальности; - название специальности; - курс; - номер семестра; - название дисциплины; - название кафедры; - число учебных часов по дисциплине;
59
- оценка; - дата сдачи экзамена. 4.3.2. Выбор системы управления базами данных (СУБД). В последнее время широкое распространение приобрела СУБД Access, входящая в состав Microsoft office. Она реализует реляционную модель данных. Краткие сведения о СУБД Access База данных в Access представляет собой единый большой объект, который объединяет такие составляющие, как таблицы, отчеты, запросы, формы и т.д. и позволяет хранить их в одном файле. Основным структурным элементом БД является таблица. Каждая таблица содержит записи определенного вида, например, о студентах, обучающихся в учебном заведении. Каждый объект и элемент управления имеет свои свойства, определяя которые можно настраивать объекта и элементы управления. Таблицы создаются пользователем для хранения данных по одному объекту модели данных предметной области. Запросы создаются пользователем для выборки нужных данных из одной или нескольких связанных таблиц. С помощью запроса можно также обновить, удалить или добавить данные в таблицы или создать новые таблицы на основе уже существующих. Формы предназначены для ввода, просмотра и корректировки взаимосвязанных данных базы на экране в удобном виде, который может соответствовать привычному для пользователя документу. Формы также могут использоваться для создания панелей управления в приложении пользователя. Отчеты предназначены для формирования выходного документа, предназначенного для вывода на печать. Макросы содержат описание действий, которые должны быть выполнены в ответ на некоторое событие, каждое действие реализуется макрокомандой. Выбор макрокоманд и задание параметров, используемых ими при выполнении, является простой автоматизированной операцией. Макрос позволяет объединить разрозненные операции обработки данных в приложениях. Модули содержат программы на языке Vigual Basic, которые могут разрабатываться пользователем для реализации нестандартных процедур при создании приложения. Создание таблицы БД в Access Создание таблицы в БД состоит из 2-х этапов. На первом этапе определяется ее структура: состав полей, их имена, последовательность размещения в таблице, тип данных, размер, ключевые поля и другие свойства полей. На втором этапе производится создание записей таблицы и заполнение их данными. Для создания таблицы надо в окне БД выбрать вкладку Таблицы и нажать кнопку Создать. Затем выбрать способ создания таблицы: Режим таблицы, Конструктора или Мастера таблиц. Режим Конструктора определяет
60
основной способ, при котором структура таблицы полностью задается пользователем. Для определения поля задаются Имя поля, Тип поля, Описание, а также Общие свойства. Имя поля. Каждое поле в таблице должно иметь уникальное имя, удовлетворяющее соглашениям об именах объектов в Access. Тип данных. Тип данных определяется значениями, которые предполагается вводить в поле, и операциями, которые будут выполняться с этими значениями. В Access допускается использование 8 типов данных: текстовый, МЕМО (текст большого размера), числовой, денежный, дата/время, счетчик, логический, поле объекта ОLE. Общие свойства поля: • Размер поля – задает максимальный размер данных, сохраняемых в поле. • Формат поля – задает формат отображения данных на экране или на печати. • Число десятичных знаков – задается для числового и денежного типов данных число знаков после запятой. • Подпись поля – задает текст, который выводится в заголовках таблиц, форм, отчетов. • Условие на значение – задает ограничения на вводимые значения и позволяет осуществлять контроль ввода. • Сообщение об ошибке – задает текст сообщения, который выводится на экран при нарушении условия на значение. Определение ключа – для определения ключа выделяются поля, составляющие ключ и нажимается кнопка Ключевое поле. Ключевые поля всегда уникальны и не допускают пустых полей в записях. После сохранения таблицы с нужным именем делается доступным режим таблицы, позволяющий перейти к созданию записей. Непосредственный ввод данных в таблицу осуществляется в режиме Таблица. Для перехода в этот режим в окне БД надо выбрать нужную таблицу и нажать кнопку Открыть. В открывшуюся таблицу можно вводить новые записи, заполняя значениями поля. Замечание! Заполнять БД следует по строкам. Нельзя оставлять пустые поля (столбцы). 4.3.3. Проектирование схемы БД (разработка информационно-логической модели) Согласно п.4.3.1, в БД нужно хранить 15 атрибутов. Свести их в двумерную таблицу невозможно. Отберем атрибуты, которые можно поместить в одной таблице. Очевидно, что атрибуты “Номер зачетной книжки”, “Фамилия”, “Имя”, “Отчество”, “Дата рождения”, “Пол”, “Специальность”, “Шифр специальности”. Если же ввести в эту таблицу атрибут “Курс”, получается, что все вышеперечисленные данные о студенте придется повторить столько раз,
61
сколько курсов он отучился (т.е. наша таблица из двумерной превращается в трехмерную). На каждом курсе студент изучает много дисциплин и получает по ним оценки. Значит, введение сведений об экзаменах опять приведет к необходимости дублирования информации о каждом студенте (таблица становится четырехмерной). Чтобы избежать этого, проводим нормализацию отношений (см.п.4.2), т.е. разбиваем атрибуты по таблицам так, чтобы избежать повторных записей. Очевидно, что все атрибуты БД “Студент” можно записать в виде трех двумерных таблиц (рис. 20). СТУДЕНТ Номер
ВЕДОМОСТЬ
1
М
Фамилия
1
Номер Дисциплина
Имя
Семестр
Отчество
Оценка
Дата рождения
Дата сдачи
Пол Специальность Шифр специальности
Учебный план Дисциплина
Курс Число учебных часов Кафедра Рис. 20
1
62
Первая таблица БД Студент имеет ключ Номер и связывается со второй таблицей Ведомость по этому ключу. Тип связей этих таблиц 1:М или (1:∞), т.к. каждый студент сдает много экзаменов. Таблица Ведомость имеет два ключа (составной ключ). Ключ Номер используется для связи с таблицей Студент, а ключ Дисциплина – для связи с таблицей Учебный план. Таблица Учебный план имеет ключ Дисциплина. Тип связей таблицы Ведомость и Учебный план 1:1. Такое распределение всех атрибутов БД по трем таблицам обеспечивает отсутствие повторяющихся записей о каждом студенте, а наличие связей этих таблиц по ключам обеспечивает возможность обращения сразу ко всем таблицам. 4.3.4. Создание схем таблиц БД для машинных носителей (разработка логической структуры БД) Как уже отмечалось, первый этап создания таблицы БД в Access заключается в описании структуры таблицы. Следует указать имена всех полей, тип хранящейся в них информации, размер поля. Для дробных чисел нужно также установить точность (количество знаков после запятой), для данных типа Дата/Время – формат (например, краткий – 20.10.05, полный – 20 октября 2005 г.) Опишем схему (структуру) таблиц СТУДЕНТ (табл.46), ВЕДОМОСТЬ (табл.47) и УЧЕБНЫЙ ПЛАН (табл.48). СТУДЕНТ Таблица 46 Ключ Имя поля Тип информации Размер Формат Номер Числовой Длинное целое Β Фамилия Текстовый 15 Имя Текстовый 15 Отчество Текстовый 15 Дата рождения Числовой Целое Пол Текстовый 1 Специальность Текстовый 50 Шифр специальности Текстовый 6 ВЕДОМОСТЬ Ключ Имя поля Тип информации Номер Числовой Β Дисциплина Текстовый Β Семестр Текстовый Оценка Текстовый Дата сдачи Дата/Время
Таблица 47 Размер Формат Длинное целое 20 6 10 Краткий
УЧЕБНЫЙ ПЛАН Ключ Имя поля Тип информации Дисциплина Текстовый Β Курс Числовой Число учебных часов Числовой Кафедра Текстовый
Таблица 48 Размер Формат 20 Целое Целое 30 -
63
Для создания структуры каждой таблицы в Access следует: в окне БД щелкнуть по кнопке Создать. В окне создание БД выбрать Конструктор и в окне Конструктор ввести имена полей и их характеристики. 4.3.5. Заполнение таблиц БД данными. После того как создана и сохранена в СУБД структура каждой таблицы, можно заполнить эти таблицы данными. Произведем заполнение данными таблицы СТУДЕНТ (табл.49), ВЕДОМОСТЬ (табл.50) и УЧЕБНЫЙ ПЛАН (табл.51). Обратите внимание! Ключевые записи во всех таблицах должно быть одинаковыми! В противном случае при объединении этих таблиц в одну БД невозможно будет организовать к ней запросы.
Номер Фамилия 67136 Егорова
Имя Анна
СТУДЕНТ Дата Отчеств рож- Пол о дения
Ивановна 1980
ж
96345 Смирнова Ольга Павловна 1983 87988 Соболев Александр Петрович 1982 86712 Иванов Иван Иванович 1981
ж м м
ВЕДОМОСТЬ Номер Дисциплина Семестр 67136 Информатика Первый 96345 Высшая математика Второй 87988 Физика Первый 86712 Философия второй
Дисциплина Информатика Высшая математика Физика Философия
Таблица 49 Шифр Специальспециальность ности Системотех220100 ника Менеджмент 061100 Сварка 120500 Экономика 060800
Оценка Отлично Хорошо Неудовл. Удовл.
Таблица 50 Дата сдачи 23.01.00 08.06.00 25.01.00 19.05.00
УЧЕБНЫЙ ПЛАН Таблица 51 Число учебных Курс Кафедра часов Информатики и вычислительной 1 250 математики
2
160
Высшей математики
2 1
200 170
Физики Истории и философии
Для заполнения своей БД в Access следует: выделить имя таблицы и щелкнуть по кнопке Открыть. 4.3.6. Создание схемы БД в Access Выполнив команды Сервис – Схема данных, связать все таблицы по ключам. 4.3.7. Формирование запросов Для разработанной трехтабличной БД можно организовать следующие запросы:
64
- Студенты конкретной специальности (например, менеджмент); - Студенты, имеющие оценки выше, ниже или равную указанной (например, создать список студентов, имеющих оценки выше “удовлетворительной” или список всех студентов, имеющих оценку “неуд.”); - Список студентов-мужчин; - Список студентов-женщин; - Список студентов, родившихся до 1983 г. и т.д. а) Для создания запросов в Access следует: в окне БД выбрать вкладку Запрос, щелкнуть по кнопке Создать. б) В диалоговом окне Создание запроса выбрать режим Простой запрос, щелкнуть по кнопке Ок. (Появится окно Запрос-выборка). в) Выделить Мастер запросов, щелкнуть по Ок. г) С помощью Мастера отобрать из трех связанных по ключам таблиц нужную информацию. Появится таблица Запрос. д) Для формирования условий запроса нужно сначала войти в режим Конструктор запросов (рис.22)
Рис. 22 е) В окне Конструктор запросов в строке Условие отбора в нужном столбце ввести условие отбора (например, для формирования списка студентов – мужчин в столбце “Пол” ввести “М”) и щелкнуть по пиктограмме ! (выполнить) (появится таблица, включающая только список студентов – мужчин рис. 23)
65
Рис. 23
66
Приложение ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования
Северо-Западный государственный заочный технический университет Кафедра информатики
КУРСОВАЯ РАБОТА по ИНФОРМАТИКЕ Тема: Системы принятия решения и оптимизации в Excel, конструирование баз данных в Access
Выполнил студент: Факультет: Курс: Специальность: Шифр: Проверил преподаватель: Оценка: Подпись преподавателя: Дата:
Санкт-Петербург 2005
67
Содержание
1. ОБЩИЕ УКАЗАНИЯ.................................................................................................. 3 Литература............................................................ Ошибка! Закладка не определена. 2. Разработка систем принятия решений ...................................................................... 3 2.1. Краткие сведения о системах принятия решения (экспертных системах)......... 3 2.2. Разработка системы принятия решения об аттестации знаний абитуриента .... 4 2.3. Разработка системы принятия решений о продаже акций предприятия............ 9 2.4. Разработка системы принятия решений о диагностике неисправности телевизора....................................................................................................................... 13 3. Оптимизация управленческих и экономических задач......................................... 20 3.1. Принципы решения задач оптимизации .............................................................. 20 3.2. Решение транспортной задачи .............................................................................. 22 3.3. Решение задачи о штате фирмы............................................................................ 27 3.4. Задача планирования выпуска продукции........................................................... 35 3.5. Задача о распределении ресурсов......................................................................... 39 3.6. Задача об оптимальном составе сплава................................................................ 43 3.7. Задача о производстве красок ............................................................................... 48 4. Проектирование баз данных (БД)............................................................................ 50 4.1. Основные понятия .................................................................................................. 50 4.2. Основные этапы проектирования, создания и ведения баз данных.................. 58 4.3. Пример выполнения курсовой работы по проектированию баз данных......... 58 Приложение.................................................................................................................... 66