Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Прогнозирование времени выполнения программного кода (90

..pdf
Скачиваний:
0
Добавлен:
15.11.2022
Размер:
528.64 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное агентство по образованию

Ярославский государственный университет им. П.Г. Демидова Кафедра теоретической информатики

В В.С. Рублев

Прогнозирование времени выполнения программного кода

Методические указания по лабораторному практикуму

Рекомендовано Научно-методическим советом университета для студентов, обучающихся по специальностям Математическое обеспечение и администрирование

информационных систем и Прикладная математика и информатика

Ярославль 2007

УДК519.725

ББК В 185я73

Р 82

Рекомендовано Редакционно-издательским советом университета

в качестве учебного издания. План 2007 года

Рецензент кафедра вычислительных и программных систем

ЯрГУ им. П.Г. Демидова

Рублев, В.С. Прогнозирование времени выполнения командного кода: метод. указания по лабораторному практи- Р 82 куму / В.С. Рублев; Яросл. гос. ун-т. – Ярославль: ЯрГУ,

2007. – 36 с.

Методические указания помогают освоить методы прогнозирования времени выполнения программного кода SQL-запросов.

Предназначены для студентов, обучающихся по специальностям 010500 Математическое обеспечение и администрирование информационных систем (дисциплина «Метрология и качество программного обеспечения», блок ЕН) и 010501 Прикладная математика и информатика (дисциплина «Визуальные системы программирования», блок ЕН), очной формы обучения.

УДК 519.725

ББК В 185я73

Ярославский государственный университет им. П.Г. Демидова, 2007

В.С. Рублев, 2007

2

1.Цель работы

1.Обучение методам прогнозирования времени выполнения программного кода SQL-запросов.

2.Обучение методам разработки SQL-запроса, эффективного по времени выполнения.

2.Общее задание

1.Для базы данных динамической ситуации, определенной в лабораторной работе «Проектирование реляционной базы данных

иинтерфейса», разработать SQL-запрос индивидуального задания в двух вариантах: без связей таблиц внешними ключами и со связью таблиц внешними ключами.

2.Проанализировать запрос и определить трудоемкость запроса для каждого варианта.

3.Выбрать вид функций временной сложности и набор тестов (значений параметров функций) для вычислительных экспериментов.

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

5.Провести тестирование со снятием времени выполнения за-

проса.

6.Вычислить коэффициенты функций временной сложности по методу наименьших квадратов. Проанализировать полученные функции и при отрицательных значениях старших коэффициентов (коэффициентов у старших членов функций) пересмотреть трудоемкость в сторону понижения, пересчитать коэффициенты.

7.Разработать программу предсказания времени выполнения (минимального, максимального и среднего) для запроса с выполнением теста производительности компьютера и корректировкой значений функций, а также с определением реального времени выполнения SQL-запроса.

8.Провести дополнительные тесты для других значений параметров, которые выходят за область параметров, использованную для построения функций временной сложности. Сравнить резуль-

3

таты предсказания с реальным временем и в необходимых случаях провести корректировку трудоемкости и вида функций.

9.Сравнить оба варианта запроса и сделать предложения по дальнейшему улучшению кода запроса.

10.Составить отчет, который должен содержать:

1)Задание общее и индивидуальное.

2)Запрос и таблицы для двух вариантов.

3)Анализ трудоемкости запроса.

4)Определение вида функций временной сложности.

5)Программу тестирования (насыщение таблиц случайным и предопределенным образом в соответствии с тем или иным тестом).

6)Параметры тестов и результаты выполнения тестирования.

7)Расчет коэффициентов функций временной сложности по методу наименьших квадратов.

8)График функций временной сложности с точками тестиро-

вания.

9)Программу прогноза времени выполнения запроса с тестом производительности компьютера.

10)Дополнительное тестирование и сравнение с прогнозом.

11)Анализ вариантов запроса и предложения по дальнейшему улучшению.

3. Варианты индивидуальных заданий

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

1)подготовка – сессия не закончена (не все предметы сдавались студентом);

2)перевод на следующий курс – сессия сдана успешно, а курс студента не последний;

3)отчисление – сессия закончена, и более чем по 2-м предметам оценки неудовлетворительные;

4)окончание – сессия сдана успешно и курс студента послед-

ний.

4

Запрос. Список предметов, по которым максимальное количество студентов сдало предмет на наивысшую оценку для данного предмета.

2. Динамическая ситуация. Назначение научного руководителя

определяется для студентов, специализирующихся по кафедре работы преподавателя, имеющих курс не ниже 2-го:

1)без руководителя – курс ниже 3-го;

