- •Оглавление
- •Аналитический раздел
- •Общая постановка задачи
- •Классические задачи принятия решений.
- •Многостадийный процесс
- •Задача линейного программирования
- •Задача о распределении ресурсов
- •Транспортная задача
- •Формула 11. Транспортная задача
- •Вывод по аналитическому разделу
- •Конструкторский раздел
- •Сценарий работы программы
- •Расчет функции прогнозируемой прибыли
- •Формула 13
- •Предлагаемый алгоритм работы программы
- •Алгоритмформирования групп для текущего распределения
- •Алгоритм поиска нового распределения для данного курса
- •Диаграмма классов
- •Спецификация основных классов
- •Требования к бд
- •Концептуальная модель базы данных
- •Спецификации таблиц
- •Вычисление расстояния поGps-координатам
- •1. Сферическая теорема косинусов
- •2. Формула гаверсинусов
- •Формула 16. Формула гаверсинусов
- •3. Модификация для антиподов
- •Формула 17. Формула для антиподов
- •Технологический раздел
- •Требования к вычислительной системе
- •Выбор субд
- •Выбор среды разработки
- •Выбор языка программирования
- •Используемые технологии asp.Net
- •Ado.Net
- •Пользовательский интерфейс
- •Интерфейс приложения
- •Интерфейс веб-приложения
- •Развертывание системы
- •Функциональная декомпозиция системы по уровням
- •Исследовательский раздел
- •Исследование зависимости времени работы алгоритма от числа учащихся
- •Нагрузочное тестирование
- •Вывод по исследовательскому разделу
- •Организационно-экономический раздел
- •Организация и планирование процесса разработки
- •Расчет трудоемкости выполнения работ
- •Расчет количества исполнителей
- •Календарный план-график разработки программного продукта
- •Расчет стоимости программного продукта
- •Расчет экономической эффективности
- •Промышленная экология и безопасность
- •Анализ вредных и опасных факторов
- •Освещенность
- •Электрические и магнитные поля
- •Статическое электричество
- •Электробезопасность
- •Опасность возникновения пожара
- •Вибрация
- •Травматизм
- •Микроклимат
- •Расчет системы освещенности
- •6.2.1 Расчет площади светопроемов
- •Расчет искусственного освещения
- •6.3.1 Общее освещение
- •6.3.2 Местное освещение
- •Заключение
- •Список использованных источников
Расчет функции прогнозируемой прибыли
Прогнозируемая прибыль, которая будет получена со всех образовательных центров по 1 предмету (курсу обучения).
Формула 13
где H - множество сформированных групп во всех ОЦ по данному курсу
– зарплата преподавателя в группе с индексомпоjму предмету.
– стоимость обучения наjом курсе.
N – число образовательных центров.
S – множество детей, распределенных по группам.
Pijk – вероятность обучения kго клиента на jом курсе в iом ОЦ
Прогнозируемая прибыль, которая будет получена со всех образовательных центров со всех курсов
(14)
где M – количество курсов обучения
Предлагаемый алгоритм работы программы
Шаг 1. Загрузка информации о клиентах, курсах и образовательных центрах в приложение из базы данных “Intellect”.
Шаг 2. Формирование начального распределения учащихся по ОЦ. Для каждого клиента формируется список центров, в которых он может обучаться. Расчет расстояний от каждого клиента до этих ОЦ. Расчет весов с использованием линейной интерполяции для каждой пары клиент-ОЦ (вес – это вероятность того, что клиент запишется на курсы в данный ОЦ) с учетом статистических данных за предыдущий год.
Шаг 3. Формирование групп для текущего распределения (Описано в пункте 2.3.1).
Шаг 4. Нахождение значения функции прогнозируемой прибыли F по формуле
для данного распределения D.
Шаг 5. Поиск нового распределения D1 (алгоритм представлен в пункте 2.3.2), для которого ищется значение функции прибыли F1. Если такое распределение было найдено, запоминаем его в качестве исходного распределения. Запоминаем значение функции прибыли F=F1. Повторяем шаг 5. Иначе, переход к шагу 6.
Шаг 6. Сохранение значений полученного распределения и функции прогнозируемой прибыли в качестве текущих.
Шаг 7. Отображение полученного распределения, статистических данных, полученного значения функции прибыли.
Укрупненная блок-схема алгоритма представлена на рисунке Рисунок 4.
Рисунок 4. Укрупненная блок-схема алгоритма работы программы
Алгоритмформирования групп для текущего распределения
Для каждого ОЦ по каждому предмету формируется одна группа из N человек.
Для каждого ОЦ по каждому предмету высчитывается число групп: n = [N/nimax], где nimax – максимальный размер группы для i-го предмета.
Зная число групп в каждом ОЦ по каждому предмету, распределяем из N клиентов n*nimax клиентов по группам таким образом, что остаются нераспределенными те клиенты, которые:
Максимально удалены от данного ОЦ (значения весов и, соответственно, вклад в функцию прогнозируемой прибыли минимальны)
Записаны только на 1 курс. Иначе появляются зависимости между новыми формирующимися группами, что приводит к частичной потере тех клиентов, которые записаны на 2 и более курсов. А именно эти клиенты приносят больший вклад (с одного человека) в значение функции прогнозируемой прибыли.
Шаг 4. Зная, какие именно клиенты запишутся на курсы, можно подсчитать функцию прогнозируемой прибыли по формуле
. Клиентов, не попавших в сформированные группы, не учитываем.
Алгоритм поиска нового распределения для данного курса
Нахождение значения прибыли от текущего распределения
Формирование списка из образовательных центров, в которых можно сформировать новую группу по данному курсу
Если список пуст, возвращаем текущее значение прибыли и текущее распределение. Конец работы алгоритма
Для каждого элемента списка формируем соответствующее распределение и запускаем алгоритм поиска нового распределения, который возвращает новое распределение и новое значение прибыли
Из полученных распределений выбирается то, которое обеспечило максимальную прибыль. Возвращаем его и полученное значение прибыли.
Подробная блок-схема алгоритма поиска нового распределения для конкретного курса представлена на рисунке .
Рисунок 5. Блок-схема алгоритма поиска нового распределения