Джордж, Лю - Численное решение больших разреженных систем уравнений (947498), страница 21
Текст из файла (страница 21)
) еснзет<) >, Извне<1>. ()Б?2е<) >, Оь? к<) > 1ЙТЕОЕЕ ХЛО?(1), 1ЙООЕ, 1Р, 1ЕСН. 1, М?ЙОЕО, ЙОЕО, 1 ЙР))ЙБ, ЙНОБХЕ, МООЕ, МОРБОВ, МР, ЙОМ, Й(В)Р), 1 Й>СЧООЕ, НСНБ2Е, БЕАЙСН, ТНЕЕБН ИННЦНЛЛНЗНРОВЛТЬ ОЕОНЕЕ И ДРУГИЕ РАЗОЧНЕ ПЕРЕМЕННЫЕ . М1ЙОЕС ЙЕ))ЙБ МОРБОВ О 00 100 ЙООЕ ), ЙЕОЙБ РЕЕМ(МОСЕ) ЙООЕ 1ЙУР(ЙООЕ) ЙООЕ МАК КЕЕ ( МОРЕ ) 0 ОБ?ХЕ(ЙООЕ) 1 (;6.1МК(ЬХ)ОЕ) 0 ЙОХО ХАО?(ЖЮБ+1) - ХАО?(ЙООЕ) )оо с с с С ЗОО 300 С С С С БОО С С С С ! ! С С С С С ПЕС(ЙООЕ) ЙОЕС 1Р ( ЙОЕС .СТ. МТЙОЕС ) МТЙОЕС .
)ВЕС ССЙТТЙРЕ вм-о БАРЬЕРНЫЙ ПОИСК УЗЛА С МИНИМАЛЬНОЕ СТЕПЕНЬЮ. БЕАНСН УКАЗЫВАЕТ~ ОТКУДА НАЧИНАТЬ ПОИСК. БЕАВСН ! ТИВЕБИ М1ЙОЕО М1ЙРЕС ЙЕСЙБ %МР! ЙОМ + ! 1Р ( й(ЗМР! .СТ. БЕАВСН ) БЕАВСН йо)(Р! ОО 400 1 БЕАЯСН, ЙЩЙБ ЙООЕ РЕЕМ(1) 1Р ( МАЛЕЕВ(ЙОРК) .З.Т. О ) СОТО ЯОО ЙОЕ6 РЕС(ЗЧОРЕ) 1Р ( йОЕС .З.Е. ТНЕЕБН ) 60 ТО 500 1Р ( ЙРЕС .ЕТ. М1ЙРЕС ) М1ЙОЕС ЙРЕС' ~.СЙТ1Й(ЗЕ 60 ТО 200 ЙИНИИАЯЬНУЮ СТЕПЕНЬ ИМЕЕТ ЙСОЕ. ОПРЕДЕЛИТЬ ЕГО ДОСТИЖИМОЕ МИОЖЕСТВО3 ОБРАЩАЯСЬ К ВМОЯСН. БЕАВСН 1 НОРОВ ЙОРБОВ + ОЕС(ЙООЕ) МАЕК ЕВ ( ЙООЕ ) ! СА3.3.
()ЬЮЯСН (ЙСРЕ, ХАО1, АР)ЙСУ, Ра.о, МАВКЕВ, ВСНБЕЕ, ЯСНЕЕТ, ЙН)БЕЕ, ЙВВНР ) ИСКЛЮЧИТЬ ВСЕ УЗЛЫ НЕРАЗЛИЧИМЫЕ С НОСЕ. ЗТО БУДУГ ЙООЕ ч 03.1ЙК(ЙООЕ) е ° ° ° ЙХ)К)РЕ НОРЕ й(Ы ЙОМ + 1 ЙР 1ЙУР(ЙХЙОРЕ) 1Р РЕЕМ(ЙОМ) РЕЕМ(ЙР) 1Р 1ЙУР(1Р) ЙР РЕЯМ(ЙОМ) ЙХ)ЮОЕ 1ЙУР(ЮСЧОРЕ) ЙОМ ОЕС(ЙХ)ЧООЕ) - ! ЙХ)ЮОЕ З)ЫЗЧК(ЙХ)ЮОЕ) 1Р (ЙХЙОРЕ .СТ. 0) СОТО 600 1Р ( ВСНБЕЕ .ЕЕ. 0 ) 60 То ВОО ПЕРЕСЧИТАТЬ СТЕПЕНИ УЗЛОВ В ДОСТИЖИМОЙ ЙНОЖЕСТВЕ И ОПРЕДЕЛИТЬ НЕРАЗЛНЧИМЫЕ УЗЛЬЗ. СА(Л ЗЧМООРО ( ХАР), АО)ЙСУ. 3(СНБЕЕ, ЯСНЕЕТ. РЕВ. 3)БТЕЕ, 3)ЫЙК, МАЕКЕЕ. ЯСНЕЕТ(ЕСНБЕЕч)), ИВИНО(ЙНРБЕЕ+1) ИЗЙЕНИТЬ В ЙАЯКЕЯ ЗНАЧЕНИЯ~ СООТВ.
УЗЛАМ ДОСТИЖИЙОГО МНОЖЕСТВА. ИЗМЕНИТЬ БАРЬЕРНОЕ ЗНАЧЕНИЕ ДЛЯ 3(ИКЛИЧЕСКСГО ПОИСКА. ВЫЗВАТЬ ВЙОСТ, МАВКЕВ(ЗЧООЕ) 0 Об 700 1НСН 3, ЯСНБЕЕ 1ЙОРЕ ЯСНЕЕТ(1ЯСН) 1Р ( МАЯКЕВ(1ЙОРЕ) .ЕТ. 0 ) СОТО 70:3 МАВКЕЯ(1ЙООЕ) 0 ЙОЕС ОЕС ( 1 НОРЕ) 1Р ( ЙОЕС .3,7. М1ЙРЕС ) М13ЧОЕС )ЮЕФ 1Р ( ЙРЕС .СТ. ТНЕЕБН ) СОТО 700 М1ЙРЕС ТНВЕБН !34 Гл Б. Универсальные раереасенные методы ТНЙЕ5Н МОЕС 5ЕАЙСН 1М)ГР( ПЧООЕ) 700 СОМТ1МНЕ 1Г ( МНОЕЕЕ .СТ.
0 ) САЬЬ 0ЬЕН)Т ( МООЕ, ХА01 1 Ав)МСТ, МАЙКЕЙ, ЙСН5ЕЕ, ЙСН5ЕТ, МВЙНО ) 800 1Г ( мнм ьт меомз ) со то ЗОО Йетпнм ЕМО ОЕ1ЩМР (ОЕХега! Оцо!!сп! М!п!Тпшп Редгее а!дог!!))гп) Назначение этой подпрограммы — определение упорядочения по минимальной степени для произвольного несвязного графа. Она оперирует с входным графом, задаваемым посредством ХЕОХЗ' и пары (ХАР), АР)ХС'1'); полученное упорядочение хранится векторами РЕЯМ и 1Х')ГР.
Подпрограмма не сохраняет исходную структуру смежности, поскольку последняя используется для хранения последовательности фактор- графов. Работа подпрограммы начинается с присвоения начальных значений рабочим массивам ОЗ1ЕЕ, О) 1ХК, МАЯКЕЯ и вектору РЕС).
Затем происходит подготовка к основному циклу алгоритма. В этом цикле подпрограмма прежде всего определяет узел с минимальной степенью посредством техники барьерного поиска '). Используются две переменные; ТНЯЕБН и М1ХРЕО, Всякий узел, текущая степень которого равна значению ТНЯЕЗН, является узлом минимальной степени в графе исключения. Переменная М1ХРЕО хранит значение степени, следующее по величине за барьерным значением ТНЯЕЗН; она используется для модификации значения ТНЯЕЬН. После того как найден узел ХОРЕ с минимальной степенью, ОЕХЯМР определяет достижимое множество ХОРЕ через исключенные суперузлы; для этого она обращается к подпрограмме ()МРЯСН. Достижимое множество помещается в вектор ЯСНЗЕТ, а его размер — в ЯСНБХЕ.
Потом с помощью вектора О11ХК разыскиваются и нумеруются (исключаются) узлы, не различимые с ХОРЕ. Далее пересчитываются степени узлов достижимого множества и в то жс время определяются новые неразличимые узлы. В программе это достигается вызовом подпрограммыЯМРБРР. Затем значение барьера также изменяется. Прежде чем программа вернется на начало цикла — поиск очередного узла минимальной степени, выполняется (посредством подпрограммы ()МР(.)Т) преобразование фактор-графа. Программа заканчивает работу, когда пронумерованы все узлы графа.
') В оригинале — !)ггеа))о!й аеагсЫне. — Прим, нерее, ( )МОВСН (('„)по()еп1 МП КеаСНаЫЯ зе() Эта подпрограмма определяет достижимое множество данного узла КООТ через множество исключенных узлов. Предполагается, что структура смежности хранится в формате фактор-графа, как это описано в разделе 5.2.3. На выходе найденное достижимое множество помещается в вектор КСНБЕТ, а его размер будет значением переменной КСНВХЕ. В качестве побочного продукта определяется множество исключенных суперузлов, смежных с МООТ; оио помещается в вектор ЯВЛЕНО; значением ННОБХЕ будет размер этого множества. Для узлов указанных двух множеств будут установлены ненулевые значения в массиве МАМКЕК, Подпрограмма является точной реализацией алгоритма из раздела 5.2.2. После присвоения начальных значений в цикле ОО 600 ... исследуется каждый сосед узла КООТ.
Если этот сосед — представитель исключенного суперузла, то циклом ОО 500 ... в достижимое множество включается смежное множество суперузла в фактор-графе. В противном случае в достижимое множество включается сам сосед. с. с *" ° "" омпйсн . вычисление достижимого множествл ". С ° ° ° "° В АЛГОРИТМЕ МИНИМАЛЬНОИ СТЕПЕНИ ° -. "*. ° *" 5пВйопт1ме омпйсн ( йоот КАО1 Аптнсгг1 Овс, ИАйкей, 1 йснзге, йсйзет, мнпзге, ивано ) с и ° т" ° ° ° ° ° ° ° ° ° Феи с с с с с с с с с с с с с с с с с с с с с* ° * Й б.б.
Алгоритм минимальной степени !ЗВ ПОДПРОГРАММА ОПРЕДЕЛЯЕТ ДОСТИЖИМОЕ МНОЖЕСТВО УЗЛА ЧЕРЕЗ днинве подмножество. Лйедполлглем, что стиуктуРА СМЕЖНОСТИ ХРАНИТСЯ В ФОРМАТЕ ФАКТОР ГРАФА. ВХОДНЫЕ ПАРАМЕТРЫ- яоот - 3АдАнныЙ узел Вне зАдАннОГО пвдмножестВА ° (Хлпз, АО1НСТ) — МАССИВЫ ДЛЯ СТРУКТУРЫ СМЕЖНОСТИ. ОЕС вЂ” ВЕКТОР СТЕПЕНЕЙ. ОЕО(Х),йТ.О ОЗНАЧАЕТт ЧТО УЗЕЛ Х В ДАННОМ ПОДМНОЖЕСТВЕ ° ВЫХОДНЫЕ ПАРАМЕТРЫ- (йснзге, йсн5ет) - достижимое множестВО.
(мнп5ге, МВйнп) - Окрестность. ИЗМЕНЯЕМЫЕ ПАРАМЕТРЫ " млйкей - Вектор МАРкнРОВки для достижимОГО МНОЖЕСТВА И ОКРЕСТНОСТИ. ПОЛОЖИТЕЛЬНОЕ ЗНАЧЕНИЕ КОМПОНЕНТЫ УКАЗЫВАЕТт ЧТО УЗЕЛ В ДОСТИЖИМОМ МНОЖЕСТВЕ, ОТРИЦАТЕЛЬНОЕ- ВЫЛ СЛНТ с дРуГими или пйинлдлежЙт ОХРестности. )66 Гл. Б. Универсальные разреженные методы С 1НТЕСЕК АОЗМСУ(1), ВЕС(1), МАККЕЙ(1), 1 КСНБЕТ(1), МВЙНО(1) 1МТЕСЕК ХАУЗ(1), 1, 1$ТЙТ, 1$ТОР, З, ЗБТКТ, ЗБТОР, 1 МАВОК, МНР$2Е, МОРЕ, ЙСНБЕЕ, КООТ С ЦИКЛ ПО СОСЕДКИ УЗЛА ЙООТ В ФАКТОР - ГРАФЕ . МНР$2Е 0 йСНБХЕ 0 1БТЙТ ХАРЗ(КООТ) 1$то! КАРз(коот+!> - ! 1Р ( 1$ТОР .ЕТ. 1$ТйТ ) йЕТОКМ 00 600 1 1$ТКТ.
1$ТОР МАВОЙ АОЗМСУ(1) 1Р ( НАВОй .е(). 0 ) Йетокм 1Р ( МАККЕЙ(МАВОК) .МЕ. 0 ) СО ТО 600 ТР ( РЕС(МАВОК) .йт. 0 ) СО ТО 200 Включить ЛАВОЙ В дОстижитюе множесТВО йСН$2Е КСН$2Е + 1 КСНБЕТ(КСНБЕЕ) МАВОК МАККЕК(МАВОК) 1 00 ТО 600 С с С НАВОй " исключенный узел нАЙти Узлы ДОСТИЖИМЫЕ ИЗ НЕГО. МАККЕЙ(МАВОЙ) -1 МНРБЗЕ МНО$2Е + ! МВКНО(МНРБХЕ) МАВОК ЗБТКТ ХАРЗ(МАЙОЙ) ЗБТОР ХАРЗ(МАВОК41) - ! ОО $00 З ЗБТКТ, ЗБТОР МОРЕ АРЛ(СУ(З) МАВОК - МОРЕ 1Р (МОРЕ) 300, 600, 400 1Р ( МАККЕЙ(МОРЕ) .МЕ. 0 ) СО ТО 600 КСН$2Е КСНБЗЕ + 1 ЙСНБЕТ(ЙСН52Е) МОРИ НАВКЕК(МОРЕ) ! СОМТ1ЬП)Е ССЫПНОЕ йЕТОЙМ 200 300 ЗОО 600 ЯМ)зЯТ (Япо()еп1 МО ЯН01)еп1 нгар)) Тгапз(огп)а1)оп) Эта подпрограмма выполняет преобразование фактор-графа на структуре смежности (ХАШ, АШНСУ). Новый исключенный суперузел содержит узел КООТ и узлы из массива ИВКНО; КООТ будет его представителем в ионой структуре.
Его смежное множество в новом фактор-графе описывается парой (КСНЫЕ, КСНВЕТ). С ° С'' ' ' ()ЬЕХ)Т ... ПРЕОБРАЗОВАНИЕ ФАКГОР - ГРАФА ° ° ° е С ь В АЛГОРИТМЕ МИНИНАЛЬНОЙ СТЕПЕНН ' ° и ° ° С ° ° ° С С С С« С С С е* 100 С С С С С С С С С С С С С С С С С С С С С 200 С С С 300 Й 58. Алгоритм минимальной степени 137 ПОДПРОГРАННА ПРЕОБРАЗУЕТ ФАКТОР ГРАФ ПОСЛЕ ИСКЛЮЧЕНИЯ ОЧЕРЕДНОГО УЗЛА. ')ХОДНЫЕ ПАРАНЕТРЫКООТ - ТОЛЬКО ЧТО ИСКЛЮЧЕННЫЙ УЗЕЛ ° ОН СТАНОВИТСЯ ПРЕДСТАВИТЕЛЕН НОВОГО СУПЕРУЗЛА.
(ХАО). АОЛЧСУ) - СТРУКТУРА СМЕЖНОСТИ . (КСНБ2Е, КСНБЕТ) - ДОСТИЖИМОЕ МНОЖЕСТВО УЗЛА ИООТ В СТАРОМ ФАКТОР- ГРАФЕ. МВВНО - ОКРЕСТНОСТЬ КООТь БУДЕТ СЛИТА С НИМ ПРИ ФОРМИРОВАНИИ НОВОГО СУПЕРУЗЛА ° ИАВКЕВ - ВЕКТОР МАРКИРОВКИ. ИЗМЕНЯЕМЫЙ ПАРАМЕТР АО)МСУ - ПЕРЕХОДИТ В АРХМСУ ДЛЯ ФАКТОР - ГРАФА. БОВКООТ1МЕ СИ)Х)Т ( ВОСТ, ХАО), АР)МСУ. ИАВКЕВ, 1 КСНБХЕ, ЯСНЕЕТ, МВВНО ) 1МТЕОЕК АР)МСУ( 1), ИАВКЕК( 1), ВСНБЕТ( 1), МВйНО( 1) 1мтеиеВ КАОг(!), 1мнО, 1йсн, 1, )Бтйт, 1БУОР, ь1мк, ! МАКОВ. МОРЕ.
ВСНБЕЕ, ВООТ 1ВСН 0 1МНО 0 МОРЕ ВООТ )БТВТ ХАО1(МОРЕ) йБТОР ХА01(МОРЕь1) — 2 1Р ( 25ТОР .ЬТ. )БТКТ ) СО ТО 300 ПОНЕСТИТЬ ДОСТИЖИМЫЕ УЗЛЫ В СПИСОК СНЕЖИОСТИ ИОВЕ ° 00 200 1 ЗБТКТ, )БТОР 1КСН 1КСН ь 1 АР)МСУ(1) КСНБЕТ(1ВСН) 1Р ( 1ВСН .ОЕ. ВСНБЕЕ ) ОСТО 400 СО)ЧТ1МОЕ ПЕРЕХОД НА ДРУГОЙ СЕГМЕНТ ПАМЯТИ т ЗАНИНАЕНЫЙ МВННО, Ь1МК А01)ЧСУ(15ТОР+1) МОРЕ - Ь1МК 1Р ( !.1ЙК .)Т. 0 ) СОТО 100 1МНР 1МНР + 1 МОРЕ МВКНР(1МНО) АРЛЧСУ( 15ТОР+!) — МОРЕ 60 ТО 100 )38 Гл. 5 Униеереальнь1е разреженные методы ВСЕ ДОСТИЖИМЫЕ УЗЛЫ РАЗМЕВ(ЕНЫ. ЗАКОНЧИТЬ СПИСОК СМЕЖНОСТИ.
ДОВАВИТЬ КООТ К СПИСКУ СОСЕДЕЙ КАЖДОГО УЗЛА ИЗ ДОСТИЖИМОГО МНОЖЕСТВА. С С С С 400 АОЗМСУ(эь1) 0 ОО СОО ГКСН . 1, КСНЗЕЕ М(ЮЕ КСН5ЕТ(1КСН) 1Р ( ИАикек(НООе) .Ет. 0 ) сОтО 500 15ТИТ ХАОЮ(МОВЕ) 15ТОР КАОР(МОВЕ+1) — 1 00 500 1 55ТИТ, 15ТОР НАВОИ АОЗМСУ(1 ) 1Р ( МАИКЕИ((ЧАВОК) .СЕ. 0 ) СО ТО 500 АО)МСУ ( Ю ) ИООТ СОТО 500 СОМТ1МПЕ СОМТ1МПЕ йЕТПИМ ЕМО 500 500 После присвоения начальных значений новое смежное множество из (КСН52Е, КСНВЕТ) будет помещено в список смежности узла КОРТ в структуре (цикл РО 200 ...).