2)перевод на следующий курс (отчисление после последнего курса);

3)назначение руководителя 3-й курс;

4)изменение руководителя – курс выше 3-го.

Запрос. Список преподавателей, которые руководят максимальным количеством студентов среди преподавателей своей кафедры.

3. Динамическая ситуация. Предприятие определяется отделами и списками работников отделов с их стажами. Во главе каждого отдела стоит один из работников отдела – руководитель. Состояния работника:

1)прием – стаж равен 0;

2)выслуга – стаж увеличивается на 1;

3)проводы на пенсию – достижение пенсионного стажа;

4)назначение руководителем – если отдел не имеет руководи-

теля;

5)перевод в другой отдел.

Запрос. Список руководителей отдела, в которых работает максимальное число работников с предпенсионным стажем работы.

4. Динамическая ситуация. Автобусные маршруты, каждый из которых определяется номером и кольцевым списком остановок, а каждый автобус определяется номером машины и номером маршрута. Состояния автобуса:

1)снят с маршрута – новый или в ремонте;

2)назначение на маршрут;

3)изменение маршрута;

4)списание.

Запрос. Список остановок, которые принадлежат максимальному числу маршрутов с минимальным числом автобусов на этих маршрутах.

5

5. Динамическая ситуация. Вступительные экзамены на фа-

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

1)подача заявления – не сформирован список факультетов для абитуриента;

2)экзамены – список факультетов абитуриента сформирован, но не сданы все экзамены;

3)выбор факультета – все экзамены сданы;

4)зачисление – если на выбранный факультет набран проходной балл.

По окончанию зачисления всех абитуриентов формирование списков зачисленных.

Запрос. Список экзаменов, по которым максимальное число студентов получило наивысшую оценку среди студентов, подавших заявление на несколько факультетов.

6. Динамическая ситуация. Прием на работу со списками рабочих мест, определяемых профессией и ставкой, и претендентов, определяемых профессиями и рейтингом (квалификацией). Состояния претендента:

1)заявление – определяются профессии претендента и рейтинг;

2)выбор места – все профессии и рейтинг определены;

3)зачисление – рейтинг претендента больше рейтингов других желающих поступить на это место.

Формирование списка зачисленных претендентов с местами. Запрос. Список рабочих мест, на которые претендуют максимальное количество работников с самым высоким рейтингом для

такого места.

7. Динамическая ситуация. Библиотечный абонемент со спи-

сками книг и читателей, для каждого из которых определяется состояние:

1)заявка – формирование списка заявленных книг;

2)чтение – формирование списка прочитанных книг;

3)обмен – сдача прочитанных книг, получение заявленных книг, если они свободны.

Библиотека имеет 3 состояния:

1)поступление – книга поступает новая или из ремонта;

2)ремонт – книга поступает в ремонт;

6

3) прием-выдача книг от читателей.

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

8. Динамическая ситуация. Рынок со списками товаров (с количеством и ценой) и очередью покупателей (с кошельком – количество денег). Состояние покупателя:

1)занять очередь – стать последним; при этом список покупок пустой;

2)стоять в очереди – определить список необходимых покупок, если не первый и не последний в очереди;

3)купить – если первый в очереди; если денег не хватило, снова занять очередь.

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

9. Динамическая ситуация. Пассажирские перевозки со спи-

сками поездов (номер, список остановок, остановка местонахождения) и пассажиров (откуда, куда). Состояние поезда:

1)формирование – пополнение списка остановок;

2)остановка – посадка-высадка пассажиров;

3)движение – списки остановок и пассажиров поезда не изменяются.

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

10. Динамическая ситуация. Обед в столовой со списками блюд (с ценой) и очередью студентов (с кошельком – количество денег). Состояние студента:

1)занять очередь – стать последним; при этом список блюд пустой; определяются деньги в кошельке;

2)стоять в очереди – определить список блюд на обед, если не первый и не последний в очереди;

3)заплатить – если первый в очереди (если денег не хватило, снова занять очередь).

Запрос. Список блюд, которые заказывают максимальное количество студентов с кошельками, позволяющими оплатить все заказанные блюда.

7

11. Динамическая ситуация. Авиаперевозки со списками аэропортов, рейсов (аэропорт вылета, аэропорт назначения, список аэропортов следования, вместимость пассажиров, аэропорт местоположения) и пассажиров (аэропорт вылета, аэропорт назначения). Состояние рейса:

1)посадка-высадка – выходят пассажиры, чей аэропорт назначения совпадает с аэропортом местоположения самолета, и садятся пассажиры, чей аэропорт назначения совпадает с одним из последующих в списке аэропортов следования;

