One of my friends works for a big oil rafinery. He's in charge of optimising the inputs (volumes, maximum price to pay for crude oil etc.) given a profit.

He's telling me there are heuristic ways to find out local optima but there is no way to prove if any of these optima are absolute.

We were debating on why that is. He doesn't know. My theory is that a rafinery is an effectively computable process (Church Turing thesis) hence it's computable by a TM. Now every optimisation problem is a decision problem. So my theory is that tying to find out an absolute optimum for his process would be like finding a decidable non-trivial property of a TM which is impossible (by Rice theorem).

Is that correct?

  • 2
    $\begingroup$ Optimization problem is not decision problem. Heuristics does not guarantee optimal result - true. Exact computation would be needed, but there are problems with that: it may not be too time consuming, underneath process has continous value, which we cannot measure with infinite precission, so we take approximation to model it - so model is inaccurate at the begining. Now instead of heuristics switching to calculating optimum would improve result (but only to extent of data supplied). I do not see how Rice theorem would apply here. So I do not think this is good ressoning. $\endgroup$
    – Evil
    Sep 5 '16 at 18:01
  • 2
    $\begingroup$ We don't have enough information to state with certainty, but I'd wager that your friend is trying to optimize a non-convex function. In general, finding global minima for for a non-convex function is hard (NP-hard); however it is easy to find local minima. Given enough time you can definitely compute a global minimum, you just might be waiting a very long time. $\endgroup$ Sep 5 '16 at 22:43

Rice's theorem states that you can't decide a non-trivial property of Turing Machines in general.

You are asking, "given a specific Turing Machine, can I find some property about it." The answer is yes in a large number of cases.

Rice's Theorem says there's no algorithm which can look at any Turing Machine and find its optimum.

Your problem is to look at a specific Turing Machine and find its optimum. This is likely computable. For example, it's easy to make a Turing Machine which inputs $x$ and outputs $x^2$. Finding the maximum value of this is trivial.

The real question is: what does your search space look like? You're trying to find a local optimum? Of what function, over what inputs? If your inputs are finite and your function computable, then this is certainly decidable. If you're doing things over the Real Line, things get more complicated, but not necessarily impossible, depending on what function you're looking at.

But, if you can show that computing the optimum is equivalent to searching through an infinite search space, and you can simulate any infinite (but enumerable) search space with your problem, then you're looking at something Turing Complete, and Rice's Theorem applies.

I suggest you review Rice's theorem, to find what it's actually saying, as well as the difference between an optimization and a decision problem. Every optimization problem is most certainly not a decision problem, though you can simulate every decision problem as an optimization problem.

  • $\begingroup$ I think this is incorrect. Rice theorem states that there is no algorithm that can prove for a given TM that it produces a certain property for any input. And contrary to what you seem to think for a given Turing machine it is not possible to find a non-trivial property about it. For example it is not possible to prove that a TM computes the square of its input for any input. That is what Rice says. My theory is that finding the optimum of a computable process at least requires to know what this process does and hence that cannot be done. $\endgroup$
    – Jerome
    Sep 5 '16 at 19:26
  • 2
    $\begingroup$ @Jerome "I think this is incorrect. Rice theorem states that there is no algorithm that can prove for a given TM that it produces a certain property for any given input. " -- Nope. $\endgroup$
    – Raphael
    Sep 5 '16 at 19:30
  • $\begingroup$ @Raphael Agreed and it is what I meant. My question obviously concerns semantic properties of my friend's machine as he tries to determine the optimum of the function implanted by it. Which is why I didn't specify Rice theorem in detail. $\endgroup$
    – Jerome
    Sep 5 '16 at 19:41
  • $\begingroup$ @Jerome What I mean is, there is no algorithm which, when given a TM, can decide a non-trivial property of that TM. The TM has to be an input to the Algorithm. Rice's theorem means that there's no TM which can input TMs and output YES/NO based on the properties of the input TM, except for trivial properties. $\endgroup$
    – jmite
    Sep 5 '16 at 20:54
  • 1
    $\begingroup$ @Jerome We'll need a lot more details about the function you're trying to optimize to know if it's decidable. But being TM computable in no way makes its properties undecidable. Being Turing Complete, though, would. $\endgroup$
    – jmite
    Sep 5 '16 at 20:55

You are estimating that processes at an oil refinery are computable -- that may very well be true.

However, it's unlikely that they are Turing-complete. Unless they are, Rice's theorem does not apply.

  • $\begingroup$ I think you might be confused between Turing complete and effectively computable. As I am trying to prove that the optimisation problem of my friend contradicts Rice theorem I only need to show that his machine can be computed by a TM. And Church Turing says that it is sufficient that this process is effectively computable. Although we are still unsure what that means I assume here that any physical process is effectively computable $\endgroup$
    – Jerome
    Sep 5 '16 at 19:09
  • 4
    $\begingroup$ @Jerome I'm aware of what you think, as you explain that in your question. You are just wrong. You can of course insist on your misconception. Or proceed to understand what Rice't theorem really states. Your choice. $\endgroup$
    – Raphael
    Sep 5 '16 at 19:29
  • 2
    $\begingroup$ @Jerome It's worth mentioning that Raphael is the moderator, and one of the most experienced people here. He most definitely knows the difference between Turing Complete and effectively computable. You might want to also review what the Church-Turing thesis says. $\endgroup$
    – jmite
    Sep 5 '16 at 21:45
  • $\begingroup$ @jmite I don't think my moderator status has anything to do with the probability of me being right. I'll take the other flowers, though, thanks! :) $\endgroup$
    – Raphael
    Sep 6 '16 at 8:16
  • $\begingroup$ @Raphael How could that process not be Turing-complete? I can describe it with a finite number of elementary steps. For example: "as long as crude oil arrives send it to the distillery column; wait for the reaction to happen; once finished sort out the layers and send them to the correct pipes". That is an imperative language. Given that such a language is Turing-complete as long as it has conditional branching ("if", "goto") and the ability to change an arbitrary amount of memory (en.wikipedia.org/wiki/Turing_completeness), it looks like such a process would be Turing complete $\endgroup$
    – Jerome
    Sep 12 '16 at 14:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.