Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Обобщены дистрибутивный закон (GDL) является обобщением распределительного свойства , которое приводит к возникновению общего прохождения сообщения алгоритму. [1] Это синтез работ многих авторов в области теории информации , цифровых коммуникаций , обработки сигналов , статистики и искусственного интеллекта . Закон и алгоритм были представлены в полуучебном пособии Шриниваса М. Аджи и Роберта Дж. МакЭлиса с тем же названием. [1]

Введение [ править ]

«Закон распределения в математике - это закон, связывающий операции умножения и сложения, выраженные символически, то есть мономиальный множитель распределяется или применяется отдельно к каждому члену биномиального множителя , в результате чего получается произведение » - Britannica [ 2]

Как видно из определения, применение закона распределения к арифметическому выражению сокращает количество операций в нем. В предыдущем примере общее количество операций уменьшилось с трех (два умножения и сложение в ) до двух (одно умножение и одно сложение ). Обобщение закона распределения приводит к большому семейству быстрых алгоритмов . Это включает в себя алгоритм БПФ и Витерби .

Более формально это объясняется в следующем примере:

где и - действительные функции, и (скажем)

Здесь мы «маргинализация из» независимых переменных ( , и ) , чтобы получить результат. Когда мы вычисляем вычислительную сложность, мы видим, что для каждой пары есть члены, связанные с триплетом, который должен принимать участие в оценке с каждым шагом, имеющим одно сложение и одно умножение. Следовательно, общее количество необходимых вычислений равно . Следовательно, асимптотическая сложность указанной функции равна .

Если мы применим закон распределения к правой части уравнения, мы получим следующее:

Это означает, что его можно описать как продукт, в котором и

Теперь, когда мы вычисляем вычислительную сложность, мы можем видеть, что есть сложение и каждое, и есть умножения, когда мы используем произведение для оценки . Следовательно, общее количество необходимых вычислений равно . Следовательно, асимптотическая сложность вычислений сводится к от . Это показывает на примере, что применение закона распределения снижает вычислительную сложность, что является одной из хороших черт «быстрого алгоритма».

История [ править ]

Некоторые из проблем, для решения которых использовался закон распределения, можно сгруппировать следующим образом.

1. Алгоритмы декодирования
. GDL-подобный алгоритм использовался Галлагером для декодирования кодов с низкой плотностью проверки на четность. Основываясь на работе Галлагера, Таннер представил граф Таннера и выразил работу Галлагера в форме передачи сообщений. График Таннерса также помог объяснить алгоритм Витерби .

Форни заметил, что при декодировании сверточных кодов методом максимального правдоподобия Витерби также использовались алгоритмы общности, подобные GDL.

2. Алгоритм
"вперед -назад". Алгоритм "вперед-назад" помогал как алгоритм отслеживания состояний в цепи Маркова . И для этого также использовался алгоритм GDL типа общности

3. Искусственный интеллект
. Понятие деревьев соединений использовалось для решения многих задач в области ИИ. Также концепция исключения ведра использовала многие концепции.

Проблема MPF [ править ]

МПФ или изолировать функцию продукта является общей вычислительной проблемой , которая , как частный случай включает в себя множество классических задач , такие как вычисление дискретного преобразования Адамар , максимальное правдоподобие декодирования из линейного кода над памятью менее каналом , и матрица цепи умножение . Сила GDL заключается в том, что он применяется к ситуациям, в которых сложение и умножение являются обобщенными. Коммутативное полукольцо является хорошей основой для объяснения такого поведения. Он определен над множеством с операторами " " и " " где и - коммутативные моноиды и закон распределения сохраняется.

Позвольте быть переменные такие, что где конечное множество и . Вот . Если и , пусть , , , , и

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

Теперь глобальное ядро определяется как:

Определение проблемы MPF : для одного или нескольких индексов вычислите таблицу значений - маргинализации глобального ядра , которая является функцией, определенной как

Вот дополнение по отношению к, и называется целевой функцией , или целевой функцией в . Можно заметить, что вычисление целевой функции очевидным образом требует операций. Это связано с тем, что при вычислении целевой функции необходимы сложения и умножения . Алгоритм GDL, который объясняется в следующем разделе, может уменьшить эту вычислительную сложность.

Ниже приведен пример проблемы MPF. Позвольте и быть такими переменными, что и . Вот и . Данные функции, использующие эти переменные, есть и, и нам нужно вычислить и определить как:

Здесь локальные домены и локальные ядра определяются следующим образом:

где - целевая функция, а - целевая функция.

Рассмотрим другой пример, где и - функция с действительным знаком. Теперь мы рассмотрим задачу MPF, в которой коммутативное полукольцо определяется как множество действительных чисел с обычным сложением и умножением, а локальные области и локальные ядра определяются следующим образом:

Теперь, поскольку глобальное ядро ​​определяется как произведение локальных ядер, оно

а целевая функция в локальной области равна

