After seeing princepawn's comment, I checked out Quantum::Entanglement.

He has a "conform" option that, instead of returning a random result based on the probability, will try to make the outcome "true". That got me thinking... This turns into a general constraint-based problem-solving system that blows away Prolog. The ideas behind superpositions is similar to that of Fuzzy Logic.

So... what about a system that worked in a similar way, with superpositions based not on quantum wave collapse functions, but on the simpler rules of fuzzy logic? A value has a certain probability of being "big", a different probability of being "medium", etc. all held in superposition. Collapse of the final answer is the de-fuzzy function. Or, apply a constraint and all the entangled variables take on coherent states to make the problem work out. Applying constraints to non-entangled values is simpler, and will suppress or enhance certain superpositions.

It seems that the coherence between variables is a powerful programming model. You tease at it with spreadsheets and Metafont. Instead of an algorithm that runs once, you set up a continued relationship between values such that changing one has an effect on others.

Hmm.

—John

Replies are listed 'Best First'.
Re: Meditation on Quantum::Entanglement
by arhuman (Vicar) on Jun 30, 2001 at 01:35 UTC
    This Quantum::Entanglement module made me crazy !

    I saw so many possibility to use it...
    I saw so many new paths to explore...
    Then I saw (in the documentation) :

    Perl, alas, is currently only implemented on classical computers, this has the disadvantage that any quantum algorithm will not run in constant time but will quite likely run in exponential time. This might be remedied in future releases of perl. Just not anytime soon.

    Now I wonder how/if could scale in large/real projects...
    Any comment from someone who has used it is welcome on this point...

    "Only Bad Coders Code Badly In Perl" (OBC2BIP)
      Yes, I suppose that a straightforward "brute force" implementation would easily get out of hand in terms of how many states and how many combinations of states exist! After all, you could simply ask it to find a and b such that a*b == some very large prime number.

      But, you can do the same thing with a couple lines of Prolog. You can also write a "perfect" chess program in Pascal, but it will take forever to make its first move.

      There are systems that do constraint-based programming, such as Trilogy, Prolog, and CLP. When used correctly, it's no slower than the code you'd have to write to solve the problem anyway.

      I agree that this module is too slow for anything significant, in terms of modeling solutions based on that kind of logic. I suppose it's exactly what you want if you are in fact writing programs for quantum mechanical physics work. But, call it a proof-of-concept of Entanglement of variables.

      —John