Файл: Ху, Т. Целочисленное программирование и потоки в сетях.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.10.2024

Просмотров: 165

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

452

ПРИЛОЖЕНИЕ А

что, как указано выше, реализуется посредством вычитания из i(i ф 1) строки nt раз 1-й строки.

Это преобразование

даст

новую

матрицу,

представленную

таблицей А.

 

 

Таблица А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

. .

0

 

 

 

 

 

 

 

0

&22

Ь23

&2 т

 

 

 

 

 

 

 

0

Ь32

 

 

 

 

 

 

 

 

 

 

6

^7П2

Ьтт

 

 

 

 

Перейдем к шагу 5.

 

 

 

 

 

 

 

 

 

Ш а г

5. Если Ьц делит

btj,

г=£1, ] ф 1 ,

применим шаги

с первого по четвертый к матрице размерности (т — 1) X — 1)

из табл. А. Если Ьи не делит Ь ц ,

то положим Ьц = «Ьц -j- q, где

О < q <

Ьи; тогда следующая последовательность операций пере­

местит q на позицию (1,1).

Проиллюстрируем

эту последователь­

ность операций

на матрице размерности

2 x 2 :

 

 

/Ьц

0

\ / Ьц

 

0

\ / Ьц — Ьи \ /

9

 

\ 0

nbn + qj \гаЬц

пЬц + q)

\пЬц

q

) \ — Ьп

Ьц/'

В результате мы получим новое

Ьи =

q,

имеющее

меньшее

значение,

и можем возвратиться к шагу 1.

число

в матрице, то

Так как (D — 1) — наибольшее целое

не более чем через log2Z) циклов (цикл — шаги с первого по пятый) Ьи будет делить bi;-, i ф 1, / ф 1, или Ьи будет уменьшено до 1. Найдем верхнюю границу числа операций, необходимых для этой процедуры. Используем следующие символы для обозначения операций:

s: сравнение двух чисел, с: проверка делимости,

t:многократное вычитание одного числа из другого,

р: изменение положении двух чисел.

Тогда для

X тп)-матрицы необходимо m2s

2тр

операций

на

шаге 1,

 

р) на шаге 2, т (c-\-t-\-p)

на шаге 3, 2т(т — 1)t

на шаге 4

и

i)2c-\-2m(t-{- р) на шаге 5.

матрице, то

Поскольку (D — 1) — наибольшее целое число в

после не более

чем log2 D циклов (шагов с первого по пятый)

мы



НОРМАЛЬНАЯ ФОРМА СМИТА

453

получим матрицу, в которой Ъи делит Ьц, i =И= 1, j ф 1, и является единственным ненулевым элементом в первой строке и первом столбце. Таким образом, чтобы привести матрицу к нормальной форме Смита, необходимо не более

( 1)

операций.

Если мы рассмотрим достаточно большое т и подсчитаем старшие члены, то получим

log2 D {m3s/3 + 3m2p -J- m3c/3 + 2m3i/3}.

Если группа имеет ранг г, то после того, как г диагональных элементов получены, в оставшейся (матрице раз­

мерности г) X г) все элементы будут

равны 0.

Это

происходит в случае, если

мы пытаемся привести

матрицу

В -1

к нормальной форме Смита.

(Мы используем числители элементов

матрицы В-1.)

 

 

 

Если рассмотрим г, малые по сравнению с тп, то получим

 

I°g2 D {m2rs-\- %mrp -)- m2rc -f 2mH).

 

(2)

Сейчас мы предложим новую процедуру приведения матрицы к нормальной форме Смита. Она очень похожа на стандартную, за тем исключением, что мы сначала диагонализируем матрицу, а затем проверяем, делит ли Ън элемент bi+1, *+i. Эта процедура состоит из следующих шагов.

Ш а г 1. Переставим столбцы и строки так, чтобы bli был наименьшим по абсолютной величине среди всех ненулевых элементов в первой строке и первом столбце матрицы. Перейдем к шагу 2.

Ш а г

2.

Такой

же,

как

в

стандартной

процедур

Ш а г

3.

Такой

же,

как

в

стандартной

процедур

Ш а г

4.

Такой

же,

как

в

стандартной

процедур

Ш а г 5. Будем повторять

шаги с 1-го по 4-й до тех пор, пока

матрица не станет диагональной. Перейдем к шагу 6.

 

Ш а г

6. Если Ъц делит

bti (i = 2,

. . ., тп), то проверяем,

делит ли &22 элемент

bjj (j

=

3, . . ., m)... . Этот процесс

повто­

ряется до

тех пор,

пока

не

установим,

что Ьц делит

bj+j, *+i


454

ПРИЛОЖЕНИЕ А

(i = 1, . . т — 1). Если Ьп не делит Ьн , то переходим к шагу 5 стандартной процедуры, чтобы получить новое Ъц меньшей вели­ чины. Поскольку матрица диагонализирована, мы имеем дело с матрицей размерности 2 x 2

1Ъп 0 \

\ 0 пЪп q) '

Если к этой матрице мы применяем шаги со второго по четвер­ тый стандартной процедуры, то либо будем иметь диагонализированную матрицу с Ъи, делящим bih либо будем иметь элемент, меньший q и занимающий положение (1,1). Таким образом, не бо­

лее, чем через log2 D [тс + 4 (t + р)] операций, мы получим Ъп , которое делит

Ъц (г = 2, . . ., т).

Подсчитав число операций, получим

2ms + 2mp

на шаге 1,

т (с -f-1-\- р)

на шаге

2,

т (с + 1+ р)

на шаге

3,

2т (т — 1)7

на шаге 4.

После т циклов (шагов с 1-го по 4-й) матрица диагонализируется. Включая операции на шаге 6, имеем

т (m + 1) s-(- [2т (т-\- 1) + 4то log2 D\ р -f-

-t-j|m (m +l) + ym (m + l)log2Z>Jc +

+ [" L ".tiH 2" + <) + 4w, log, p ] t.

(3)

Если рассмотрим достаточно большое т и подсчитаем только старшие члены, то получим

m2s + [2ттг2 -(- 4т log2 D] р + \^т? + у иг2 log2 D J с -j-

+ [2m3/3 + 4m log2 D] t.

(4)

Если применим нашу процедуру к {В_1}/{1}, и если группа

имеет ранг г (m/r~^> 1), то общее

число операций

равно

2mrs -f (4тг + 4г log2 D) р -j-- (2тг +

mr log2 D) с +

 

 

+ (2m2r +

4r log2 D) t. (5)


НОРМАЛЬНАЯ ФОРМА СМИТА

455

Пример. Пусть

&IIi1><хvF

 

1 1

 

1 1

1----------1 ^ to 1 J

,

0

 

 

е1 =

 

1 е 2 —

Тогда мы имеем

 

 

 

 

 

2

4

 

 

 

 

7

9

 

 

 

 

 

ej =

е4 +

Зе2

 

 

2

е 2 = ®2

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

e "l —

е 2 —

е 2

 

 

 

е2 =

е4 =

-Т Зе2

 

1- 3

24

 

ь ; = ь 4

I

Ь2 = Ь2 + ЗЬ(

1

О

2

10

 

еГ = е1 + 2е2 = 2е4 + 7е2

 

е 2 = е 2 = ei + Зе2

1

О

0

10

 

иЬ'1—= е'",

 

Ь2 = 10е".

10

----------1

1

1