Это преобразование Адамара функции . Следовательно, мы можем видеть, что вычисление преобразования Адамара является частным случаем задачи MPF. Можно продемонстрировать больше примеров, чтобы доказать, что проблема MPF образует частные случаи многих классических задач, как объяснено выше, детали которых можно найти в [1]

GDL: алгоритм решения проблемы MPF [ править ]

Если можно найти взаимосвязь между элементами данного набора , то можно решить проблему MPF, основываясь на понятии распространения убеждений, которое является особым использованием техники «передачи сообщений». Требуемая взаимосвязь состоит в том, что данный набор локальных доменов может быть организован в дерево соединений . Другими словами, мы создаем теоретико-графовое дерево с элементами в качестве вершин дерева , так что для любых двух произвольных вершин говорят и где и существует ребро между этими двумя вершинами, то пересечение соответствующих меток, а именно , - это подмножество метки на каждой вершине уникального пути от до .

Например,

Пример 1. Рассмотрим следующие девять локальных доменов:

Для указанного выше набора локальных доменов их можно организовать в дерево соединений, как показано ниже:

Аналогично, если дан другой набор, подобный следующему

Пример 2: Рассмотрим следующие четыре локальных домена:

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

5. , 6. ,

Аналогично для этого набора доменов дерево соединений выглядит так, как показано ниже:

Алгоритм обобщенного закона распределения (GDL) [ править ]

Вход: набор локальных доменов.
Выход: для данного набора доменов вычисляется возможное минимальное количество операций, необходимых для решения задачи.
Таким образом, если и связаны ребром в дереве соединений, то сообщение от до представляет собой набор / таблицу значений, заданных функцией :: . Для начала все функции, т.е. для всех комбинаций и в данном дереве, определены как идентичные, и когда конкретное сообщение обновляется, оно следует уравнению, приведенному ниже.

знак равно

где означает, что это смежная вершина в дереве.

Точно так же каждая вершина имеет состояние, которое определяется как таблица, содержащая значения из функции. Точно так же, как сообщения инициализируются значением 1 идентично, состояние определяется как локальное ядро , но при каждом обновлении оно следует следующему уравнению:

Основы работы алгоритма [ править ]

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

Планирование передачи сообщений и вычисления состояния [ править ]

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

Давайте начнем с проблемы с одной вершиной , GDL начнет с направления каждого ребра к целевой вершине . Здесь сообщения отправляются только в направлении целевой вершины. Обратите внимание, что все направленные сообщения отправляются только один раз. Сообщения начинаются с конечных узлов (где степень равна 1) и идут вверх к целевой вершине . Сообщение передается от листьев к своим родителям, а затем оттуда к их родителям и так далее, пока не достигнет целевой вершины . Целевая вершина вычислит свое состояние только тогда, когда она получит все сообщения от всех своих соседей. Когда у нас есть состояние, мы получили ответ, и, следовательно, алгоритм завершается.

Например, давайте рассмотрим дерево соединений, построенное из набора локальных доменов, приведенного выше, т.е. набора из примера 1.
Теперь таблица планирования для этих доменов (где находится целевая вершина ).










Таким образом, сложность GDL с одной вершиной может быть представлена ​​как

арифметические операции
Где (Примечание: объяснение приведенного выше уравнения объясняется позже в статье) - это метка . является степень от (то есть число вершин , смежных с v).

Чтобы решить проблему всех вершин , мы можем запланировать GDL несколькими способами, некоторые из них являются параллельной реализацией, когда в каждом раунде обновляется каждое состояние и каждое сообщение вычисляется и передается одновременно. В этом типе реализации состояния и сообщения будут стабилизироваться после количества раундов, которое не больше диаметра дерева. В этот момент все состояния вершин будут равны желаемой целевой функции.

Другой способ запланировать GDL для этой проблемы - последовательная реализация, аналогичная задаче с одной вершиной, за исключением того, что мы не останавливаем алгоритм до тех пор, пока все вершины требуемого набора не получат все сообщения от всех своих соседей и не вычислим их государственный.
Таким образом, количество арифметических операций, необходимых для этой реализации, составляет не более арифметических операций.

Построение дерева соединений [ править ]

Ключ к построению дерева соединений лежит в графе локальной области , который является взвешенным полным графом с вершинами, то есть по одной для каждой локальной области, имеющей вес ребра, определенный как . если , то мы говорим, что содержится в . Обозначается (вес остовного дерева максимального веса ), который определяется как

где n - количество элементов в этом наборе. Для большей ясности и подробностей обратитесь к ним. [3] [4]

Теорема расписания [ править ]

Позвольте быть деревом соединений с множеством вершин и множеством ребер . В этом алгоритме сообщения отправляются в обоих направлениях на любом ребре, поэтому мы можем сказать / рассматривать набор ребер E как набор упорядоченных пар вершин. Например, из рисунка 1 можно определить следующее

ПРИМЕЧАНИЕ: выше приведены все возможные направления, по которым сообщение может перемещаться в дереве.

