[Verse 1]
In sixty-eight the Zodiac came calling
With letters full of fear and cryptic code
Three-forty symbols kept the experts crawling
For fifty-one long years down mystery's road
He wrote in circles, squares, and backwards letters
A homophonic puzzle, complex and deep
Each symbol standing for multiple letters
While families lost their loved ones, couldn't sleep
[Chorus]
Hill climbing, step by step we rise
Simulated annealing, rolling the dice
Sometimes we take a backward move
To find the path that breaks right through
Optimization never sleeps
Until the cipher finally speaks
Hill climbing up, annealing down
The killer's message can be found
[Verse 2]
Twenty-twenty brought a team of codebreakers
With algorithms running through the night
They fed the computer billions of combinations
Testing letter frequencies for what felt right
The message wasn't written left to right
But diagonal with errors thrown inside
Hill climbing searched for peaks of English bright
While annealing helped the bad solutions slide
[Chorus]
Hill climbing, step by step we rise
Simulated annealing, rolling the dice
Sometimes we take a backward move
To find the path that breaks right through
Optimization never sleeps
Until the cipher finally speaks
Hill climbing up, annealing down
The killer's message can be found
[Bridge]
When hill climbing gets stuck on local peaks
Simulated annealing finds what it seeks
Accept worse answers, jump to something new
Escape the trap and find a pathway through
Homophonic means one letter becomes many
Different symbols for the same sound, plenty
The algorithms scored each attempt they made
Against the patterns English words displayed
[Verse 3]
The decoded message was a taunting boast
About his victims and his twisted game
But gave no clues about the killer's ghost
No identity, no face, no real true name
The cipher-breaking algorithms won the day
But mysteries still linger in the night
Sometimes the greatest victories, they say
Just shed a little more forensic light
[Final Chorus]
Hill climbing, step by step we rise
Simulated annealing, rolling the dice
Sometimes we take a backward move
To find the path that breaks right through
Fifty-one years of silent code
'Til algorithms cracked the load
Hill climbing up, annealing down
At last the Zodiac was found
[Outro]
The cipher spoke but kept its darkest secret
The algorithms solved what humans couldn't beat