Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системы массового обслуживания в сфере туризма...doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
915.46 Кб
Скачать

Математическая модель

Пусть

X1 – количество референтов с выходными понедельник и вторник,

X2 – количество референтов с выходными вторник и среда,

X3 – количество референтов с выходными среда и четверг,

X4 – количество референтов с выходными четверг и пятница,

X5 – количество референтов с выходными пятница и суббота,

X6 – количество референтов с выходными суббота и воскресение,

X7 – количество референтов с выходными воскресение и понедельник.

Недельная зарплата сотрудников составит

f(x) = 50401 + х2 + х3+ х4 + х5 + х6 + х7)-> min.

Ограничения задачи имеют вид:

х2 + х3 + х4 + х5 + х6 3 - ограничение по понедельникам

х3 + х4 + х5 + х6 + х7 4 - ограничение по вторникам

х4 + х5+ х6 + х7 + х1 3 - ограничение по средам

х5 + х6 + х7 + х1 + х2 4 - ограничение по четвергам

х6 + х7 + х1 + х2 + х3 6 - ограничение по пятницам

х7 + х1 + х2+ х3 + х4 6 - ограничение по субботам

х1 + х2 + х3+ х4 + х5 6 - ограничение по воскресениям

Составим график работы операторов. Сначала нужно придумать способ представления данных для решения задачи. Идея состоит в следующем: если ввести на рабочий лист квадратную таблицу 77, описывающую различные графики предоставления выходных, в которой отметить единицами рабочие дни, а нулями — выходные, а рядом поместить столбец с количеством работников, имеющих данный график работы, то будет легко подсчитать общее количество имеющихся работников в каждый конкретный день недели: достаточно умножить каждую строку из нулей и единиц, описывающую график, на число работников, имеющих этот график, а затем сложить все эти величины. Получившиеся значения должны быть не меньше заданных минимальных значений (рис. 3.1).

Теперь введем на рабочий лист необходимые исходные данные и определим их взаимосвязи с результирующими данными.

 A1 График работы референтов <Enter>

 A3 Выходные дни <Tab> <Tab> Число занятых <Tab>

Отформатируем ширину столбцов будущей таблицы 7*7, описывающей график работы, для того, чтобы данные удобно помещались на рабочий лист:

 E:K  Формат  Столбец  Ширина… Ширина столбца := 4  OK

Рис. 3.1. Рабочий лист с исходными данными для решения задачи

Введем названия дней недели, и при этом воспользуемся возможностью заполнения ряда данных в ячейках с помощью встроенных списков. Сначала введите первый день недели:

 E3 Пн <Enter>

а затем, установив указатель мыши на маркер заполнения, буксируйте выделение до ячейки K3. Выделенные ячейки будут автоматически заполнены элементами стандартного встроенного списка дней недели.

Затем введем в диапазон A4:A10 список выходных дней, в диапазон C4:C10 — количество сотрудников парка, имеющих соответствующие выходные дни, и наконец, в прямоугольном диапазоне E4:K10 проставим нули в ячейках, соответствующих выходным дням, и единицы в ячейках, соответствующих рабочим дням — так, как это представлено на рис. 3.1. Исходные данные помещены на рабочий лист.

Приступим к вводу формул, описывающих количество работающих сотрудников. Эти формулы описывают зависимость итоговых данных от исходных данных. Поместим в ячейку С14 формулу общего количества сотрудников фирмы, а в диапазон ячеек E14:K14 — формулы количества работающих сотрудников по соответствующим дням недели. Что касается общего количества сотрудников в ячейке C14, то тут все просто: нужно просто ввести формулу суммы для диапазона C4:C10.

 C14   (Автосумма)  C4:C10 <Enter>

Введем формулы для вычисления работающих в соответствующий день недели (в диапазоне E14:K14). В этот диапазон нужно поместить суммы только тех значений ячеек из C4:C10, которые соответствуют сотрудникам, не имеющим в этот день недели выходной. Например, в ячейке E14 должна стоять сумма диапазона C5:C9, а в ячейке G4 должна стоять сумма ячейки С4 и диапазона С7:С10. Можно, конечно, ввести семь различных сумм — по пять слагаемых в каждую из этих ячеек, но мы поступим иначе. В самом деле, если мы просуммируем не просто диапазон С4:С10, а предварительно умножим каждую ячейку этого диапазона на соответствующую ячейку из столбца таблицы, описывающего график работы, то умноженные на ноль значения окажутся исключенными из суммы, что собственно нам и нужно. На математическом языке такое поэлементное перемножение столбцов с последующим суммированием называется скалярным произведением векторов. Но мы применим еще одну хитрость: воспользуемся формулами массивов Excel, которые позволяют использовать в качестве аргументов функций диапазоны ячеек. Вот как мы поступим с ячейкой E14:

 E14    C4:C10 <F 4> *  E4:E10 <Ctrl> + <Shift> + <Enter>

Дадим здесь некоторые пояснения к этой формуле массива и способу ее ввода. Мы используем здесь как абсолютные, так и относительные ссылки. С помощью клавиши <F4> мы изменили относительную ссылку на диапазон ячеек C4:C10 в формуле суммирования на абсолютную. Вот зачем это нужно: поскольку мы собираемся распространить формулу из ячейки E14 в другие ячейки диапазона E14:K14, но при этом постоянно должны ссылаться на диапазон C4:C10, необходимо, чтобы эта ссылка была абсолютной. Второй аргумент — диапазон E4:E10 должен быть относительным, то есть эта ссылка должна изменяться в соответствии с расположением формулы.

