Введение алгоритма Ху-Такера
Введение алгоритма Ху-Такера:
Алгоритм Ху-Такера помогает сжимать какой-то порядок блоков, предполагая, что у вас есть некий естественный порядок следования, тогда если учитываются строки и ноты, то с их учетом они сортируются по номерам.
Теперь возникает вопрос о том, как мы можем построить порядок так, чтобы сжатие соответствовало идеально, и по-прежнему представлять тот же код, не изменяя природу строк, т. е. их порядок.
Например, « Гики для гиков » остается «Гики для гиков », а не « Гики для гиков ».
Следовательно, нам также нужно сохранять порядок при сжатии вещей, поэтому сортировка строк по числу — это путь.
Что ж, для решения всех этих проблем у нас есть простой алгоритм под названием Hu-Tuker, который помогает получать точные результаты, несмотря на то, что он довольно старый.
Понимание Ху-Такера:
Этот алгоритм подразделяется на 3 различных этапа, после чего поочередно оценивается временная сложность каждого из методов. После этого берутся пробы, а затем обосновывается сумма, которая взимается за сложность. Из всех трех фаз есть 2 независимых метода, которые требуют сложности O(n 2 ) и O(nlogn) соответственно.
Таким образом, разделяющим свойством или отличительной чертой, как могли бы сказать некоторые, было бы производное от них абстрактное отношение.
И затем, после нумерации, процесс декодирования и кодирования выполняется самим алгоритмом сразу после ввода значений!
The Hu–Tucker Code is the alphabetical search tree’s binary code.
Давайте посмотрим на одно дерево, чтобы лучше его изучить:
Как и на приведенном выше рисунке, проход 1, мы видим из деревьев, что определенные строки (классифицированные как бета) хранят определенные значения с фиксированной длиной, что-то, что мы рассмотрели выше. Теперь, после выполнения этих преобразований сверхурочно, они становятся слабыми для алгоритма и, таким образом, в конечном итоге сжимаются. Кроме того, поскольку мы добавили числа, мы можем быть уверены, что заказ будет идеальным!
После этого следует этап 2, который берет наиболее часто встречающиеся символы и группирует их соответствующим образом, затем сжимает их, а затем распаковывает, так что используемое пространство для хранения становится меньше, так как часто встречающиеся символы теперь сгруппированы!
Хотя этот алгоритм довольно стар для работы, но говорят, что классическая суть сжатия вытекает из него. Более того, все же есть определенные преимущества использования этого метода перед другими, так как задержки и потери сжатия в этом методе действительно меньше. Теперь мы увидим короткий и четкий пример алгоритма Ху-Такера, чтобы лучше понять кривую обучения с использованием определенных узлов и символов алфавита.
Ниже приведен алгоритм реализации Hu Tucker:
1. "terminal" label node 0, ... n-1 2. Repeat repetitions (n - 1): (a) find a pair I j) to be I I < j; (ii) node I or j is not labelled "none" and (iii) no node (i+1, etc.) (iv) weight[i] + weight[j] is minimal, (v) I is not unique after (iv) and (v) 3. j is minimal if not unique following the selection process. (a) Mix node j and (b)save node j as new node I (c) Weight[i]+= Weight[j] Weight[i] Weight (d) Node I "interior" (e) Node I "not" Label node
Применение Ху-Такер:
Давайте рассмотрим 2 приложения алгоритма Ху Такера для лучшего понимания.
- Реализация поиска:
Поскольку Hu Tucker представляет собой алгоритм сжатия и поиска шаблонов, его можно использовать для поиска шаблонов в базах данных, поскольку он использует древовидную структуру, а все методы поиска максимально широко используют бинарный поиск.
Пример:
Обозначим количество ребер деревьев как 'i', которое является подмножеством другого множества элементов, такого что i ∈ {1, 2, . . . , n}, то с помощью алгоритма Ху-Таккера мы можем найти вес в заданном множестве и получить результат поиска. - Функции минимизации затрат:
Следуя сверху, алгоритм Ху-Такера также является методом сжатия и, таким образом, помогает найти расчеты функции минимальной стоимости.
Для минимизации используется следующая формула:
La(w,l) , loga∑ Xn i=1 w(i)a l(i)
Недостатки Ху-Такера:
Несмотря на то, что алгоритм Ху-Такера — аккуратный и глубокий алгоритм, он, как и все другие алгоритмы, имеет недостатки и места, где он дает сбои. Алгоритм несколько странный, так как он зависит от большого количества другой информации, которая иногда не предоставляется. Как и в Приложении 2 выше, логарифмическая функция требует слишком много данных, что обычно не требуется для современных алгоритмов сжатия. Кроме того, поскольку этот алгоритм устарел, новые алгоритмы имеют лучшую и меньшую временную сложность по сравнению с этим. поэтому он чувствует себя немного устаревшим и хуже их!
Вывод :
Это было все о кратком введении в алгоритм Ху-Таккера. Надеюсь, эта статья помогла вам понять краткое введение в нее и поможет вам проложить свой путь вперед!