Исследование зависимости времени работы алгоритма от числа учащихся
Данный программный продукт был разработан с целью поиска наиболее приемлемого распределения учащихся с учетом следующих критериев:
получение высокой прибыли
уменьшение числа клиентов, не вошедших в распределение
уменьшение времени работы алгоритма.
Программа должна решать поставленную задачу распределения в пределах 10 минут. Это время выбрано с учетом быстро меняющейся рыночной ситуации, т.к. в среднем образовательное учреждение набирает 10000 клиентов за 2 недели, что соответствует потоку клиентов, равному 4 человека/10 минут. При большей длительности работы алгоритма пользователь не сможет вовремя получать достоверный результат по текущей рыночной ситуации, что может привести к неправильному принятию управленческих решений.
Проведем ряд тестов для нашей программы. Будем искать зависимость времени получения результатов от количества клиентов, которые хотят записаться на курсы. Верхней планкой для числа клиентов будет взято число 100000, нижней 100. Полученные данные занесем в таблицу и построим график (см. рис. ).
В качестве входных данных возьмем клиентов, 20% из которых запишутся на 2 курс, а 10% которых запишутся на 2 и 3 курс одновременно. Таким образом, мы внесем достаточное количество зависимых клиентов в нашу базу данных, а тестируемая выборка по сложности её обработки будет соответствовать реальной выборке.
Таблица 23. Зависимость времени работы алгоритма от числа клиентов | |
Число клиентов в базе данных | Время работы алгоритма |
110000 | 36 мин. 12 секунд |
100000 | 18 мин. 10 секунд |
90000 | 12 ми 32 секунд |
80000 | 6 мин. 33 секунд |
70000 | 7 мин. 2 секунд |
60000 | 9 мин. 3 секунд |
50000 | 4 мин. 48 секунд |
40000 | 3 мин. 18 секунд |
30000 | 4 мин. 36 секунд |
20000 | 45 секунд |
15000 | 48 секунд |
10000 | 71 секунд |
5000 | 10 секунд |
4000 | 6 секунд |
3000 | 10 секунд |
2000 | 8 секунд |
1000 | 1 секунд |
500 | 0 секунд |
Рисунок 28. Зависимость времени работы алгоритма от числа клиентов
Из данного графика видно, что разработанный алгоритм распределения имеет экспоненциальную сложность. Но при числе клиентов, меньших 90000, он показывает достаточно хороший результат, время его работы составляет меньше 10 минут. Результат показывает, что данный алгоритм может быть применен в тех образовательных учреждениях, в которых число клиентов, проживающих в одном городе, меньше 80000-90000 человек. Для сравнения в крупной компании Юниум-ФТК число клиентов в Москве варьируется в пределах 10000-20000 человек.
Для числа клиентов, меньших 5000, время работы алгоритма меньше 10 секунд. Это связано с тем, что для набора даже одной группы в некоторых ОЦ не хватает клиентов. Рекурсивный алгоритм отрабатывает гораздо быстрее вследствие уменьшения числа возможных ситуаций.
- Оглавление
- Аналитический раздел
- Общая постановка задачи
- Классические задачи принятия решений.
- Многостадийный процесс
- Задача линейного программирования
- Задача о распределении ресурсов
- Транспортная задача
- Формула 11. Транспортная задача
- Вывод по аналитическому разделу
- Конструкторский раздел
- Сценарий работы программы
- Расчет функции прогнозируемой прибыли
- Формула 13
- Предлагаемый алгоритм работы программы
- Алгоритмформирования групп для текущего распределения
- Алгоритм поиска нового распределения для данного курса
- Диаграмма классов
- Спецификация основных классов
- Требования к бд
- Концептуальная модель базы данных
- Спецификации таблиц
- Вычисление расстояния поGps-координатам
- 1. Сферическая теорема косинусов
- 2. Формула гаверсинусов
- Формула 16. Формула гаверсинусов
- 3. Модификация для антиподов
- Формула 17. Формула для антиподов
- Технологический раздел
- Требования к вычислительной системе
- Выбор субд
- Выбор среды разработки
- Выбор языка программирования
- Используемые технологии asp.Net
- Ado.Net
- Пользовательский интерфейс
- Интерфейс приложения
- Интерфейс веб-приложения
- Развертывание системы
- Функциональная декомпозиция системы по уровням
- Исследовательский раздел
- Исследование зависимости времени работы алгоритма от числа учащихся
- Нагрузочное тестирование
- Вывод по исследовательскому разделу
- Организационно-экономический раздел
- Организация и планирование процесса разработки
- Расчет трудоемкости выполнения работ
- Расчет количества исполнителей
- Календарный план-график разработки программного продукта
- Расчет стоимости программного продукта
- Расчет экономической эффективности
- Промышленная экология и безопасность
- Анализ вредных и опасных факторов
- Освещенность
- Электрические и магнитные поля
- Статическое электричество
- Электробезопасность
- Опасность возникновения пожара
- Вибрация
- Травматизм
- Микроклимат
- Расчет системы освещенности
- 6.2.1 Расчет площади светопроемов
- Расчет искусственного освещения
- 6.3.1 Общее освещение
- 6.3.2 Местное освещение
- Заключение
- Список использованных источников