Поскольку аргументом функции СУММ является скалярное произведение двух диапазонов ячеек, то завершить ввод такой формулы следует нажатием комбинации клавиш <Ctrl> + <Shift> + <Enter>. Эта формула должна быть формулой массива (или, как их еще иногда называют, "табличной формулой") — ведь мы использовали в ней в качестве аргументов ссылки на диапазоны ячеек.

Теперь установим указатель мыши на маркер выделения в ячейке E14, и отбуксируем его до ячейки K14 — и нужные формулы будут распространены на весь интересующий нас диапазон. Именно для того, чтобы это можно было сделать, мы и пользовались и абсолютными, и относительными ссылками при составлении исходной формулы в ячейке E14.

Нужно еще ввести данные о необходимом количестве работников в каждый из дней недели. Эти данные будут использованы как ограничения решаемой задачи:

 E15:K15 16 <Tab> ; 12 < Tab > ; 14 < Tab > ; 16 < Tab > 18 < Tab > ; 25 < Tab > ; 25 < Tab >

Остались последние детали — добавить формулу для общей заработной платы и необходимые текстовые комментарии, а также при желании выполнить дополнительное форматирование ячеек рабочего листа:

 E13:K13 по дням недели  Объединить и поместить в центре

 B14:B17 Всего <Tab> Требуется <Tab> Почасовая зарплата работника <Tab> Общая недельная зарплата <Tab>

 По правому краю  Размер  8

 C16:C17 50 <Enter> =40*  C14 *  C16 <Enter>

Отформатировать рабочий лист для придания ему дополнительной наглядности мы предоставляем вам самостоятельно: как обычно, для выполнения подобных действий существует несколько различных способов. Это можно сделать просто с помощью кнопок панели инструментов Форматирование или же с помощью диалогового окна Формат ячеек (его вызов осуществляется командой  Формат  Ячейки… или комбинацией клавиш <Ctrl>+<1>). Итак, первый этап закончен: исходные данные введены, формулы для результирующих данных также помещены на рабочий лист.

Перейдем теперь собственно к формулированию задачи для надстройки "Поиск решения". При этом используется стандартная терминология, принятая для описания экстремальных задач. В наших условиях целевой функцией будет функция в ячейке C17 (общая недельная зарплата), изменяемыми данными — диапазон C4:C10, содержащий число сотрудников, имеющих данный график предоставления выходных, и, наконец, диапазон E14:K15 будет использоваться при определении ограничений задачи.

Для обращения к надстройке "Поиск решения" используется одноименная команда в меню Сервис. Однако может случиться так, что команда Поиск решения в этом меню отсутствует. Это может быть по двум причинам: либо надстройка вообще не была установлена при установке Microsoft Office, либо она установлена, но не подключена.

Итак, если нужной команды в меню Сервис нет, сначала попробуйте поправить дело с помощью подключения надстройки:

 Сервис  Надстройки…  Поиск решения  OK

Если же "Поиск решения" отсутствует и в списке надстроек, то это значит, что данная надстройка просто не была установлена на компьютер при установке Microsoft Office. Она не является обязательным компонентом, автоматически устанавливаемым по умолчанию. Однако можно легко поправить дело с помощью значка Установка и удаление программ на Панели управления Windows, позволяющего установить любые дополнительные компоненты с дистрибутивного компакт-диска Microsoft Office.

Итак, мы будем считать, что нужная команда в меню Сервис имеется. Приступим непосредственно к работе с надстройкой "Поиск решения" (рис. 3.2):

 Сервис  Поиск решения… Установить целевую ячейку  С17 Равной:  минимальному значению Изменяя ячейки  С4:С10

Рис. 3.2. Диалоговое окно Поиск решения

Далее приступаем к вводу ограничений (рис. 3.3) :

Рис. 3.3. Диалоговое окно Добавление ограничения

 Добавить Ссылка на ячейку:= $C$4:$C$10  (вид ограничения)  цел  Добавить Ссылка на ячейку:= $C$4:$C$10  (вид ограничения)  >= Ограничение := 0

 Добавить Ссылка на ячейку:= $E$14:$K$14  (вид ограничения)  >= Ограничение := $E$15:$K$15  OK

 Выполнить

После нажатия кнопки Выполнить надстройка "Поиск решения" приступает к итерациям, и затем, закончив вычисления, открывает диалоговое окно Результаты поиска решения (рис. 3.4), в котором выводится сообщение о том, найдено или нет решение поставленной задачи. Если найденное решение вас устраивает, вы можете сохранить его на рабочем листе:

 Сохранить найденное решение  OK

Оптимальное решение— итоговое распределение выходных таково: 2 человек с выходными "понедельник, вторник"; 4 человек с выходными "вторник, среда"; 0 человека с выходными "среда, четверг"; 2 человек с выходными "четверг, пятница"; по 1 человек с выходными "пятница, суббота", 0 "воскресенье, понедельник"; и, что довольно естественно, никого с выходными "суббота, воскресенье".

Можно также сохранить найденное решение в качестве сценария с помощью кнопки Сохранить сценарий (обычно так поступают в том случае, когда требуется сохранить результаты нескольких различных решений, полученных при изменении некоторых ограничений).

Рис. 3.4. Диалоговое окно Результаты поиска решения