*Cristopher Moore and Stephan Mertens*

- Published in print:
- 2011
- Published Online:
- December 2013
- ISBN:
- 9780199233212
- eISBN:
- 9780191775079
- Item type:
- chapter

- Publisher:
- Oxford University Press
- DOI:
- 10.1093/acprof:oso/9780199233212.003.0001
- Subject:
- Physics, Theoretical, Computational, and Statistical Physics

This prologue begins by considering three examples to demonstrate that in order to solve different problems, fundamentally different kinds of search and different types of proof are required. The ...
More

This prologue begins by considering three examples to demonstrate that in order to solve different problems, fundamentally different kinds of search and different types of proof are required. The first example deals with the nature of computation with a walk through the eighteenth-century town of Königsberg (now Kaliningrad), which had seven bridges connecting the two banks of the river Pregel with two islands. A popular puzzle of the time was whether it is possible to walk through the city by crossing each bridge only once. This puzzle was solved by Leonhard Euler in 1736 in the form of a theorem which states that: A connected graph contains an Eulerian cycle if and only if every vertex has even degree. If exactly two vertices have odd degree, it contains an Eulerian path but not an Eulerian cycle. The second example deals with Hamiltonian paths or cycles, while the third involves factoring integers and chess problems. This book explores how to solve problems as efficiently as possible — and how, and why, some problems are extremely hard.Less

This prologue begins by considering three examples to demonstrate that in order to solve different problems, fundamentally different kinds of search and different types of proof are required. The first example deals with the nature of computation with a walk through the eighteenth-century town of Königsberg (now Kaliningrad), which had seven bridges connecting the two banks of the river Pregel with two islands. A popular puzzle of the time was whether it is possible to walk through the city by crossing each bridge only once. This puzzle was solved by Leonhard Euler in 1736 in the form of a theorem which states that: A connected graph contains an Eulerian cycle if and only if every vertex has even degree. If exactly two vertices have odd degree, it contains an Eulerian path but not an Eulerian cycle. The second example deals with Hamiltonian paths or cycles, while the third involves factoring integers and chess problems. This book explores how to solve problems as efficiently as possible — and how, and why, some problems are extremely hard.

*Cristopher Moore and Stephan Mertens*

- Published in print:
- 2011
- Published Online:
- December 2013
- ISBN:
- 9780199233212
- eISBN:
- 9780191775079
- Item type:
- chapter

- Publisher:
- Oxford University Press
- DOI:
- 10.1093/acprof:oso/9780199233212.003.0002
- Subject:
- Physics, Theoretical, Computational, and Statistical Physics

This chapter discusses the complexity of a problem by thinking about the best possible algorithm, or computer program, that solves it. It shows that computational complexity theory is not about how ...
More

This chapter discusses the complexity of a problem by thinking about the best possible algorithm, or computer program, that solves it. It shows that computational complexity theory is not about how to write better programs, but about understanding the underlying structure of different problems as well as asking fundamental questions about them. The chapter first explains problems and solutions by considering a Eulerian path and a Hamiltonian path. It then examines Euclid's algorithm, time and space, and the notion of scaling in physics. It also analyzes the distinction between polynomial functions of n and exponential ones, why this distinction is very important, and why it is so robust with respect to changes in the definition of computation. Finally, the chapter looks at the tractability and mathematical insight into a problem's structure.Less

This chapter discusses the complexity of a problem by thinking about the best possible algorithm, or computer program, that solves it. It shows that computational complexity theory is not about how to write better programs, but about understanding the underlying structure of different problems as well as asking fundamental questions about them. The chapter first explains problems and solutions by considering a Eulerian path and a Hamiltonian path. It then examines Euclid's algorithm, time and space, and the notion of scaling in physics. It also analyzes the distinction between polynomial functions of n and exponential ones, why this distinction is very important, and why it is so robust with respect to changes in the definition of computation. Finally, the chapter looks at the tractability and mathematical insight into a problem's structure.