Slashdot Mirror


Quantum Programming with Perl

moyix writes: "There's an article over at perl.com that describes how to use a perl module called Quantum::Entanglement. Using this module, one can simulate programming for a quantum computer. Developers looking to keep their skills current well into the next decade should check this out ;) Debian folks can grab libquantum-entanglement-perl and libquantum-superpositions-perl."

104 of 177 comments (clear)

  1. Shave and a haircut, qubits! by Anonymous Coward · · Score: 4, Funny

    I always wondered how Larry Wall was seemingly in 10 different newsgroups at one time. I guess he's been using quantum physics all along...

  2. thats nice but.. by nihilist_1137 · · Score: 1

    how do we know if its real. Not many people have used quantum computers. The results could only be of non-quantum computers and we would never know, because we could never check.

    1. Re:thats nice but.. by mschachter · · Score: 1

      oh no, you mean i can't accurately reproduce quantum effects in perl?!? fuck man, i just don't believe in anything anymore.

    2. Re:thats nice but.. by Hwatzu · · Score: 1, Offtopic

      oh no, you mean i can't accurately reproduce quantum effects in
      perl?!? fuck man, i just don't believe in anything anymore.

      Well, of course you can't. That's what EMACS is for.

    3. Re:thats nice but.. by Dragnet · · Score: 2, Funny

      nihilist, in making this post; you didn't take into account the _very_ quantum principle of uncertainty ;). It could be real, it could be a hoax.

    4. Re:thats nice but.. by jfonseca · · Score: 2, Informative

      http://www.internetnews.com/dev-news/article/0,,10 _943731,00.html

      Scientists at IBM Corp.'s (NASDAQ:IBM) San Jose, Calif.-based Almaden Research Center this week rushed to report that they have performed a challenging quantum computer calculation, causing a billion-billion custom-designed molecules in a test tube to become a seven-qubit quantum computer.

      With that breakthrough, they solved a simple version of the mathematical problem that is the crux of many of today's data-security cryptographic systems. According to Nabil Amer, manager and strategist of IBM Research's physics of information group, this was quite a feat.

      "This result reinforces the growing realization that quantum computers may someday be able to solve problems that are so complex that even the most powerful supercomputers working for millions of years can't calculate the answers," said Amer.

      --
      Broken Hearts are for Assholes. - Frank Zappa
    5. Re:thats nice but.. by Fnkmaster · · Score: 2
      You are spewing out of your ass here. Several real quantum computers DO exist. They are not useful for real calculations because they can only manipulate very small pieces of information (i.e. IBM's 7 qubit computer, MIT's 5 qubit computer). Factoring 2,3 or even 7 bit numbers is not interesting because it's easy to do with a classical computer.


      But I have myself used a simple NMR quantum computer to execute Grover's search algorithm on a very small (4 element) search space when I was working at MIT. So there.

    6. Re:thats nice but.. by Uller-RM · · Score: 4, Interesting

      Try to learn at least one of the theories of quantum mechanics before you start throwing around principles, okay?

      For one thing, QCs do exist - in fact, they demonstrated Peter Shor's 1994 factoring algorithm on a recently built 7-qubit box, factoring 15 into 3 and 7. You may say big deal, but it can factor ANY such integer in polynomial time. Usually the NSA is about 10 years ahead of the private sector, so I figure they've got at least 10 qubits by now. You should be worried - most public-key encryption methods rely on the intractibility of factoring.

      Secondly, the Heisenberg uncertainty principle only states that you can't predict with 100% accuracy which eigenstate a qubit will collapse into upon measurement. You can, however, compute a probability amplitude (which ends up being a complex number) that it'll be a 0 and another probability that it will be a 1. And it is possible to perform operations upon one or more qubits without measuring it - the idea of creating an operation that doesn't collapse the state is the crux of Quantum Computing.

      Unlike macroscopic physics, we don't know WHY things work on the quantum level the way they do. We've gotten relatively decent at predicting the end results though. So, we're just as confused as before... but we're capable of doing useful stuff with it. Don't knock it.

    7. Re:thats nice but.. by Anonymous Coward · · Score: 4, Funny
      in fact, they demonstrated Peter Shor's 1994 factoring algorithm on a recently built 7-qubit box, factoring 15 into 3 and 7.

      Incoming message for Mr. Shor: Your algorithm doesn't work.

      (ob. H2G2 ref.) Wait a minute ... *slaps forehead* Now I understand! 42! It all makes perfect sense now!

    8. Re:thats nice but.. by cronik · · Score: 1
      Exactly! With "Classical" physics we know that QM effects cause everything, but we dont know what causes QM effects. Oh, wait, QM science describes how things work, what causes them, and possibly how they might work in future (ie: "why" is a bit to shortsighted in my opinion {sounds too final}). Unless you allow "Because it does" to be a scientific argument. (and oh boy would the s*** hit the fan then)

      ps:3 and 5 (typo correction, not flame)

      --
      Information wants to be free like speech wants to be free, not like we want beer to be free.
    9. Re:thats nice but.. by nihilogos · · Score: 4, Insightful

      For one thing, QCs do exist - in fact, they demonstrated Peter Shor's 1994 factoring algorithm on a recently built 7-qubit box, factoring 15 into 3 and 7.

      I wouldn't get too exited about this. Shor's factoring algorithm is a probabilistic algorithm, and for a small number such as 15 you could replace the entire quantum part by rolling some dice and still manage to find factors. So it's possible that the demonstration you refer to messed up somewhere but still managed to factor 15.

      Also, NMR quantum computing (which was used for that demonstration) is fundamentally limited to a maximum of around 12 qubits, and I seriously doubt the NSA has got anywhere near 10.

      Secondly, the Heisenberg uncertainty principle only states that you can't predict with 100% accuracy which eigenstate a qubit will collapse into upon measurement

      This is not the Uncertainty principle. This is the measurement postulate.

      The Heisenberg uncertaintly principle says things like " if you know the position of a particle precisely then you can't know anything about it's momentum" etc. Or, to wax technical, the products of the "errors" for position and momentum being greater than half the expectation value of the commutator of the operators represneting position and momentum.

      --
      :wq
    10. Re:thats nice but.. by Ian+Bicking · · Score: 2
      For one thing, QCs do exist - in fact, they demonstrated Peter Shor's 1994 factoring algorithm on a recently built 7-qubit box, factoring 15 into 3 and 7
      Is that a typo, or is that irony?
    11. Re:thats nice but.. by focus4it · · Score: 1

      show me a computer that'll put a hybrid gas/electric car in my driveway in a year for under 30K, and that, is a quantum computer :-)

    12. Re:thats nice but.. by lkaos · · Score: 2

      First of all, a qubit box does not classify as a computer. If I hooked up a couple logical gateways together that does not classify as a computer. A computer must have input, output, and be capable of being programmed in some way.

      There is no fundamental theory of quantum computing. As mentioned in another response, there is no boolean algebra equivalent for quantum computing.

      Computers are based in absolute truth. Quantum computing relies on probability. That is where my question of praticality comes in.

      I do not doubt that the NSA is more technologically advanced but don't give them too much credit...

      I get sick of people spouting about how quantum computing is so great because it doesn't even exist yet. This may sound ironic seeing how everyone responded to my post, but it pisses me off when people who have no understanding of quantum mechanics start saying, "Quantum computing means you can executed all your code all at the same time" and stuff like that.

      The problem with /. is that there are too many smart people on it. Can't get pissed off at anything without getting mod'd as a troll...

      --
      int func(int a);
      func((b += 3, b));
  3. No fair! by orkysoft · · Score: 4, Funny

    "No fair! You changed the outcome by measuring it!" -- Professor Farnsworth from Futurama.

    --

    I suffer from attention surplus disorder.
    1. Re:No fair! by OblongPlatypus · · Score: 2

      "I felt observed, and immediately thought of Heisenberg." -- Richard Papen from The Secret History.

      --
      -- If no truths are spoken then no lies can hide --
  4. Entanglement? by questionlp · · Score: 5, Funny
    Blockquoth the submission:
    There's an article over at perl.com that describes how to use a perl module called Quantum::Entanglement
    Why would I need a Perl module to help entangle Perl code even more? Isn't that part of the language ;-)
    1. Re:Entanglement? by Monkeyman334 · · Score: 2, Funny

      Original credit goes to uh ... Darkling:

      print substr("the quick brown fox jumps over a lazy dog.",
      $_,1)
      for
      (1,2,36,3,10,21,38,38,36,
      41,9,16,21,7,8,25,36,17,5);

    2. Re:Entanglement? by number+one+duck · · Score: 2

      Those are called Perl.

  5. runtime by brondsem · · Score: 1

    Does it accurately simulate quantum processes's runtimes?

    --
    "a quote" -me
  6. Wow by Cato+the+Elder · · Score: 3, Interesting

    And to think people complained that garbage collection was inefficient! Actually, though, this is a huge step forward for Perl. Now, with just a few lines of code, you should be able to consume massive numbers of CPU cycles while still actually accomplishing something.

    The module actually looks pretty cool. It says that some simplifying assumptions were made. Does anyone know if the simulation is reasonably accurate? That is, could you actually set up a quantum computer to behave exactly as the simulated one?

    1. Re:Wow by llamalicious · · Score: 1

      The simulation will be both accurate AND inaccurate at the same time.
      Adjust reality accordingly.

  7. Perl and Research by jfonseca · · Score: 2, Insightful

    I just happened to notice that Perl is being used for so many innovative research fields.

    First of all Perl seems to be an excellent language for Bioinformatics, and Dr. Lincoln Stein is a leading voice in this area. Recently O'Reilly has been giving great coverage in this area.

    Nanotechnology seems to be another area where Perl is getting much attention.

    I believe the platform and vendor independence, absolute openness, and superb data munging capabilities of it are the main reasons for Perl's adoption in such academic research.

    But, although I am an aspiring Perl advocate) and big Larry Wall fan myself, I wonder just how optimized these modules are for such intense low level work....

    --
    Broken Hearts are for Assholes. - Frank Zappa
    1. Re:Perl and Research by Anonymous Coward · · Score: 2, Informative

      Perl is a terrible language for Bioinformatics. Perl is an excellent language for the subset of Bioinformatics dealing with sequence analysis and searching. Particularly for being the interface between the user and the database. There's a lot of work going on not dealing with DNA that Perl is essentially useless for (it's mostly high-performance numerics so a lot of Fortran). Even for some sequence work, such as fragment assembly, Perl probably wouldn't be a good language because it's a high-dimension integer optimization problem that's been abstracted past the point of string manipulation.

  8. Re:perl on a quantum computer by justinstreufert · · Score: 1

    You've got it backwards.

    This is a simulation of quantum computing, written in Perl.

    (Say, have I just been trolled?)
    Justin

    --
    "Why would God give us a waist if we wasn't supposed to rest our pants on it?" - Rev. Roy McDaniels
  9. The newsposter misinterpreted that article... by solistus · · Score: 1, Insightful

    The article does not mention quantum computers, devices which do not exist and may not for quite a while. It simply applies the idea of multiple coexistant states, only one of which being observable at a time, to Perl. You'll note that it runs on a conventional computer; mathematically, a quantum computer would have infinite times the processing power of our current supercomputers, as it could use system resources infinite times at once, assuming each state existed seperately. This does not relate in any way to the hypothesized "Quantum Computers" of the not-so-near future; rather, it is an interesting new operation in Perl which could make anything using random numbers more powerful and easier to code. Imagine the possiblities for games... a very easy way to weight values without using tons of variables... yummy.

  10. A little ahead of ourselves? by bagel2ooo · · Score: 2, Insightful

    First off, I thought just about everything was workable in PERL but this is scary. :) Regardless, to the best of my knowledge there are no working quantum computers (tangible at least.) How can we be sure that code created with this will truely work the same way when it's eventually put onto an actual quantum computer? Even were this based on a tangible prototype I'd feel there'd still be cahnges that'd need to be made. *shrugs* Guess I'm just a jerk about toying with theory. :)

    --
    ( o ) one could say I'm rather baked
    1. Re:A little ahead of ourselves? by vslashg · · Score: 2, Informative

      Regardless, to the best of my knowledge there are no working quantum computers.

      How quickly we forget.

    2. Re:A little ahead of ourselves? by monk · · Score: 1

      there are no working quantum computers (tangible at least.)

      Actually there are several prototypes. The latest news is from IBM although the original photo showed that the researchers were using Sun hardware. They've done a bit of photoshop (or GIMP?) magic since to remove the keyboard and logo on the monitor.

      --
      [-- Trust the Monkey --]
  11. Quantum::Superpositions by ilkahn · · Score: 5, Interesting

    Anyone interested in doing any type of quantum computing should check out Dr. Damian Conway's excellent Quantum::Superpositions. It is an extension to the perl language which adds the operators "any" and "all"... it's lets you do *incredible* things like:

    use Quantum::Superpositions;

    if ($x == any($a, $b, $c)) { ... }

    while ($nextval < all(@thresholds)) { ... }

    $max = any(@value) < all(@values);

    A good place to go and discuss the in's and out's of the cooler aspects of the perl community is perlmonks.org, check it out some time...

    1. Re:Quantum::Superpositions by Flubu! · · Score: 4, Interesting

      I heard Dr. Conway talk at the OReilly BioInformatics Conference in Tucson, AZ. He gave a talk about the Quantum::Superpositions module. It was hilarious. He started his talk with the premise that, if we could program on quantum computers in infinite multiple universes and constant time, this is how it should look like. As the talk progressed, the audience really started to get into it.

      I have to say that Conway is a brilliant speaker and truly funny. When he announced after a 3 hour talk that what he just spoke about isn't just a nice concept in theory but an actual perl module (only in a single universe and in real, often exponential time), the crowd just lost it and ROTFLed :)

      --
      Give me liberty, or a ham sandwich!
      See me at: www.flubu.com
    2. Re:Quantum::Superpositions by iradik · · Score: 2, Interesting

      ugh, more syntax.

      i have to admit though

      any(@value) all(@values) is cool
      why? because you dont have to write loops
      for doing every different comparision. i bet
      there are other benefits to the new syntax also.

      but what does this have to do with quantum mechanics???

      all of the operator overloading could
      just be as easily called "set operators" or something.

      then it wouldn't seem so spooky and mysterious,
      and would rather seem like some practical
      programming.

    3. Re:Quantum::Superpositions by twoshortplanks · · Score: 2, Informative
      Dr Damian Conway is one cool dude. And he's doing some cool stuff with Perl, which you can read about in his diary,The Conway Channel as linked to by the previous poster.

      Of course, Damian is paid by the Perl Community to do this cool stuff. We're still looking to make up the funding for the later half of this year. Want to donate? Get yourself across to the donations page

      --
      -- Sorry, I can't think of anything funny to say here.
    4. Re:Quantum::Superpositions by p3d0 · · Score: 1
      Wow, that's cool. Though, if I understand how this works, that last example should read:
      $max = any(@value) > all(@values);
      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    5. Re:Quantum::Superpositions by thoughtstream · · Score: 1
      Closer, but still not quite there. You want:

      $max = any(@values) >= all(@values);
    6. Re:Quantum::Superpositions by Bio · · Score: 1

      For those Europeans among you: Damian Conway will speak tomorrow (monday) evening in Zurich/Switzerland at the ETH

  12. This is new? by bluntmanspam · · Score: 4, Funny
    This still leaves us with plenty of ways to make Perl behave in a thoroughly unpredictable fashion.

    For some of us, this is nothing new.

  13. Quantum Perl.... by Jace+of+Fuse! · · Score: 4, Funny

    Quantum Perl - "No longer will there be more than one way to do something, but rather there are an infinite number of ways to do everything!"

    --

    "Everything you know is wrong. (And stupid.)"

    Moderation Totals: Wrong=2, Stupid=3, Total=5.
  14. oh, by the way... by solistus · · Score: 2, Informative

    I know the module is supposed to simulate programming a quantum computer, but it is not trying to simulate a quantum computer, there is a fundamental difference.
    Also, I sincerely doubt that quantum computers will function this way, it is not the purpose of quantum computers to store multiple values for a single variable; it is to use physical resources more effectively

  15. Next on tap by prisoner-of-enigma · · Score: 1

    Schroedinger Perl -- All assertions are assumed to be true and false at the same time until such time as someone observes your website, at which time your site is forced into a particular state. Neat, eh?

    --
    In the end they will lay their freedom at our feet and say to us, Make us your slaves, but feed us. - Fyodor Dostoyevsky
  16. The superpositioned BSOD by MoobY · · Score: 2, Funny

    After Microsoft's incredible implementation of the recursive crash (anyone remember the crash recovery that crashed?), this module now gives them a chance to have the superpositioned crash: your computer is both crashing and still alive.

    --
    --- Sigmentation Fault - Comments Dumped
    1. Re:The superpositioned BSOD by Thing+1 · · Score: 1
      After Microsoft's incredible implementation of the recursive crash (anyone remember the crash recovery that crashed?)

      We had a name for those: "TRA". This was when OS/2 crashed and started the panic, which prints "TRAP nnn" and other info, and then panics inside the panic handler. It would just get three letters out.

      In retrospect we should have immediately fixed the trap report to read "nnn TRAP", and then those first three chars output would have been informative. Live and learn.

      --
      I feel fantastic, and I'm still alive.
  17. awww... by InsaneCreator · · Score: 2, Funny

    It's 2:30 am and I'm thinking how exciting quantum computing is.
    Awwww... I need a life... :(

    At least I might or might not have a life.

    1. Re:awww... by llamalicious · · Score: 1

      2:30am? Shit, it's 11:40 pm where I am, and I'm doubly thinking the same.

  18. Hmmm.... by Quixote · · Score: 4, Funny

    use Quantum; my $jump = Quantum::Leap->new(); # nothing happens... Damn! Why doesn't it work??

    1. Re:Hmmm.... by great+throwdini · · Score: 1

      "Oh, boy!"

    2. Re:Hmmm.... by sconeu · · Score: 3, Funny

      Are you certain about that?

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    3. Re:Hmmm.... by Cyclopedian · · Score: 1
      Man, you're supposed to provide the location of your previous life.

      use Quantum; my $jump = Quantum::Leap->new($previous_life);

      Now it works! Of course, there's that matter of "changing right from wrong" to let the new() function return. =)

      -Cyc

  19. Entangled code! by ZaneMcAuley · · Score: 1

    Dont we have Entangled code already today :D

    Can you imagine the bugs in quantum code!

    --
    ----- Whats wrong with this picture? http://www.revoh.org:1234/whatswrong
    1. Re:Entangled code! by ZaneMcAuley · · Score: 1

      Paradox?

      How can one debug Quantum code when the mere act of observation changes the result?!

      --
      ----- Whats wrong with this picture? http://www.revoh.org:1234/whatswrong
  20. Article Quote by Catiline · · Score: 2

    "This still leaves us with plenty of ways to make Perl behave in a thoroughly unpredictable fashion."

    Is it just me, or doesn't "good Perl code" already work that way unless you've spent the past 10 years developing for it? I for one can't make heads or tails of tight Perl coding methods.

  21. Entangled code? by J'raxis · · Score: 1

    Not only is it spaghetti code, now its entangled. Nice!

  22. CRASH by ZaneMcAuley · · Score: 2, Funny

    And when one of these application crashes, itll go with a bang allright.... *Access Violation* there goes the space-time continuim..

    --
    ----- Whats wrong with this picture? http://www.revoh.org:1234/whatswrong
  23. Mod this troll down before it's too late by Anonymous Coward · · Score: 1, Insightful

    He obviously knows less about quantum computing than those who wrote the perl program.

    > You'll note that it runs on a conventional computer

    So what? Any quantum calculation can be simulated on classical hardware, just more slowly.

    > a quantum computer would have infinite times the processing power of our current supercomputers

    Make that "exponentially faster". Infinity is really really big in case you don't know.

    > I know the module is supposed to simulate programming a quantum computer, but it is not trying to simulate a quantum computer

    That's a gem.

    it is not the purpose of quantum computers to store multiple values for a single variable; it is to use physical resources more effectively

    Well that does it, you really don't know what you're talking about at all.

    1. Re:Mod this troll down before it's too late by solistus · · Score: 1

      Note- if you aren't interested in hearing my response to our friendly Anonymous Coward, you probably don't care about what I have to say, but feel free to read anyways if you want...

      SO I'm the troll? I may be new to SlashDot, but in the communities I'm used to, it is generally accepted that in order to contradict another's statements, one must supply evidence.
      If you want to pull apart my posts piece by piece, at the very least do it correctly!

      "> I know the module is supposed to simulate programming a quantum computer, but it is not trying to simulate a quantum computer
      That's a gem. "

      Read the part of my message you quoted again... There is, in fact, a difference between software and hardware. Unless you are in the habit of burning your Quantum Perl code on ROMs or whatnot, my statement remains perfectly valid.

      "Well that does it, you really don't know what you're talking about at all."

      What I don't know is what you're talking about... if my statements are inaccurate, let us poor ignorant fools know how, if it won't waste too much of your valuable time... thanks.


      and on the off chance you actually know what you're talking about, I admit that my statements were vastly simplified, such as the infinitely greater processing power or more efficient resource management points, but they remain fundamentally valid. In theory, the limit to conventional computers is the limit of resources- the speed of electric currents (or, if/when we develop optic processors, lightwaves), the matter available for physical resources, etc.
      A quantum computer would, again in theory, be able to use resources in all of their infinite states and positions in the multiverse. Depending on your views on advanced quantum physics beyond that which has been sufficiently evidenced to be widey accepted, matter is either infinite or finite to a larger extent than our perception, but I believe the former. If you want to hear my theories on the multiverse, email me (solistus@mac.com). Otherwise, stay at the level you're willing to discuss.



      By the way, if you are arguing that the purpose of quantum computers is, in fact, to have multiple values for a single variable, and this can be done fairly effectively using Perl on a personal computer, you utterly fail to grasp the magnitude of the potential creation of a quantum computer.
      Discover magazine, Sept. 2001 issue, volume 22, #9 has an interesting article on a similar theory to mine on quantum physics as it applies to the multiverse as a whole.

  24. sorting, factoring by rebelcool · · Score: 2, Informative
    algorithms have been worked out for sorting things and factoring primes using quantum techniques. However, only those 2 things have been settled at the moment (if you're getting a degree in philosophy, figuring out the quantum equivalent of boolean algebra is the way to make your mark on the world this century).

    In any case, some researchers at IBM and other places have built small quantum cells than can make use of the above algorithms.

    The problem with quantum computing is that many answers are revealed at once, most of which are incorrect. The algorithms need to be able to separate the wrong from the right. It's a task for bright logicians :)

    --

    -

    1. Re:sorting, factoring by norton_I · · Score: 2

      First, Grovers algorithm does searching unordered lists, not sorting. In fact, I believe it has been "proved" that sorting cannot be done faster than O(N * ln N) with a quantum computer, though take thost proofs with a grain of salt, there is always the possibility of attacking the assumptions.

      Anyway, I want to point out that searching is actually a very general algorithm. Basically, any algorithm that is much faster to validate than construct a solution can be done that way. For instace, one way to factor is to iterate through all numbers less than sqrt(N), testing each one by dividing N by it. This takes O(sqrt(N)) time. Grover's algorithm speeds this up to O(sqrt(sqrt(N)), which is still exponential in the number of bits in N. Not that this is NOT Shor's algorithm, which can indeed factor numbers in polynomic time in the number of bits.

    2. Re:sorting, factoring by sconeu · · Score: 2

      algorithms have been worked out for sorting things and factoring primes using quantum techniques.

      Hell, I have an O(1) algorithm for factoring primes!

      Factors(p) = { 1, p }.

      Now if you had a quantum algorithm for figuring prime factors (or even just a wheelbarrow), then you'd have something. Of course, such an algorithm *DOES* exist.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    3. Re:sorting, factoring by Uller-RM · · Score: 2

      Umm... boolean gates were created a long, long time ago in QC. Hell, I have a textbook that lists the matrices for them.

      (For those uninitiated, under the Heisenberg interpretation of Quantum Mechanics, you can view any quantum computer's state as a vector space, in which operations are unitary matrices, and making an observation collapses the Schrodinger wave into an eigenvalue.)

      For that matter, the same textbook stops using Dirac notation in the latter three quarters of the book, and uses the quantum equivalent of NOTs and XORs as a sort of wiring guide, denoting entanglement and superposition as necessary, to construct a ripple carry adder. This is shortly before it starts diving into Grover's and Shor's algorithms, among others.

    4. Re:sorting, factoring by naasking · · Score: 1

      Hell, I have a textbook that lists the matrices for them.

      Which book is that?

    5. Re:sorting, factoring by Uller-RM · · Score: 2, Informative

      "An Introduction to Quantum Computing Algorithms" by Arthur Pittenger, published by Birkhauser. 1999 text - I'm actually taking a class on QC at the moment. Starts out with a review of quantum statics (you will need a good grounding in Heisenberg's interpretation of QM and linear algebra, make no mistake) and then dives into the basics of quantum computing, covers the major algorithms of the last few years (Deutsch-Jozsa, Simon, Grover, Shor, and finite Fourier transforms), and error correction.

    6. Re:sorting, factoring by Mister+Attack · · Score: 1

      Well, they have the matrices all right, but still no working model of, say, a NAND gate, afaik. I just finished a course last term in QC, and we used Nielsen and Chuang's excellent textbook, the name of which escapes me at present. Check it out if you like; I found the explanations astonishingly clear.

    7. Re:sorting, factoring by naasking · · Score: 1

      Thanks. :-)

  25. Re:Real quantum computing by Lictor · · Score: 2, Funny

    I'm sure you can run Grover's algorithm in *simulated* O(sqrt(n)) time...

    Did I mention that simulating a quantum system on a deterministic machine will require EXPONENTIAL time and space?

    Go Perl.

  26. Stupid function names by TeknoHog · · Score: 2, Informative
    They use the entangle() function to create a variable whose value is a superposition of several possibilities. Simply having a superposition does not mean entanglement (even in Perl, believe it or not) so they could have named it better.

    Also, remember that this does not turn your box into a quantum computer. It's well known already that quantum computers cannot do anything that normal computers can't (they both are Turing machines); they just do some things quite a bit faster.

    --
    Escher was the first MC and Giger invented the HR department.
    1. Re:Stupid function names by Karma+Sucks · · Score: 2

      > It's well known already that quantum computers cannot do anything that normal computers can't (they both are Turing machines); they just do some things quite a bit faster.

      Sorry, no. It's not well-known. This is like asserting that classical physics is equivalent to quantum physics, which is essentially what you are doing. Perhaps you are restricting your definition of Quantum computers too severely.

      I would like to assert myself that Quantum computers should be able to simulate a Quantum reality, whereas Classical computers pretty much can't do this.

      Please quote your sources or quit talking out of your ass!

      --
      (Please browse at -1 to read this comment.)
    2. Re:Stupid function names by cronik · · Score: 1
      If I may modify that; Quantum computers exploit QM by design (in other words they make there calcs by taking on diffrent quantum states) while classical computers simulate quantum states. (yes they are very diffrent)

      --
      Information wants to be free like speech wants to be free, not like we want beer to be free.
    3. Re:Stupid function names by TeknoHog · · Score: 2
      I would like to assert myself that Quantum computers should be able to simulate a Quantum reality, whereas Classical computers pretty much can't do this.

      The mathematics used to describe quantum mechanics can be performed on classical computers. Therefore, a QM system can be modelled as fully as is desirable, on ordinary computers. It's the same argument as with any kind of simulations: car crashes can be modelled even if there are no moving parts in the computer.

      For some references you could check out my paper which summarizes some of the basics behind quantum computation.

      By the way, all semiconductor devices are based on quantum mechanical phenomena so there are very few 'classical computers' around ;-)

      --
      Escher was the first MC and Giger invented the HR department.
    4. Re:Stupid function names by Karma+Sucks · · Score: 2

      Thank you for the reference at the least. Attempting to gr0k... I'll reserve judgement until then.

      I would like to point out however, in reference to your analogy, that you can't even model a three-body system without approximation on classical computers (yes, you know what I mean). If three bodies in motion can't be modelled with reliable equations, then I have reservations about making the leap to modelling more complex situations realistically.

      --
      (Please browse at -1 to read this comment.)
    5. Re:Stupid function names by TeknoHog · · Score: 2
      I would like to point out however, in reference to your analogy, that you can't even model a three-body system without approximation on classical computers (yes, you know what I mean). If three bodies in motion can't be modelled with reliable equations, then I have reservations about making the leap to modelling more complex situations realistically.

      That's a very good point. I agree that nothing can be simulated exactly, if only due to the inevitable rounding errors - which can be a severe problem at points of instability.

      However, the reason there is research on quantum computation, is the performance with certain mathematical operations. This is expected from quantum mechanics, and it's only the mathematics that needs to be modelled. If the maths break down on real quantum computers, they will be quite useless, because they will not give the mathematically correct results.

      Consider it this way: quantum mechanics could only be accepted, when it was shown that it gives the same _macroscopic_ behaviour as classical mechanics. In the same way, in QCs we are looking for an alternative way of doing the same mathematics that we could already do, no matter what weird things happen inside each system.

      --
      Escher was the first MC and Giger invented the HR department.
  27. Now to deal with that nasty Halting Problem.... by Anonymous Coward · · Score: 1, Interesting

    I must admit that I didn't read through the entire article, but what I understand from quantum computation, this development might allow someone to implement a solution to the halting problem. I remember reading that Deutch (I think that is his name can't be sure tho my notes aren't here...perhaps someone who knows could help out) had shown that with quantum computation a decider can be made for the halting problem.

    If this module is powerful enough, perhaps we could find ourselves in quite a mess of a 'turing machine' solving the halting problem due an implementation of quantum effects. Of course this should be impossible so the theory goes, but what if?

    My knowledge of computation theory is limited and if there is expert that could sway me one way or the other I think quite a few of us would be interested.

  28. Heisenberg .. by null-und-eins · · Score: 1

    might have used Perl :-)

    --
    At the beginning was at.
  29. Not only for Perl by Anonymous Coward · · Score: 4, Informative

    There's a C++ version of the library here.

    Just thought you'd want to know

  30. Finally by Paul+Komarek · · Score: 4, Funny

    Finally, an application which Perl can't make more confusing.

    -Paul Komarek

  31. How is it... by evilpaul13 · · Score: 1

    That people can know how to program a Quantum Computer, when no such device yet exists? (I'm not counting the two Qubit ones when something like six are needed to do anything useful)

    1. Re:How is it... by Jayr · · Score: 1

      Not saying this has much practical use value, but IBM has a 7 qubit computer.

  32. The halted firewall by yerricde · · Score: 1

    this module now gives them a chance to have the superpositioned crash: your computer is both crashing and still alive.

    Linux can already do that, and it turns out to be useful for firewalls with static rules.

    --
    Will I retire or break 10K?
  33. "Quantum" programming in Perl, oh brother.. by amitola · · Score: 5, Informative

    Although I can't get to the article right now, I do know a little about quantum computing thanks to having just finished a thesis on the subject.

    Studying the actual research in the field reveals that a real quantum device does not at all resemble a superintelligent "infinitely-faster-than-my-Pentium-4" computer of the future. To understand the difference requires understanding the fundamental nature of a quantum device and how it differs from a digital device.

    The atomic unit of a quantum computer is a physical system of some sort that exhibits quantum behavior, such as a single electron and its spin. Whatever the implementation, the unit is called a qubit. A single qubit contains information sometimes described as a vector of complex numbers.

    A digital computer, of course, operates on bits which allow only two states, the most common implementation of which is a high or low voltage at some defined point in an electrical circuit.

    Some operations are natural and easy to perform on bits; these are AND, OR, NOT, XOR, and their Boolean friends. These operations, in turn, lend themselves to an easy and natural implementation of integer math. Other operations do not have a natural representation in digital computers, such as real-number arithmetic. For the relatively few occasions that call for irrational numbers, we make do with approximations and call it "floating-point" math.

    The qubit's advantage is that, thanks to quantum mechanics, some operations which are very difficult for a digital computer are easy and natural for qubits. Notably, a set of qubits can perform a Fourier transformation in near constant time--an astounding operation that is so far believed to be impossible on any kind of Turing machine.

    The other side of the coin, which is rarely understood by mainstream news reporters, is that the qubit is completely unable to address most of the rest of our favorite operations, such as integer addition. To ask a qubit to count from 0 to 9 is extremely difficult, maybe physically impossible.

    If that weren't bad enough, quantum algorithms have to deal with other constraints such as the prohibition against creating a copy of an unknown quantum state. Therefore, your quantum Perl is going to have to start by doing away with the assignment operator. Qubits also have a nasty tendency to occasionally do things completely unexpected and unpredictable; this requires massively redundant calculations to reduce the probability of error to something acceptably small. (Of course digital computers suffer from random bit rot as well; it is solved with similar error detection and correction algorithms.)

    All these obstacles discouraged any serious interest in quantum devices for some time. However, recently (1997?) Peter Shor published the first important quantum algorithm, which factors large composite numbers in polynomial time. In case you don't know, a computer with such a capability would have staggering implications. Much of the world's data protection is based on the RSA algorithm which relies on the difficulty of factoring large numbers.

    Hence, the last few years have seen no shortage of funding or interest in quantum computing. Unfortunately, the mainstream media has caught just enough of the conversation to get the false idea that quantum computers are going to blow away all of the digital technology in existence, coming soon to a Best Buy near you.

    Anyway, the moral of the story is, don't start saving for that Pentium-Q just yet; not only is a quantum device completely inappropriate for the overwhelming majority of computing tasks, but the current state of the art is a machine on the order of 10 qubits or so. (A few hundred qubits will be needed before Shor's algorithm presents a threat to current encryption.)

    More realistically, you might expect to see one day in your lifetime a "quantum processing unit" that exists as a special-purpose extension to your digital processor--think along the lines of the 80287 floating point coprocessor. Even this kind of application is decades away at best.

    1. Re:"Quantum" programming in Perl, oh brother.. by The+Pi-Guy · · Score: 1

      don't start saving for that Pentium-Q just yet

      I know I won't; looking at the current P4's 'fuzzy math', the last thing I need is my PQ (Pentium-Q) or QPU (Quantum Processing Unit) getting me a decryption key for my database that's 'close enough' and will transform it into pr0n...

      Ah, Intel.
      --pi

    2. Re:"Quantum" programming in Perl, oh brother.. by Uller-RM · · Score: 1

      Shor's algorithm was 1994.

      More than a few hundred qubits will be needed, also. Shor's algorithm requires two registers of length N. Most Diffie-Hellman keys these days are 1024 bits, with some larger. I don't expect to see it in my lifetime, honestly. But when it does, there will be a shitstorm to beat all shitstorms. Some folks need to get cracking on an encryption process that doesn't rely on the intractability of factoring... they've got maybe 50 years to do it.

    3. Re:"Quantum" programming in Perl, oh brother.. by snarkh · · Score: 1

      There are already several encryption algorithms that do not rely on the computational complexity of factoring. One of the them, for example, is elliptic curve cryptosystem. It is not known whether there is a quantum algorithm which breaks it efficiently, but then again it is not known where there is an aglorithm for ordinary computers to test for primality.

    4. Re:"Quantum" programming in Perl, oh brother.. by cronik · · Score: 1
      There is already a way to do this (if expensive) using two lines of communication one being a fiber that keeps polarization, and the other any other method of communication. By exploiting some of the principles of QM you can both assure "perfect" encryption (one time random key) and tell if your fiber is secure (nessary to assure the key is safe). At the Tx end you would randomly switch between one of 4 polarizations V,H,CCW,CW (keeping a record of the choices), then at the Rx there would be a device that first would either block V-H or CW-CCW polarized light (this model assumes perfect blockage but it is not nessesary) chosing between the two in a perfectly random fashion. Then you block one of the pair that should have gotten through (ie: either V or CCW) and see if a photon arrived. The Tx machine would then send a message telling which of the first filters should have been used. If the Rx side chose the wrong filter it would drop the bit and keep the rest. Both of the two sides would then send an encrypted message with a payload that would be decrypted, modified, encrypted and sent back. If the messages did not match then there was either a transmit error or a snooper on the fiber. Repeating the process a few times would allow you to decide which of the two were the case and decide if a switch needed to be made.


      credit for this should go to someone else as IANAQP [|:P

      ps: If there are typos or spelling errors and you cant understand what was said, I realy dont care and neither does anyone else, so cope with it.


      pps: gramer too

      --
      Information wants to be free like speech wants to be free, not like we want beer to be free.
    5. Re:"Quantum" programming in Perl, oh brother.. by jyasskin · · Score: 2, Interesting

      I believe that RSA relies on the intractability of undoing an exponentiation in the integers mod some prime. In other words:

      Pick two probably-prime numbers and call them e and p. Compute (message^e) mod p, and send that along the wire. There's a third number you can pick if you already know e and p, that'll decrypt it. No factoring involved, except for picking your probably-primes in the first place.

      Any cryptologists are welcome to correct me.

    6. Re:"Quantum" programming in Perl, oh brother.. by zavyman · · Score: 2

      The modulus is not a prime number p, but a composite integer n created by multiplying two large primes together. These two primes are basically the only two things that determine the structure of the private key. Factor the modulus (it is part of the public key), and you can trivially create the private key.

    7. Re:"Quantum" programming in Perl, oh brother.. by virtros · · Score: 1
      I know I won't; looking at the current P4's 'fuzzy math', the last thing I need is my PQ (Pentium-Q) or QPU (Quantum Processing Unit) getting me a decryption key for my database that's 'close enough' and will transform it into pr0n...


      you must have broadband...

      *sigh*

      virtros
      --
      Worst. Sig. Ever.
    8. Re:"Quantum" programming in Perl, oh brother.. by Pathos78 · · Score: 1
      Best quote from parent comment:
      The atomic unit of a quantum computer...


      Language is so bizarre sometimes.
    9. Re:"Quantum" programming in Perl, oh brother.. by The+Pi-Guy · · Score: 1

      Yes, I have broadband (AT+T), but at the second some damn script kiddie is doing an ALL-ROUTERS mcast and I'm getting DoS'd. 56k BroadBand. Stay away at all costs. Err, and what does that have to do with what I wrote?

      OK, that's my off-topic bit for today. Mod me down now. *poof!*

      --joshua

  34. Early Adaptors... by Peridriga · · Score: 2

    I wonder... Who out of anybody would be the first group to adapt and use this...

    SendSpamTo(any($a, $b, $c, {....})...

    Wow... Quantum Spam... Imagine the possibilities of bandwidth usage...

    Or How about...

    DOSAttack(any($a, $b, $c, {....})...

    A Quantum DOS attack...

    Hey just thinking out load how slow the net could be in the future

    1. Re:Early Adaptors... by Junta · · Score: 2

      Pretty good, except change those 'anys' to 'all'

      --
      XML is like violence. If it doesn't solve the problem, use more.
  35. Schrodingers cat paradox by Anonymous Coward · · Score: 2, Interesting
  36. The real use of this... by Fnkmaster · · Score: 5, Informative
    I think this seems to be a bit lost on some people here. Obviously, it takes exponential time to simulate a lot of interesting things that would take polynomial time on a real quantum computer. This Perl simulator module is cool, but it's not going to prove or disprove P==NP.


    The real use of this is for people who want to experiment with quantum _algorithms_ on small data sets and learn and understand better how quantum computers work and how quantum calculations are put together. Writing quantum algorithms is hard and confusing to somebody familiar with classical computation, even if you are familiar with quantum mechanics. There are very few useful quantum algorithms (Gover's search and Shor's factorization algorithms are the two most famous and interesting IMHO). This module might encourage more people to come up with and experiment with quantum algorithms that take advantage of the "inherently parallel" nature of quantum computing.


    Note that though I am no expert, I did actually write something modestly similar to this Perl - an interpreter that read a series of meta-language commands and turned them into physical magnet pulses for spin flipping on an NMR quantum computer we had at MIT. We never bothered to write a simulator for it, but now that I think about it, it would be cool to have this. Kudos to these guys for doing this.


    Now if somebody could just make a quantum computer with, say, 20 or 30 qubits I might be convinced that quantum computing could eventually do useful calculations and that the decoherence problems and setup problems for a large number of weakly coupled qubit units are not intractable. Perhaps an alternative to NMR as the substrate for quantum computing might get farther.

  37. Hooray! by Dasher42 · · Score: 2, Funny

    Between the voodoo and uncertainty of quantum mechanics and \%{$Magical{'Perl'}[$#$syntax]}, who'll ever need to encrypt their code? =)

    1. Re:Hooray! by pnelynx · · Score: 1

      I'm not sure whether that was intentional or not, but as best I can figure out, your example is, indeed, valid Perl syntax. Hang on... *checks* indeed it is.

      The long, boring explanation: Take the hash %Magical, look up the key 'Perl' in it. The value will be a reference to an array. You then take the element of the array with index corresponding to the highest index of the array to which $syntax holds a reference. The result is either the name of an existing hash or a reference to one. The result of the expression is a reference to the hash so determined.

  38. Here's a question for you by Louis+Savain · · Score: 2

    Let's say you have two qubits representing all superimposed numbers between 0 and 3 and you want to add 1 to all of them simultaneously. According to quantum computing experts, one can perform an operation on all the numbers at once. So after the addition operation the two qubits now have all the results between 1 and 3 (assuming the carry is thrown away). The question is, how does one get just one of the results back and be certain that it is the correct one?

    1. Re:Here's a question for you by torh · · Score: 1

      You could represent your superposition as (|00> + |01> + |10> + |11>). Adding one to this would turn it into (|01> + |10> + |11> + |00>). The carry is thrown away, like you thought, but the result is still a superposition of all four values between 0 and 3. Thus, your plus-one operator doesn't change the superposition. But it would have if we started with, say, (|00> - |01> + |10> - |11>).

    2. Re:Here's a question for you by TheLink · · Score: 2

      Dunno about q computing but how about having a two qubit address register for the two qubit result? Then you send in a two (qu)bit address request to the two qubit address register which interacts with two qubit result register so that you get only the result(s) you want?

      Is that possible?

      --
  39. QCL by Ignatius · · Score: 5, Interesting

    Another way to play around with nonclassical algorithms and get your feet wet with quantum programming would be QCL.

    QCL is a procedural quantum programming language which provides nonclassical language elements such as unitary operators, running code in reverse, scratch space management, etc. A Linux interpreter (GPL) which simulates a quantum computer with an arbitrary number of qubits is available here.

  40. The *New* Drake Equation... by Anonymous Coward · · Score: 1, Funny

    Of all the things I've ever heard - this has messed with my head the most...
    (This is the Drake equation for the 22nd Century)

    The Harter Equation:
    *If* it's possible to make a quantum computer that can describe a reality equal to or greater than our own universe in detail, and *if* it's possible to create an infinite number of simulated universes with this level of detail, the chance that our universe is actually a quantum simulation would be nearly infinite*. There would be infinitely more artificial universes (that think they're real) than real ones. Now if an artificial universes (like our own?) can create other artificial universes, the chances that we're an original universe becomes even more implausible. Nice dreams!

    1. Re:The *New* Drake Equation... by jcast · · Score: 1

      I don't see the distinction you're making between ``artificial'' and ``real''. If it exists on a computer, it exists mathematically. If it exists mathematically, what better can you ask for?

      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
  41. Reinventing Non-deterministic programming by Lambdaknight · · Score: 1
    I saw this a while ago (I think on freshmeat) and thought: "Oh, cool :) Perl programmers found out about non-deterministic programming!" - this whole thing is not at all new and has been around for several years. But put the label "Quantum Computing" on it and - whoosh! - the crowd goes mad about it.


    Well, to be fair: of course doing non-deterministic programming in parallel is exactly what quantum computing is all about. The thing is just - modules to simulate non-deterministic programming (albeit mostly in NP, not in P) have been around a while. Only when the different subtrees can be traversed in PARALLEL, like on a quantum computer, it gets new again. Not that non-deterministic programming on single-state computers is uninteresting...

    --
    -- Beware the Jabberwock, my son!
  42. Damian on Quantum::Superpositions at Zurich, CH by zaucker · · Score: 2, Informative

    Damian Conway will give a public talk at ETH Zurich (Swiss Federal Institute of Technology) on Monday, February 11th, 2002 at 17:00h.Everybody is welcome. Location: Departement of Information Technology and Electrical engineering, Gloriastrasse 35; Auditorium E6. http://www.ee.ethz.ch/events/index.en.html Abstract

  43. Schrodinger's OS by soulsteal · · Score: 2

    the superpositioned crash: your computer is both crashing and still alive.


    But you still have to look inside to b0xen before you know which state it's in, right?

  44. Errr.... by Da+VinMan · · Score: 2

    Isn't that pretty much how it works anyway? What, with the fact that most websites seems so well tested.

    *cough*

    --
    Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
  45. Re:May I disable Modbombing? by jcast · · Score: 1

    I'm sure I'll lose karma over this, but: Way to create nonsense posts! You could probably convince the average English major the parent is grammatically correct. Mod parent up!

    --
    There are reasons why democracy does not work nearly as well as capitalism.
    -- David D. Friedman