Quantum Bayesian Networks

January 21, 2018

Life in the time of the Bayesian Wars: Clippy Strikes Back

Filed under: Uncategorized — rrtucci @ 7:42 pm

You can now add Clippy to any website, with his full panoply of adorable responses.


(Thanks to Gavin Dekant for pointing this website to us.) First lines of website:

Add Clippy or his friends to any website for instant nostalgia. Our research shows that people love two things: failed Microsoft technologies and obscure Javascript libraries. Naturally, we decided to combine the two.

So what does this have to do with Bayesian Networks?

In a previous blog post, I linked to a 1996 newspaper article that quotes Bill Gates revealing his strong interest in Bayesian Networks. But I didn’t mention in that blog post that this was not just a platonic love affair with Bnets which never went any further. By 1996, Gates was already actively channeling his love of B nets into backing real MS products, such as the Lumiere project, which brought to the world the first office assistant, in Office 97. Nowadays, Alexa, Siri, Google’s Office Assistant and Cortana are well known, commonplace office assistants, but MS was there first. Sadly, but characteristically, MS has fumbled the OA ball since then, and today, Cortana ranks last in usage among the big 4 OA’s. In fact, Cortana is almost dead today, now that MS has all but pulled out of the mobile phone OS and hardware businesses.

Next, I want to say more about the Lumiere project, a project remarkable for its great foresight, technical prowess and creativity, and for its instructive, amusing history with a dramatic, poignant ending.

Here is a nice article which backs up much of the history that I will recount next:

The Lumiere project: The origins and science behind Microsoft’s Office Assistant By Awesome-o | August 31, 2009

The office assistant created by the Lumiere project and first offered by MS in Office 97 was called Clippy. Clippy predicted its user’s next moves and needs so poorly that Office users soon started to hate and dread it, so much so that MS decided to turn it off starting with Office 2007. So poor Clippy was born about 20 years ago and he was killed when he was 10 years old.

Microsoft’s Lumiere project, headed by Eric Horovitz, produced the first in-house versions of Clippy, based on Bayesian Networks. This original Clippy learned from the user, it was trainable, so it was truly Bayesian. By all accounts, it worked really well. However, for the commercial version that appeared in Office 97 and thereafter, upper management insisted that the Bayesian heart of Clippy be replaced by a rule based system that could not learn from the user. The reason Clippy was crippled was not out of palace intrigue or corporate malice but simply that Office 97 already occupied too much space and the Office designers had to choose between including a full fledged Clippy or including some new, mundane word processing features, but not both, and they chose the latter. Hence, the original, by many accounts brilliant Clippy, was lobotomized before it was first released to the public.

But it gets better. Because of the Clippy fiasco, many people in 2007 considered the idea of an office assistant that could be trained by the user to be an impossible dream. How wrong they were! Look at the present. OA’s have not gone away. They keep getting better and more ubiquitous.

And, Clippy is back!

Bayesianism will never die. Author Sharon McGrayne has the same opinion and has written a wonderful popular science book explaining why:

“The Theory That Would Not Die: How Bayes’ Rule Cracked the Enigma Code, Hunted Down Russian Submarines, and Emerged Triumphant from Two Centuries of Controversy”, by Sharon Bertsch McGrayne


January 10, 2018

Trend Graphs for quantum computer programming related topics

Filed under: Uncategorized — rrtucci @ 3:45 am

Programmers like me often fret over whether they are learning the programming language du jour, because employers usually only want to hire those who already know a specific p. language. And the more popular a p language is, the more jobs are available using it. It’s an annoying fact of life for programmers that there are numerous p languages available, and that they tend to peak in popularity and then become less and less popular over time. In the old days, I used to go to a Barnes & Noble book store and there gauge the popularity of each p language by the relative number of books available for it on their shelves. Nowadays, to gauge such popularity, I go instead to the webpages at Google and StackOverflow that generate trend graphs.

The purpose of this blog post is to gather in one spot links to trend graphs comparing topics that I personally think are important and related to quantum computer programming.

StackOverflow trend graph for various computer languages used in quantum computing, big data, ai, statistics (javascript > python > java > C#… Haskell used by Quipper is insignificant. C# getting less popular over time)

Google trend graph comparing: Cortana, Alexa, Siri, Google Assistant (Alexa peaking, Microsoft Cortana lowest)

Google trend graph comparing: TensorFlow, PyTorch, quantum computing, quantum computer, bayesian (TensorFlow superpopular, especially in China)

January 1, 2018

New tools for dealing with limited couplings of a quantum computer chip

Filed under: Uncategorized — rrtucci @ 11:37 pm

The main purpose of this blog post is to announce that Qubiter now has two simple, but hopefully useful, new classes that facilitate writing qc programs for the new crop of qc’s with 20-50 qubits but such that those qubits are not fully connected (coupled):

  1. Class ForbiddenCNotExpander reads an English file and writes a new English file. Any CNot in the old file that is not physically allowed by a pre-specified qc chip is replaced in the new file by an expansion (sequence) of allowed CNots.

  2. Class ChipCouplingsFitter reads an English file and writes a new English file. The new file permutes the qubits of the old file so that the old CNots are mapped into new ones that are allowed for a pre-specified qc chip. Of course, this is not always possible, so the class only promises to find such a mapping and to tell you what it is if it finds one.

I hope these 2 new classes will make it easier for Qubiter users to interact with real qc hardware of any brand.

We are striving to make Qubiter interact with as many qc hardware brands as possible. So far, we have targeted the IBM chips with a class called Qubiter_to_IBMqasm2 that translates a Qubiter English file (i.e., Qubiter’s version of qasm) to IBM qasm2. As soon as Google comes out with its 49 qubit qc and accompanying cloud service, which Martinis has promised for Jan 2018, we will target Google devices too, by writing a translator from Qubiter English files to Google’s version of qasm. This IBM or Google qasm can be sent by a Jupyter notebook via the internet to the IBM or Google quantum computers sitting in the cloud, which will then run the program and send back the results to the original Jupyter notebook.

We are trying to design Qubiter so that it facilitates communication not only between a user and multiple hardware devices, but also among multiple users. Indeed, Qubiter already makes it easy for users of different qc devices, for example Alice who uses an IBM chip and Bob who uses a Google chip, to be on friendly terms with each other, maybe even go out on a date. Qubiter facilitates such dalliances because it saves quantum circuits as simple yet clear text files. This makes it as easy as pie to modify those text files, save them to improve them at a later date, and share them with other qc engineers. I you want to collect quantum circuits like you would collect baseball cards, comic books, stamps, butterflies or whatever, Qubiter’s English and Picture files found in Qubiter’s io_folder are a great way of doing it.

Create a free website or blog at WordPress.com.

%d bloggers like this: