CSFG
English Deutsch Beta Español Beta język polski (2.6.0)
Chapters Curriculum Guides Appendices

Complexity and Tractability
12.7. The whole story!

Complexity and Tractability

  • 12.1. What's the big picture?
  • 12.2. Algorithms, problems, and speed limits
  • 12.3. Tractability
  • 12.4. The Travelling Salesman Problem
  • 12.5. Bin packing problem
  • 12.6. Other intractable problems
  • 12.7. The whole story!
  • 12.8. Further reading

The question of tractability is a big one in computer science – in fact, what is widely regarded as the biggest unsolved problem in computer science revolves around it. You may recall that we mentioned that there are thousands of problems that we don't have a tractable solution for, yet a tractable solution to one can be adapted to all the others. This group of problems is called "NP-complete" (NP stands for non-deterministic polynomial; complete just means that they can all be converted to each other!) The big question is whether or not there is a polynomial time algorithm for any one of them, in which case all NP problems will have a P (polynomial time) solution. The question is often referred to as whether or not P equals NP.

Actually, things get worse. So far we've talked about intractable problems – ones that can be solved, but might need billions of years on a computer. If you think it's bad that some problems take that long to solve, that's nothing! These problems are at least decidable – if given enough time there exists an algorithm that will always lead to a correct answer. There are some well known problems that are undecidable – we know we can never write a correct algorithm to solve the problem on a computer. For example, writing a program that reliably tells you if another program will finish or not is impossible! There are other examples of such problems here:

  • http://www.cs4fn.org/algorithms/tiles.php
  • http://www.cs4fn.org/algorithms/uncomputable.php
  • http://www.cs4fn.org/algorithms/haltingproblem.php

It's good to know about these issues, to avoid getting stuck writing impossible programs. It's also a fascinating area of research with opportunities to make a discovery that could change the world of computing, as well as contribute to our understanding on what can and can't be computed.

Previous:
Other intractable problems
Next:
Further reading

Looking for something for primary schools? Check out CS Unplugged.

The Computer Science Field Guide is an online interactive resource for high school students learning about computer science.

Useful Links

  • About
  • Chapters
  • Interactives
  • Curriculum Guides

Community

  • Twitter
  • YouTube
  • GitHub

Help

  • Search
  • Glossary
  • Feedback

Switch to student mode

English | Deutsch | Español | język polski (2.6.0)

The Computer Science Field Guide material is open source on GitHub, and this website's content is shared under a Creative Commons Attribution-ShareAlike 4.0 International license. The Computer Science Field Guide is a project by the Computer Science Education Research Group at the University of Canterbury, New Zealand. Icons provided generously by icons8.

3.15.1

This definition is not available in English, sorry!