Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / Семинары-2010.docx
Скачиваний:
37
Добавлен:
10.02.2015
Размер:
275.72 Кб
Скачать

Семинар №4

  1. Доработайте основные пункты алгоритма последовательного разрезания гиперграфа, используя полученные вами выражения.

 := - Определение.

∀ - Квантор всеобщности.

Kl- число внешних выводовl-ой части схемы, т.е. ограничение на число выводов.

nl- число элементовl-ой части схемы, т.е. требуемое число элементов.

Алгоритм последовательного разрезания гиперграфа:

  1. Xl:={Xq}, где S(Xq)=max(Si, Si∈S) //Выбор начальной вершины с max числом ребер, попадающих в разрез.

  2. U’:= Г(Xl) // множество U' ребер, содержащих вершины множества Xl

  3. X’:= Г(U’) // множество X' вершин, инцидентных ребрам множества U'

  4. X’’:=X’\Xl // множество Х'' вершин-кандидатов на включение в Xl

xi∈X’’: Si:= |Г(XlXi)⋂Г(X\{XlXi})| //Построение множества чисел ребер, попадающих в разрез.

  1. Xt ⇔St:=min(Si,Si∈S) //Выбор вершины сminчислом ребер, попадающих в разрез.

  2. St­>Kl ⇒ п.9 //Случай нарушения ограничения на число выводов.

  3. Xl:=XlXt//Добавляем новую вершину к множествуXl.

  4. | Xl|<nl⇒ п.2 //Случай неполного набора требуемого числа элементов.

  5. Xl – сформировано. ⇒ п.11

  6. Формирование множества невозможно.

  7. Конец работы алгоритма.

Оценка вычислительной сложности:

| Xl| = |X\Xl|=n/2;

|Гxi|=;

В процессе получения U’ его мощность увеличивается на |Гxj|=. Так как

| Xl| = |X\Xl|=n/2, то для Г(Xl):

K===

Для всех Г(Xl) и Г(X\Xl):

K=

Среднее число ребер оценим из :

mср=

Для определения U1 ⋂U2требуется:

Сложность на i-том шаге:

F=, так что:

F=O(n­2)

Подсчет Sидетn-1 раз, так что:

F=O(n­2)O(n­)=O(n­3)

Семинар №5

  1. «...» проанализируйте возможные состояния ребер, инцидентных вершине xt , сформулируйте условия, выполнение которых определяет ребра, уходящие из разреза и появляющиеся в нем после включения вXlвершиныxt.

  1. Ребра приходящие в разрез:

Ut∈ГXt

ГUt ⋂Xl=∅ ⇒ ΔSt+:= ΔSt++1

  1. Ребра уходящие из разреза:

∀Ut ∈ГXt:

Xt= ГUt

Xt \ (Xt ⊂Xl)⇒ ΔSt-:= ΔSt-+1

ΔSt:= ΔSt+-ΔSt-

  1. Доработайте описанный выше алгоритм таким образом, чтобы после включения вершины xtв подмножествоXlмножестваU' илиX'' не определялось заново, а корректировались с использованием сформулированных Вами условий. Предложите рекуррентную формулу для подсчета показателяS(Xlxi), используя сформулированные Вами условия. Оцените вычислительную сложность ее реализации. Выберите структуры исходных данных и промежуточных результатов.

⊆ - «является подмножеством».

Определим вершины-кандидаты, на включение в Xl на первом шаге:

Xk=F1xq

Далее, новые вершины:

X’k=F1xt\xl

Показатель ΔSi имеет смысл пересчитывать только для вершин, смежных с Xt:

ΔSi:= ΔSi+-ΔSi-; Si:= Si-1+ΔSi

Для ΔSi выберем следующую структуру данных:

INT– таблица прямого доступа к векторуR.

Удаление заменим замещением последним элементом вектора R.

Семинар №6

Улучшенный алгоритм последовательного разрезания гиперграфа:

  1. Xl:={Xq} //Выбор начальной вершины.

  2. S:= |ГXq| //Число ребер инцидентныхXq, т.е. изначально находящихся в разрезе.

  3. Xk:=F1Xq//Множество смежных вершин-кандидатов.

  4. xi∈Xk:

    1. ΔSi+:=ΔSi-:=0 //Обнуляем счетчики.

    2. Ui:=ГXi //Ребра, инцидентныеXi.

    3. Uj∈Ui:

      1. Xj:=ГUj//Вершины, смежныеUj.

      2. Xj\Xi⊆Xl⇒ ΔSt-:= ΔSt-+1//Если остальные вершины этого ребра входят вXl– ребро уйдет из разреза.

      3. Xj ⋂Xl=∅⇒ ΔSt+:= ΔSt++1 //Если ни одна из вершин Xj не находится в Xl – ребро попадает в разрез.

    4. ΔSi:= ΔSi+-ΔSi-//Конечное число ребер,попадающих в разрез.

  5. Xt ⇔ΔSt:=min(ΔSi∈S) //Выберем вершину, которая влечет за собой наименьшее число ребер, попадающих в разрез.

  6. S:=S+ ΔSt//Изменим число разрезаемых ребер.

  7. S­>Kl ⇒ п.14 //Случай нарушения ограничения на число выводов.

  8. Xl:=XlXt//Добавляем новую вершину к множествуXl.

  9. | Xl|=nl⇒ п.15 //Случай полного набора требуемого числа элементов.

  10. Xk:=Xk\Xt//Удаляем добавленную вершину из множества кандидатов.

  11. S:=S\ ΔSt

  12. Xk:=F1Xt\Xl//Определяем новое множество кандидатов из смежныхXt, не входящих вXl

  13. п.4

  14. Ограничение по числу внешних выводов. ⇒ п.16

  15. Xl – сформировано.

  16. Конец работы алгоритма.

Оценка вычислительной сложности:

|xk|=;

|Ui |=|Гxi|=;

|Xj|=|ГUj|=;

| Xl| = I, I=1..nl;

Xj\Xi⊆Xl– двойной цикл –AI;

По закону Рента:

|R|=A;

Xk:=F1Xt\Xl - A;

Nf = =O();

Если для Xlсделать характеристический вектор, то:

Nf’ = =O();

Если вектор Rпредставить в виде двоичной кучи и использовать алгоритм сортировки с вычислительной сложностьюO(n), то вычислительная сложность будетO(n).

Соседние файлы в папке Экзамен