Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора информатика.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.68 Mб
Скачать

Задача о выборе заявок

Пусть даны n заявок на проведение занятий в одной и той же аудитории. Два разных занятия не могут перекрываться по времени. В каждой заявке указаны начало и конец занятия (si и fi для i-й заявки). Разные заявки могут пересекаться, и тогда можно удовлетворить только одну из них. Отождествим каждую заявку с промежутком [si, fi), так что конец одного занятия может совпадать с началом другого, и это не считается пересечением. Таким образом, заявки с номерами i и j совместны, если промежутки [si, fi) и [sj, fj) не пересекаются, т.е. если выполняется неравенство fi  sj или fj  si. Задача о выборе заявок состоит в том, чтобы набрать максимальное количество совместных друг с другом заявок.Жадный алгоритм работает следующим образом.

Время начала и окончания занятия будем хранить в массивах f и s. Мы предполагаем, что заявки упорядочены в порядке возрастания времени окончания:

f1 f2…  fn

9. Алгоритм: содержательный и формализованный подходы к понятию «алгоритм». Свойства алгоритма и способы его описания.

Как фундамен­тальное научное понятие алгоритм требует обстоятельного изучения. Оно невозможно без уточнения понятия «алгоритм», без его формализации. Известно, несколько подходов к формализации понятия «алгоритм»: • теория конечных и бесконечных автоматов; • теория вычислимых (рекурсивных) функций; • -исчисление Черча. Все эти возникшие исторически независимо друг от друга подходы оказались впоследствии эквивалентными. Главная цель формализации понятия алгоритма такова: подойти к решению проблемы алгоритмической разрешимости различных математических задач, т.е. ответить на вопрос, может ли быть построен алгоритм, приводящий к решению задачи. Мы рассмотрим постановку этой проблемы и некоторые результаты тео­рии алгоритмической разрешимости задач, но вначале обсудим формализацию понятия алгоритма в теории автоматов на примере машин Поста, Тьюринга, а также нормальных алгоритмов Маркова, а затем — основы теории рекурсивных функций. Идеи исчислений Черча реализованы в языке программирования Лисп. Вместе с тем, формально определенный любым из известных способов алго­ритм не может в практическом программировании заменить то, что мы называли алгоритмами в предыдущем подразделе. Основная причина состоит в том, что фор­мальное определение резко сужает круг рассматриваемых задач, делая многие прак­тически важные задачи недоступными для рассмотрения.

Пон-ие алг-ма в И. явл-ся фундам-ным. Алгоритм - заранее заданная послед-сть четко определенных правил или команд для пол-ия реш-ия з-чи за конеч. число шагов.

Алг-м - понятное и точное предписание исполнителю совершить послед-сть действий, напр-ых на достиж-ие опр-ых целей или на реш-ие пост-ой з-чи.

Св-ва: 1.Массовость - кажд. алг-м справедлив для к-л мн-ва исх. данных 2.Дискретность - алг-м д/б разбит на послед-сть отдельных действий; только после вып-ия одного действия переходят к вып-ию след-го 3. Определенность и однозначность - формул-ка алг-ма д/б точна и однозначна 4. Конечность - алг-м д. всегда зак-ся после конеч. числа шагов 5. Детерминированность (предопределение) - все действия и указания однозначны; не д/б неясных ситуаций 6. Результативность - после заверш-ия исполнения алг-ма всегда д/б получен рез-т.

Способы опис-ия алг-мов: словесная запись, алгор. язык, формула, блок-схема, структурограмма.

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

Граф. изобр-ие алг-ма наз-ся структурной схемой алг-ма (блок-схемы и структурограммы).

Б-с явл-ся ориент-м графом, у кот. графич. обозн-ия эл-тов соотв-ют вершинам графа, линии потока - его ребрам. Граф - конечное мн-во вершин, соед. ребрами.

Алг-м из-ся в виде послед-ти блоков, предписывающих вып-ие отд-ых ф-ций, и связей м/у ними. Внутри блоков помещают инф-ию, кот. поясняет вып-ие действия. Б-с показывают орг-ию алг-ма и е отр-ют орг-ию данных или структуру модулей ввода-вывода.

Структурограммы дают полное визуальноепредставление процесса упр-ия в структуриров-ой программе.

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