Impact of solving a Millenium Prize Problem [closed] - complexity-theory

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I just learned about P vs NP and the Millenium Prize Problems.
I understand that one Grigory Perelman solved one of the problems but rejected the USD1m prize.
That made me wonder something:
Suppose a computer scientist discovered an algorithm to solve one of the remaining problems (to make it relevant to Stackoverflow, let's use the Travelling Salesman Problem as an example (TSP)) , would it not be wiser for him/her to patent the algorithm and retire rather than settle for that prize money? After all, solving one of maths' important questions should be a big deal.
Or does solving the problems have no useful purposes for the average people other than to advance maths? I doubt this is so because the TSP problem seems to have real-world benefit.
I would appreciate any enlightenment on this complexity (no pun intended) of human behavior.

You'd have to publicly disclose the algorithm in order to patent it, so you might as well collect the prize money too. There's also the possibility that such a breakthrough could be theoretically significant, yet still intractable for all practical purposes. (E.g., a polynomial algorithm for some NP-complete problem is found, but the runtime is still O(n^100)...good luck monetizing that!)

Related

optimal sequence to be followed for studying topics like dp [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I am a novice to algorithms and data structures. I recently started participating on codeforces and spoj etc.for solving questions i need to study dp,greedy algorithms,graph algorithms,data structures.what should be my strategy for studying or rather sequence and what data structures i need to know for competitive programming?
All in all there shouldnt be an "optimal" sequence. Its all about understanding the topic. Since not two people can learn with the same speed, there shouldnt be something like an "optimal" sequence. But its good to learn basic approaches of each topic.
There are alot Tutorials out there, which explains the most fundamental thing in any topic. E.g. Youtube covers most graph problems. Even DP and so can be found there. Especially on Topcoder Tutorials there is alot you can learn.
On the other hand you will learn nearly nothing, if u dont have to think for yourself. So solving such puzzles is a must. I would recommend this site (especially for dp). Just check the "problem set" link on the site and look for dynamic programming.
I recommend you this book: Competitive Progamming, by Halim. Is very complete, and newbie-compatible.

List of interesting and useful Algorithms [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I am in a quest of understanding majority of important algorithm that SO community has used in read world applciations. I know a ready list can be extracted from wiki page. But, i am interested only those algorithm or problem that community has faced either in their projects or asked in interviews. Few lines on that algorithm will also be helpful.
I am looking beyond the generic algorithm D&C, DP, Greedy...
If you are interesting about optimization problems which can be used any computer applications such as network and socket programming these could be useful for you;
NearbyNeighbour
Munkres
Hungarian
BruteForce
Min&Max Finding Algorithms
Ant and Bee Colonies Algorithms
General Genetic Algorithm etc.
I totally advice you to search all aboves but genetic algorithms and ant colonies algorithm are asked many interviewers.
I hope that helps.

Need help regarding programming challenges solving algorithms [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I want to improve my programming skills, when I participate in some programming competition I feel that every challenge is so tough that i can not solve it,I have good knowledge of coding but I fell to decide the algorithm needed to solve particular problem for that can anyone tell me which books to read
I would suggest first to get comfortable with programming language of your choice. Once you have confidence on your language and Data structure, you can proceed confidently for any programming challenges. Make a habit of writing complete code with all edge cases handled on a sheet of paper rather than simple pseudo code for your practice session.
Now to solve algorithmic problem first to grasp elementary algo functioning via book or online resources. If you are using coreman (good book for algo) then you might want to understand basic concepts of different sorting techniques, heap, queue, hashing, greedy and dynamic algorithm. For some topic i would recommend to research online as well - like dynamic programming and hashing. Almost 70-80% interview questions are either hashing or DP based. Then look for major examples and their solution for these algorithm. Once your mind will set up you would be able to think quickly for any algorithmic problem.
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest , Clifford Stein is a good one to start with.
Covers almost everything, from graph theory to geometric algorithms and all related data structures, furthermore they use the commonly used "Big O" notation to indicate the efficiency of the algorithms explained. Most of the time multiple algorithms are presented for the same problem, together with their advantages and disadvantages.

How can I come up with creating an algorithm which simulates a real time situation [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I'm good at algorithms but not as good as converting real-time problems and learning them throughly to make it as an algorithm. I would like to know if there is any book/paper that teaches or makes you demystify the situation and formulate it as an algorithm. (Its much like training your mental ability to break the situation and comeup with algorithm in a crisp.)
Showing some of the ways to approach these kinda problems. and any easy learning links/material would help me a lot.
Note: I know SO doesnt allow to ask for the opinion or something vague (I dont mind my Q being downgraded). But I am asking some concrete problem and hope can get some nice info from some of the great minds here.
The word that fits better as a direct answer is "experience". There exists no magical formula to convert a real time problem into some algorithms that solve it. As an analogy, there exist no predefined patterns on how to solve a mathematical problem. It is a mind's task to express the solution, based on some fundamental knowledge and on experience that is accumulated though constant learning.

Algorithms question/problem lists [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
This may not be question of programming and people are open to close.
Does anyone has list of questions/problems to solve which helps to improve algorithms skills
may be for interview purpose.
A good option is Project Euler.
In its own description:
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context.
This seems like a perfect match...
Try TopCoder. They have held hundreds of algorithm competitions. Their archive contains thousands of problems for practice, including editorials describing the solutions. You can also view other people's submitted source code for the problems.
This will certainly sharpen your algorithm and problem solving skills, which should make you better prepared for algorithmic interview questions.
Fizz-Buzz?

Resources