I grew up in a small oilfield town in China and spent much of my childhood playing go, earning my yondan at 10 before my interests shifted toward mathematics and art in my teenage years. This was years before AlphaGo, when computers were nowhere close to human-level performance, but I had come to think of Go as primarily about pattern recognition, understanding positions more readily through their geometry.
Long before I encountered theoretical computer science or began thinking about geometry, optimization duality, recursive structures, and the interplay of proof and computation, I was fascinated by the complexity of ko fights.
The Go term ko derives from the Chinese interpretation of kalpa in Buddhism, meaning a vast span of time between the creation and destruction of the universe. It adds beautiful, complex non-local game structures to Go, as players need to consider the long-term, non-immediate consequences of their actions, or aji, as the Japanese word for “taste” beautifully describes it.