2)полет – список пассажиров не меняется; местоположение самолета меняется на следующий аэропорт следования.

Состояния пассажира:

1)без билета – определяются аэропорты вылета и назначения;

2)с билетом на посадку – определяется подходящий рейс;

3)полет;

4)высадка – когда самолет достиг аэропорта назначения пассажира.

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

12. Динамическая ситуация. Хоккей со списками команд (список игроков, список на игру), хоккеистов (команда, разряд, забитые шайбы, количество сыгранных игр, количество добытых очков, начальный разряд = 5) и игр (команда-хозяин, команда-гость, упорядоченный список игроков, забивших шайбы). Состояния игры:

1)определить игру – определить команды и списки игроков на

игру;

2)начать игру – опустошить список игроков, забивших шайбы;

3)закончить игру – определить список игроков, забивших шайбы; повысить разряд (уменьшить значение) для хоккеистов, для которых отношение добытых очков к сыгранным играм >2 и в этом случае сбрасывает число игр на 0, а число добытых очков делает равным (разряд – 4)*10.

Запрос. Список команд, имеющих наименьшее число игроков с наивысшим разрядом для команды.

13. Динамическая ситуация. Самодеятельность со списком кружков (руководитель, список учеников кружка), списком учеников (список кружков ученика), списком руководителей (список

8

кружков руководителя, список учеников руководителя). Состояния ученика:

1)желание – определение списка кружков;

2)поступление – включение в списки кружков;

3)уход – исключение из кружка.

Запрос. Список руководителей, которые руководят наибольшим числом кружков, посещаемых учениками с наименьшим количеством кружков.

14. Динамическая ситуация. Школа со списком классов (список учеников класса), списком учеников, списком учителей (список классов учителя, стаж). Состояния учителя:

1)поступление – стаж равен 0, определяются классы;

2)преподавание – стаж по событию увеличивается на 1;

3)выход на пенсию – при достижении пенсионного стажа. Запрос. Список опытных учителей (стаж больше 1), имеющих

наибольшее число классов с наименьшим числом учеников.

15. Динамическая ситуация. Метро со списком линий (список станций линии, список поездов линии), список поездов (номер, линия), списком станций.

Запрос. Список станций метро, через которые проходит наибольшее число линий с наименьшим числом поездов на линии.

16. Динамическая ситуация. Ресторан со списком столиков, списком официантов (список столиков официанта, число собранных «штанов» за неуплату), списком блюд (цена), списком посетителей (кошелек, список желаемых блюд). Состояния столика: занят, свободен. Состояния посетителя:

1)ожидание – ждет свободного столика;

2)заказ – определяет список блюд;

3)обед;

4)расчет – оплачивает обед; если денег в кошельке мало, расплата «штанами»; столик освобождается.

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

17. Динамическая ситуация. Командный шахматный турнир

со списком команд (список шахматистов команды) и списком шахматистов (разряд, команда, число сыгранных партий, число

9

добытых очков, список соперников, с которыми сыграны партии). Состояния шахматиста:

1)зачисление в команду – начальные значения параметров (разряд=5);

2)назначение на игру – выбор соперника, с которым не играл;

3)игра – изменение числа добытых очков в зависимости от введенного результата партии;

4)квалификация – повышение разряда (меньше на 1), если отношение выигранных очков к числу сыгранных партий больше ½,

вэтом случае процедура сбрасывает число сыгранных партий на 0, а число очков на (разряд – 5)*0,05;

5)отчисление – если за турнир все партии проиграл.

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

18. Динамическая ситуация. Читальный зал со списком книг (список претендентов, занятость) и списком читателей (список взятых книг, список прочитанных книг, список заказа). Состояния читателя:

1)запись – формирование заказа;

2)сдача-выдача – сдача прочитанных книг, выдача тех книг заказа, которые свободны.

Запрос. Список абонентов, сдающих минимальное количество книг, на которые претендуют максимальное число других читателей.

19. Динамическая ситуация. Перевозки маршрутками со списком маршруток (номер, список пунктов прохождения, пункт местонахождения, список пассажиров маршрутки) и списком пассажиров (пункты посадки и высадки, список подходящих маршруток). Состояния пассажира:

1)появление пассажира – определяются пункты посадки, высадки и список подходящих маршруток;

2)посадка – в маршрутку из списка подходящих, если ее пункт местонахождения совпадает с пунктом посадки;

3)поездка – учет в списке пассажиров маршрутки;

4)высадка – пункт местонахождения маршрутки совпадает с пунктом высадки.

Состояния маршрутки:

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]