An Introduction to Complex Systems by Joe Tranquillo
Author:Joe Tranquillo
Language: eng
Format: epub
ISBN: 9783030025892
Publisher: Springer International Publishing
6.6.2 The Halting Problem and Traveling Salesmen
In 1936, while laying down the groundwork for a theory of computation, Turing came across a major problem. When a program is entered into a computer and set in motion, how long will it take to complete? How do we know that the program won’t simply run forever? At the time, there were plenty of programs known that seemed to run forever. Remember that Turing was assuming infinite resources (e.g., the program won’t stop because it consumes too much energy, a user presses an escape key, or other such external ways to stop the program). It is easy to create a simple program that will go into an infinite loop. But for more complex problems one will not know ahead of time if it will ever stop. Turing proved that there is no foolproof way, simply by looking at a program, to know if it will halt or not. This problem is known as the halting problem.
The classic example of a halting problem is the traveling salesman problem. In this scenario we imagine a salesperson who will travel to various cities. The goal is to find the shortest overall pathway that will allow the salesperson to visit each city only once. If we consider five cities, the shortest route can be found by trying all of the options. A quick calculation will show that there are five ways to visit the first city, then four possibilities after that, and so on, resulting in 5! = 120 possible pathways. If we then increase to 20 cities, we find that there is an explosion in the pathways that would need to be checked. Is there any algorithm that can be sure to find the shortest pathway, no matter the number of cities, without trying every single pathway?
It is important to note that when abstracted, the traveling salesman problem is really about navigating any type of network in a way that will visit each node only once. For that reason, it can be applied to all sorts of problems in the real world. In fact, whenever mathematicians, decision scientists, or computer scientists encounter a problem of this sort, they often will call it a traveling salesman problem.
Even more generally we want to know how much worse a problem will become as it scales. Some problems do not become any worse as we scale them. Others are worse but scale linearly. Then there are problems that get worse but in terms of some polynomial. In other words the problem becomes x 2 times worse or perhaps x 5 worse. What can be shown is that the traveling salesman problem gets worse even faster than any polynomial expression. For that reason it is referred to as an NP-hard (for nondeterministic polynomial time) problem. What Turing in fact proved was that problems that are of type P (polynomial time) can be solved algorithmically. But when it came to NP problems, there would be no way to write an algorithm that could do better than simply trying all of the possibilities.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Computer Vision & Pattern Recognition | Expert Systems |
Intelligence & Semantics | Machine Theory |
Natural Language Processing | Neural Networks |
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8295)
Test-Driven Development with Java by Alan Mellor(6697)
Data Augmentation with Python by Duc Haba(6602)
Principles of Data Fabric by Sonia Mezzetta(6359)
Learn Blender Simulations the Right Way by Stephen Pearson(6252)
Microservices with Spring Boot 3 and Spring Cloud by Magnus Larsson(6118)
Hadoop in Practice by Alex Holmes(5958)
Jquery UI in Action : Master the concepts Of Jquery UI: A Step By Step Approach by ANMOL GOYAL(5806)
RPA Solution Architect's Handbook by Sachin Sahgal(5518)
Big Data Analysis with Python by Ivan Marin(5347)
The Infinite Retina by Robert Scoble Irena Cronin(5217)
Life 3.0: Being Human in the Age of Artificial Intelligence by Tegmark Max(5143)
Pretrain Vision and Large Language Models in Python by Emily Webber(4306)
Infrastructure as Code for Beginners by Russ McKendrick(4069)
Functional Programming in JavaScript by Mantyla Dan(4037)
The Age of Surveillance Capitalism by Shoshana Zuboff(3946)
WordPress Plugin Development Cookbook by Yannick Lefebvre(3784)
Embracing Microservices Design by Ovais Mehboob Ahmed Khan Nabil Siddiqui and Timothy Oleson(3585)
Applied Machine Learning for Healthcare and Life Sciences Using AWS by Ujjwal Ratan(3562)
