Viterbi Algorithm (1967) › 1967: Viterbi Algorithm

Michael BrenndoerferApril 14, 20253 min read
History of Language AIAll chapters
Part 1 of 9Signals & Symbols
Chapter 8Viterbi Algorithm (1967) › 1967: Viterbi Algorithm
Reading section 1 of 11 · 1967: Viterbi Algorithm · 3 minSection 1 of 11 · 3 min

Book contents

Section 1 of 11 · 3 min read

Viterbi Algorithm (1967) › 1967: Viterbi AlgorithmOne section · Sections in this chapter1 / 11 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

By the mid-1960s, researchers working on communication systems faced a fundamental computational challenge. They were developing decoding algorithms for convolutional codes, a type of error-correcting code used in digital communication. The problem seemed straightforward: given a noisy received signal, determine the most likely sequence of bits that the transmitter intended to send. But the straightforward approach.examining every possible bit sequence and computing its probability.was computationally intractable. With sequences of even modest length, the number of possibilities exploded exponentially, making exhaustive search completely impractical.

Andrew Viterbi, then at the University of California, Los Angeles and later at the University of Southern California, recognized that this combinatorial explosion could be tamed. The key insight was that not all possible sequences needed to be considered independently. The structure of the problem allowed for a dynamic programming solution that could find the optimal sequence efficiently by breaking it into smaller, overlapping subproblems. In 1967, Viterbi published the algorithm that would bear his name, transforming what had been an exponentially hard problem into one solvable in polynomial time.

The Viterbi algorithm introduced a powerful technique that extended far beyond its original application in error-correcting codes. Within a few years, researchers in speech recognition realized that the same mathematical structure.finding the most likely sequence of hidden states given observations.appeared throughout natural language processing. When processing spoken language, the acoustic signal doesn't directly reveal the words being spoken. Instead, you observe acoustic features and must infer the underlying sequence of phonemes or words. This was exactly the kind of decoding problem the Viterbi algorithm was designed to solve.

By the 1980s, the Viterbi algorithm had become central to Hidden Markov Models (HMMs) in speech recognition. Every major speech recognition system used it to decode acoustic observations into word sequences. But its influence extended further: part-of-speech taggers used Viterbi decoding to assign grammatical categories to words in sentences. Named entity recognition systems used it to identify sequences of words representing people, places, or organizations. The algorithm's efficiency and optimality made it the standard solution whenever the task involved finding the best sequence alignment between observations and hidden states.

The Viterbi algorithm demonstrated that dynamic programming could solve seemingly intractable problems in sequence modeling, establishing a pattern that would persist through decades of research. More fundamentally, it showed that optimal inference in sequential models was computationally feasible, making probabilistic sequence models practical tools rather than theoretical curiosities. The algorithm remains in use today, both as a direct tool in HMM-based systems and as a conceptual foundation for understanding sequence decoding in neural architectures.