Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические задания и программы / Методичка с материалом и заданиями (все вместе).doc
Скачиваний:
81
Добавлен:
11.02.2016
Размер:
2.19 Mб
Скачать

1.5. Задания для самостоятельной работы

1. Отсортировать заданный массив элементов A по возрастанию и убыванию с помощью следующих методов: а) простых включений; б) простого выбора; в) простого обмена (пузырька); г) шейкер-сортировки.

A1={10, 4, 53, 1, 0, 22, 70, 2}; A2={8, 4, 53, 1, 20, 22, 60, 3};

A3={30, 43, 40, 1, 7, 28, 10, 3}; A4={25, 7, 3, 12, 0, 22, 10, 35};

A5={30, 3, 9, 1, 0, 22, 10, 50}; A6={91, 4, 5, 1, 10, 22, 80, 3};

A7={28, 4, 73, 1, 50, 22, 10, 23}; A8={32, 14, 36, 1, 0, 62, 10, 3};

A9={20, 4, 53, 11, 60, 22, 1, 2}; A10={0, 4, 5, 1, 50, 2, 75, 3};

A11={40, 24, 53, 1, 70, 8, 14, 3}; A12={40, 6, 3, 1, 8, 22, 10, 9}.

2. Подсчитать число сравнений С и пересылок М для каждого алгоритма. Сравнить алгоритмы по значениям С и М и сделать выводы.

2. Алгоритмы покрытия

Цель занятия по данной теме – освоение методов и алгоритмов полного перебора и сокращения перебора при нахождении покрытий.

2.1. Постановка задачи покрытия

Пусть B={b1,...,bn} – опорное множество. Имеется множество A, состоящее из m подмножеств (A={A1,..., Am}) множества В таких, что . Каждому подмножеству сопоставлено число ci, называемое ценой. Множество P={} (kj{1,..., m}, lm, k номер варианта выборки подмножеств) называется решением задачи о покрытии или просто покрытием, если выполняется условие

, (2.1)

при этом цена .

Термин покрытие означает, что совокупность множеств содержит все элементы множестваВ, т.е. “покрывает” множество В.

Определение 2.1. Безызбыточным называется покрытие, если при удалении из него хотя бы одного элемента оно перестает быть покрытием. Иначе - покрытие избыточно.

Определение 2.2. Покрытие Р называется минимальным, если его цена – наименьшая среди всех покрытий данной задачи.

Определение 2.3. Покрытие Р называется кратчайшим, если l – наименьшее среди всех покрытий данной задачи.

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

Теорема 2.1. Минимальные и кратчайшие покрытия – безызбыточны.

Удобным и наглядным представлением исходных данных и их преобразований в задаче о покрытии является таблица покрытий. Таблица покрытий – это матрица Т отношения принадлежности элементов множеств опорному множествуВ; столбцы матрицы Т сопоставлены элементам bj множества В, строки – элементам Ai множества А:

. (2.2)

Нули в матрице Т не проставляются.

Пример 2.1. Некоторый писатель выпустил множество сборников A={A1,..., A7}, содержащее в совокупности все множество B={b1,..., b9} его сочинений (табл. 2.1). Каждый сборник содержит некоторое подмножество сочинений из В и имеет некоторую цену . Необходимо найти такое множествоP={} (ij{1,...,7}, l7) сборников, чтобы в их совокупности содержались все сочинения данного автора и чтобы при этом либо ценатакого полного собрания сочинений быланаименьшей, либо количество l сборников было наименьшим.

Таблица 2.1

T

b1

b2

b3

b4

b5

b6

b7

b8

b9

c

A1

1

1

1

1

1

A2

1

1

1

1

2,5

A3

1

1

1

2

A4

1

1

1

1,5

A5

1

1

1

1

3

A6

1

1

1

1

1

7

A7

1

1

1

1

На языке отношения принадлежности задача о покрытии формулируется как задача построения таких подмножеств строк таблицы покрытия (ТП), чтобы в совокупности строк, входящих в , во всех столбцах были “1” (единицы в некотором столбце могут повторяться). Такое подмножество строкТП называется покрытием.

Возможным решением примера 2.1 будут следующие множества:

;

;

; .

Имеются следующие варианты формулировки задачи о покрытии.

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

2. Требуется найти только безызбыточные покрытия. Не существует простого и эффективного алгоритма, не требующего построения всех избыточных покрытий; хорошо, если уменьшается их количество. Используется граничный перебор либо разложение по столбцу в ТП.

3. Требуется найти одно безызбыточное покрытие. Решение задачи основано на сокращении ТП.

Задачи о покрытии могут быть решены точно (при небольшой размерности) либо приближенно.

Для нахождения точного решения используются следующие алгоритмы.

1. Алгоритм полного перебора. Основан на методе упорядочения перебора подмножеств множества А.

2. Алгоритм граничного перебора по вогнутому множеству. Основан на одноименном методе сокращения перебора.

3. Алгоритм разложения по столбцу ТП. Основан на методе сокращения перебора, который состоит в рассмотрении только тех строк ТП, в которых имеется “1” в выбранном для разложения столбце.

4. Алгоритм сокращения ТП. Основан на методе построения циклического остатка ТП, покрытие для которого далее строится методами граничного перебора либо разложения по столбцу.

Приближенное решение задачи о покрытии основано на следующем соображении. Даже сокращённый перебор приводит к очень трудоёмкому процессу решения, поэтому для получения ответа приходится отказываться от гарантий построения оптимального решения (минимального либо кратчайшего); однако при этом целесообразно получить не самый худший результат – хотя бы безызбыточное покрытие, удовлетворяющее необходимому условию (2.1). Тогда, в ущерб качеству, можно значительно упростить процесс решения.

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

Ниже рассматриваются упомянутые алгоритмы (за исключением алгоритма разложения по столбцу).