Grocery e-commerce website design tutorials are a great way to expand your business and reach new people. If your goal is to start a new website but you don’t know where to begin, or if you want to create a new website for your business, this template is for you. With this template, you’ll be able to create a beautiful, premium website that will help you sell your products and services.
A Turing machine consists of an infinitely long tape (pictured below). A head indicates a “state” of the problem by pointing somewhere on the tape. The transition from each state depends on the “transition diagram” of the problem. In simple words, the diagram tells which state to go from which state for which input.
Modern computers are Turing machine computable. If it cannot be solved by a Turing machine, it cannot be solved by a computer, that is why we are so interested in it.
Non-deterministic Turing Machine:
Suppose your instruction set says “If you are in state 10 and get an “A” on input then go left” and at the same time it says “If you are in state 10 and get an “A” on input then go right. Which one will you do? Different instructions for the same input in the same state! Non-deterministic Turing machines will rely on assumptions in this type of situation. He randomly guesses to go down a certain path.
Maybe that guess is wrong and the computation gives wrong outcome. But the question here is whether there is any such correct decision sequence. There is no saying that non-deterministic machine will always give the correct result, if the result is positive, then there is definitely a solution, but even if it is negative, it cannot be said for sure that there is actually a positive result or not. That is why such machines are called non-deterministic.
Deterministic Turing Machine: The instruction set of this machine does not contain two instructions at the same time. It will be known in advance which direction to go in each situation.
Modern computers are equivalent to deterministic Turing machines. Computers do not work with non-deterministic instruction sets.
Polynomial Complexity: Problems whose complexity is a power of input size are polynomial complexity, like O(n),O(nlogn),O(n^3) etc.
P or polynomial category problems can be solved in polynomial time with a deterministic Turing machine. Like shortest path problem, knapsack problem. Not only that they can be solved, but given a “certificate” it can be verified in polynomial time. What is the certificate? Consider the Euler path problem, where all edges of a graph must be visited and no edge can be visited twice.
Here the certificate is a sequence of some edges (e1,e2….,eK). Given this sequence we can easily tell if it is a valid path or not. Going through each node, we will see if one node is visited twice and if all nodes are visited. We can verify this in O(E) where E is the number of edges. P problems can be solved in polynomial time, and a solution (certificate) is valid or can be verified in polynomial time.
NP(Non-deterministic Polynomial) problem
NP problems can be verified in polynomial time with deterministic Turing machines. But it was not possible to prove whether it can be solved in polynomial time or not. Like the Hamilton Path Problem, all nodes of a graph must be visited, a node cannot be visited twice. Given some sequence of nodes you can easily verify the Euler path.
But how do you tell if a graph has a Hamiltonian path or not? A polynomial algorithm for figuring it out has not yet been invented. If polynomial algorithm is not available we solve with exponential algorithm which has complexity O(2^n),(k^n). This kind of complexity suggests that you have to check all possibilities with brute force, usually solving these problems with backtracking.
Every P problem belongs to the NP problem category. Because all P problems are verifiable in polynomial time that is the only condition for NP category. That means P is a subset of NP. But are all NP problems P problems? Are all problems verifiable in polynomial time solvable in polynomial time? In the case of Hamilton paths, SAT problems, etc., we do not know whether the problems can be cast into P or not.
We don’t know if P=NP or P!=NP. It is one of the most famous open problems in computer science. The Clay Mathematical Institute announced it as one of the 7 Millennium Prize Problems with a $100,000 prize money! However, computer scientists and mathematicians think that P!=NP, but only ideas are never science, what Einstein said about the idea in his mouth is not science, what he published in a peer reviewed journal is science!
NP hard: Problems in this category are “at least as NP problems” hard. What does this mean and how does one measure hard? Many times one problem can be converted into another problem. Let A be a problem of NP category and B be the problem we want to solve. If we can convert problem A to problem B in polynomial time then we can say for sure that problem B is as hard as problem A. NP hard problems are often not classified in the NP category because they cannot be verified in polynomial time.
NP cannot be solved in polynomial time, verifiable. NP hard cannot be solved in polynomial time, may or may not be verified.
So here’s what we know so far:
If it is ever proved that P=NP then the small blue circle is no longer needed, P=NP can be written in the yellow circle. Problems in the NP-hard category that can be verified in polynomial time are in the NP category, the rest are outside. The problems in the blue area fall into two categories, what are their names?
NP complete: A problem is NP-complete only if the problem is NP-hard and also falls into the NP category. The NP complete problem can be converted to any other NP problem in polynomial time and the certificate of this problem can also be verified in polynomial time.
To prove a problem NP-hard, we need to convert it to a known NP-complete problem. As stated in the longest path problem, we need to find the longest path in the graph such that no node is in that path twice. Hamiltonian paths are a well-known NP-complete problem, if a graph has a Hamiltonian path then the longest path will have n – 1 edges because n nodes must be visited once.
We can say the Hamilton problem in a slightly different way “Is it possible to have a path in a graph that has k edges?”, if we can solve the problem for k=n-1 then the Hamilton path problem will be solved. And if you can solve this problem, you can solve for different values of k to find the longest path! So it turns out that we convert the Hamilton path problem into the longest path problem by describing it in a slightly different way. Since we do not know the polynomial solution of the Hamiltonian path, we also do not know the longest path.
You must Join our Facebook Group and Subscribe YouTube Channel
All Links in Below:
Join Our FreeWebsiteCreate Facebook Group to get an instant update for projects, templates, design resources, and solutions.
Join Our YouTube Channel & Subscribe with Bell Icon for New Video:
Join Our Official Facebook Page For the Latest updates All Code Projects are Free:
Visit our service page to get premium services.
You must Join our Facebook Group and Subscribe YouTube Channel