Расписание для GDL определяется как конечная последовательность подмножеств . Что обычно обозначается как { }, где - набор сообщений, обновляемых во время цикла выполнения алгоритма.

Определив / увидев некоторые обозначения, мы увидим, что в теореме говорится: когда нам дается расписание , соответствующая решетка сообщений представляет собой конечный ориентированный граф с множеством вершин , в котором типичный элемент обозначается как for , Затем после завершения передача сообщения, состояние в вершине будет целью, определенной в

и если есть путь от до

Вычислительная сложность [ править ]

Здесь мы пытаемся объяснить сложность решения задачи MPF с точки зрения количества математических операций, необходимых для расчета. т.е. мы сравниваем количество операций, требуемых при вычислении с использованием обычного метода (здесь под обычным методом мы подразумеваем методы, которые не используют передачу сообщений или деревья соединений в коротких методах, которые не используют концепции GDL) и количество операций, использующих обобщенный распределительный закон.

Пример: рассмотрим простейший случай, когда нам нужно вычислить следующее выражение .

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

Подобно объясненному выше примеру, мы будем выражать уравнения в различных формах, чтобы выполнить как можно меньше операций с помощью GDL.

Как объяснялось в предыдущих разделах, мы решаем проблему, используя концепцию деревьев соединений. Оптимизация, полученная с помощью этих деревьев, сравнима с оптимизацией, полученной путем решения полугрупповой задачи на деревьях. Например, чтобы найти минимум группы чисел, мы можем заметить, что если у нас есть дерево и все элементы находятся в нижней части дерева, то мы можем сравнить минимум два элемента параллельно, и результирующий минимум будет написано родителю. Когда этот процесс распространяется вверх по дереву, минимум группы элементов будет находиться в корне.

Ниже приводится сложность решения дерева соединений с использованием передачи сообщений.

Перепишем использованную ранее формулу к следующему виду. Это уравнение для сообщения, которое должно быть отправлено из вершины v в w

---- уравнение сообщения

Аналогично перепишем уравнение для вычисления состояния вершины v следующим образом

Сначала мы проанализируем проблему с одной вершиной и предположим, что целевая вершина есть, и, следовательно, у нас есть одно ребро от до . Предположим, у нас есть край, мы вычисляем сообщение, используя уравнение сообщения. Для расчета требуется

дополнения и

умножения.

(Мы представляем как .)

Но будет много возможностей для следовательно , возможностей . Таким образом, для всего сообщения потребуется

дополнения и

умножения

Общее количество арифметических операций, необходимых для отправки сообщения по краям дерева, будет

дополнения и

умножения.

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

дополнения и

умножения

Таким образом, общее количество вычислений равно

----

где - край и его размер определяется

Приведенная выше формула дает нам верхнюю границу.

Если мы определим сложность ребра как

Следовательно, можно записать как

Теперь мы вычислим сложность ребра для задачи, определенной на рисунке 1, следующим образом

Общая сложность будет значительно ниже по сравнению с прямым методом. (Здесь под прямым методом мы подразумеваем методы, которые не используют передачу сообщений. Время, затрачиваемое на использование прямого метода, будет эквивалентно вычислению сообщения в каждом узле и времени для вычисления состояния каждого из узлов.)

Теперь мы рассмотрим задачу для всех вершин, где сообщение должно быть отправлено в обоих направлениях, а состояние должно быть вычислено в обеих вершинах. Это потребует, но с помощью предварительных вычислений мы можем уменьшить количество умножений до . Вот степень вершины. Пример: Если есть набор с числами. Можно вычислить все d продуктов из с в большинстве умножений , а не очевидный . Мы делаем это, предварительно вычисляя количества, и это требует умножения. Тогда если обозначает произведение всех, кроме того, что у нас есть, и так далее, потребуется еще одно умножение, дающее общее

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

Может показаться, что GDL верен только тогда, когда локальные домены могут быть представлены в виде дерева соединений. Но даже в случаях, когда есть циклы и количество итераций, сообщения будут примерно равны целевой функции. Эксперименты с алгоритмом Галлагера – Таннера – Виберга для кодов с низкой плотностью проверки на четность подтвердили это утверждение.

Ссылки [ править ]

  1. ^ а б в Аджи, С.М. МакЭлис, Р.Дж. (март 2000 г.). «Обобщенный распределительный закон» (PDF) . IEEE Transactions по теории информации . 46 (2): 325–343. DOI : 10.1109 / 18.825794 .
  2. ^ "распределительный закон" . Encyclopdia Britannica. Энциклопедия Britannica Online . Энциклопедический словарь Брокгауза Inc . Проверено 1 мая 2012 года .
  3. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 19 марта 2015 года . Проверено 19 марта 2015 . CS1 maint: archived copy as title (link) Алгоритмы дерева соединений
  4. ^ http://www-anw.cs.umass.edu/~cs691t/SS02/lectures/week7.PDF Архивировано 26 мая 2012 г. на Wayback Machine Алгоритм дерева соединений