We basically operate under the assumption that P!=NP currently. Validation that this is true doesn't really change much. I can't speak to how this may help a academic researcher in CompSci, but it probably doesn't change much for most programmers.
We basically operate under the assumption that P!=NP currently. Validation that this is true doesn't really change much. I can't speak to how this may help a academic researcher in CompSci, but it probably doesn't change much for most programmers.
It's interesting because it mix two interesting topics, that are well known in the popular science forums, but are very technical and most people don't want to read all technical the details of both.
Relevant xkcd: https://xkcd.com/1240/
If someone could prove P=NP but no one could find an algorithm. That would be incredibly funny in some sense. Like a huge joke played on us by the universe.
However, the reason why I chose to single out crypto specifically is because it has the most to lose if that algorithm exists. Our current methods of encryption become unsafe regardless of whether the algorithm is known or not. I don't think you can claim that your encryption is secure if there is an algorithm that can crack it in polynomial time, regardless of whether the algorithm is known or not.
This is 100% true for all practical purposes. But there is an explicit algorithm for NP-complete problems that runs in polynomial time iff P=NP. The Wikipedia page has it written down. https://en.m.wikipedia.org/wiki/P_versus_NP_problem
Could you back that up with some citations? This doesn't ring true. But my pure CS has withered a bit...
However, while P=NP, the algorithm (oracle) resides on the other side of the event horizon. This is called the MAD paradox.
https://nerdynotmad.com/p-equals-np/
The submitted proof will be found to be incorrect.
The problem of finding the optimum path is not in NP, if I give you a candidate solution you can't easily check if it's the global optimum.
What is in NP is the decision problem, finding a path that is better than a given bound. If I hand you a candidate solution, you just have to compare the sum of the distances to the bound to check it.
edit: The wikipedia mentions that the TSP problem is NP-hard and explicitly says that the decision version of this problem is NP-complete. My assumption is that if the optimization version was proven to be NP-hard there would be no need to explicitly mention the decision version.
I can think of a way to use the decision version to find a solution to the optimization version but i feel like it must be flawed:
First we do a binary search on `L` (the length of the tour- input to the decision version) so we can find the optimal L within a factor of epsilon (maybe this epsilon is the flaw? But I don't think that is the case.) Now we pick an edge and increase its weight to infinity. Now we do the binary search again on the new graph. If the value of the optimal solution has changed it means that the edge must be in the optimal optimization solution. By doing the same process on all the edges we can find the optimal solution.
As I said there must be a flaw in the above algorithm but I can't find it.
Hence, you can use bisection to compute the actual optimum, not involving epsilon at all.
I don't think there is anything wrong with optimization been reducible to decision - it's quite common method both in theory and in practice.
note: I am not implying that the above source is reputable. But it does hint that the solution to this problem probably is not this trivial.
Here is why I think the algorithm is correct:
At each step the edge that we are considering is either contained in all the optimal solutions or only some of them. If the edge is contained in all the solutions, increasing its weight to infinity would change the optimal solution and we pick that edge in our solution. Otherwise (if the edge is contained in only some of the solutions) increasing the weight would not change the solution because there is another optimal solution that does not contain that edge so we do not pick that edge.
So we can prove this theorem: At every step of the algorithm if an edge is picked, it is contained in all the optimal solutions.
So the algorithm does not pick any extra edges. Now we have to prove that it includes all the necessary edges. But that is easy because each time that we choose not to including an edge, we are sure that there is an optimal solution in the remaining graph so we are never left with a graph with no optimal solution.
I think you assumed that I meant we change the edge weights from infinity back to their original value at each step but that is not what I meant.
I interpreted this as meaning you were selecting the falsifying removals' edges, instead of removing the non-falsifying ones. You've got it.