Title: Hill Climbing Algorithm in Python - AskPython
Open Graph Title: Hill Climbing Algorithm in Python - AskPython
X Title: Hill Climbing Algorithm in Python - AskPython
Description: You give hill climbing a starting route between 11 cities, and it gets stuck at 164.6. Restart it from a different route 50 times and the answer does not
Open Graph Description: You give hill climbing a starting route between 11 cities, and it gets stuck at 164.6. Restart it from a different route 50 times and the answer does not
X Description: You give hill climbing a starting route between 11 cities, and it gets stuck at 164.6. Restart it from a different route 50 times and the answer does not
Opengraph URL: https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python
X: @AskPython
Generator: WordPress 7.0
Domain: www.askpython.com
{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://www.askpython.com/#person","name":"Rnzo1zWtYm","sameAs":["https://twitter.com/AskPython"],"logo":{"@type":"ImageObject","@id":"https://www.askpython.com/#logo","url":"https://www.askpython.com/wp-content/uploads/2019/12/logo.svg","contentUrl":"https://www.askpython.com/wp-content/uploads/2019/12/logo.svg","caption":"Rnzo1zWtYm","inLanguage":"en-US"},"image":{"@type":"ImageObject","@id":"https://www.askpython.com/#logo","url":"https://www.askpython.com/wp-content/uploads/2019/12/logo.svg","contentUrl":"https://www.askpython.com/wp-content/uploads/2019/12/logo.svg","caption":"Rnzo1zWtYm","inLanguage":"en-US"}},{"@type":"WebSite","@id":"https://www.askpython.com/#website","url":"https://www.askpython.com","name":"Rnzo1zWtYm","publisher":{"@id":"https://www.askpython.com/#person"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://www.askpython.com/wp-content/uploads/2022/10/Hill-Climbing.png","url":"https://www.askpython.com/wp-content/uploads/2022/10/Hill-Climbing.png","width":"1200","height":"800","caption":"Hill Climbing","inLanguage":"en-US"},{"@type":["WebPage","FAQPage"],"@id":"https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python#webpage","url":"https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python","name":"Hill Climbing Algorithm in Python - AskPython","datePublished":"2026-07-06T05:36:16+00:00","dateModified":"2026-07-06T05:36:20+00:00","isPartOf":{"@id":"https://www.askpython.com/#website"},"primaryImageOfPage":{"@id":"https://www.askpython.com/wp-content/uploads/2022/10/Hill-Climbing.png"},"inLanguage":"en-US","mainEntity":[{"@type":"Question","url":"https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python#faq-question-1700000000001","name":"Is hill climbing the same as gradient descent?","acceptedAnswer":{"@type":"Answer","text":"No. Gradient descent uses the gradient of a continuous function to pick a step direction. Hill climbing only evaluates the function at discrete neighbor states. On a discrete problem like TSP, hill climbing is the natural choice. On a continuous problem, gradient descent almost always wins."}},{"@type":"Question","url":"https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python#faq-question-1700000000002","name":"Why does random restart help?","acceptedAnswer":{"@type":"Answer","text":"A single climb stops at the first local optimum it hits. Different starting states lead to different local optima. Running many climbs and keeping the best result gives the search a way to escape the basin it landed in, at the cost of more compute. The improvement is monotone in the number of restarts and saturates once the search has found a good fraction of the local optima."}},{"@type":"Question","url":"https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python#faq-question-1700000000003","name":"What is a good neighborhood for TSP?","acceptedAnswer":{"@type":"Answer","text":"The 2-opt swap used in this article, where you reverse the segment between two edges, is the standard neighborhood for small TSP instances. It is simple, exhaustive, and produces O(n^2) neighbors per state. For larger instances, Or-opt moves and Lin-Kernighan give better results at higher implementation cost."}}]},{"@type":"Person","@id":"https://www.askpython.com/author/tanishka","name":"Tanishka Dhondge","url":"https://www.askpython.com/author/tanishka","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/0b511fc5c56bd0d54e38643592b85fd8cb8127fc34c7d3a6bcab0325e1eeb042?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/0b511fc5c56bd0d54e38643592b85fd8cb8127fc34c7d3a6bcab0325e1eeb042?s=96&d=mm&r=g","caption":"Tanishka Dhondge","inLanguage":"en-US"}},{"@type":"BlogPosting","headline":"Hill Climbing Algorithm in Python - AskPython","datePublished":"2026-07-06T05:36:16+00:00","dateModified":"2026-07-06T05:36:20+00:00","author":{"@id":"https://www.askpython.com/author/tanishka","name":"Tanishka Dhondge"},"publisher":{"@id":"https://www.askpython.com/#person"},"description":"You give hill climbing a starting route between 11 cities, and it gets stuck at 164.6. Restart it from a different route 50 times and the answer does not","name":"Hill Climbing Algorithm in Python - AskPython","@id":"https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python#richSnippet","isPartOf":{"@id":"https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python#webpage"},"image":{"@id":"https://www.askpython.com/wp-content/uploads/2022/10/Hill-Climbing.png"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://www.askpython.com/python/examples/hill-climbing-algorithm-in-python#webpage"}}]}
| og:locale | en_US |
| og:type | article |
| og:site_name | AskPython |
| article:section | Python Programming Examples |
| og:updated_time | 2026-07-06T05:36:20+00:00 |
| og:image | https://www.askpython.com/wp-content/uploads/2022/10/Hill-Climbing.png |
| og:image:secure_url | https://www.askpython.com/wp-content/uploads/2022/10/Hill-Climbing.png |
| og:image:width | 1200 |
| og:image:height | 800 |
| og:image:alt | Hill Climbing |
| og:image:type | image/png |
| article:published_time | 2026-07-06T05:36:16+00:00 |
| article:modified_time | 2026-07-06T05:36:20+00:00 |
| twitter:card | summary_large_image |
| twitter:creator | @AskPython |
| twitter:image | https://www.askpython.com/wp-content/uploads/2022/10/Hill-Climbing.png |
| twitter:label1 | Written by |
| twitter:data1 | Tanishka Dhondge |
| twitter:label2 | Time to read |
| twitter:data2 | 8 minutes |
| msapplication-TileImage | https://www.askpython.com/wp-content/uploads/2019/12/cropped-favicon-1-270x270.png |
Links:
Viewport: width=device-width, initial-scale=1, maximum-scale=5, viewport-fit=cover
Robots: index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large