Quantum Programming Using The Quantum Information Science Kit - Introduction, Setup, and Installation

in #steemstem6 years ago (edited)

Hello Steemstemers, Utopians, and Quantum Enthusiasts Alike :]

quantum.png

Self Generated Image

Well guys, It has been quite the busy week, and I hope you traders have been making a killing, because it is a bullpen out there! For the moment, the market is moving rather slowly, and I think this is an excellent opportunity to get a start on my Quantum Programming Guides. This is something I have been wanting to do for a few weeks now, and I hope you all find this as interesting as I do. These quantum computers, and their methods, are in early, early stages, however in time, I do believe they will change many things in our world.

Quantum Computing: Superposition


Quantum computing involves a variety of complex, both mathematical and scientific calculations and methods, to retain the ability to solve certain problems much quicker than a traditional modern day computer. I am in no way a scientist, science student, or anything of the sort, and to be honest with you, aside from the idea of 'Schrodinger's Cat', know very little on the subject. However I have been studying these computers for many months now, and it has really helped me get a grasp on the basics at the very least.

QuantumHarmonicOscillatorAnimation.gif

Wikimedia Commons

Quantum Computers make use of a few different quantum methods, in order to achieve their tremendous feats - the main ones being Superposition, Entanglement, and The Qubit. To fully understand how a quantum computer functions, we must also have an understanding of our current computers. In a classical computer, Data is represented by series' of '1's, and '0's, and many complex mathematical functions are done with them, in order to achieve anything in a computer, be it moving a mouse, or typing with a keyboard.

Now a quantum computer, instead of simply having the option of having a 'Bit' with a value of a '1', or a '0', uses what are know as 'Qubits' and these also have the option of being both a '1' and a '0' at the same time. This is what is known as 'Superposition'.

Quantum Computing: Entanglement


Now, superposition could technically be achieved through numerous other scientific or mathematical, but not necessarily quantum methods, so it could be argued that superposition alone does not make a computer truly quantum. This is one of the reasons it is not the only method involved, as alone, it would not achieve the necessary results. Entanglement, is a quantum mechanical phenomenon that happens with atoms, and other particles, where two atoms become directly correlated with each other. There are many ways of inducing entanglement, but we will not be getting into the physics of it too much during these guides.

Bells-thm.png
Wikimedia Commons

When two particles are 'entangled' their physical states are reliant on each other. As an example, an entangled set of Qubits can be put into positions, in which when one is turned face down, the other reacts oppositely, and turns face up. This will happen no matter the distance, or interference it seems, and is being researched currently as a means of long distance communication, aside from its clear uses in computing.

Quantum Computing: How This Changes The Game

Now, when some people hear that quantum computers are faster than regular ones, they do not fully understand what this means. Quantum computers will not be able to help you watch Netflix much faster, or many other media-centric things, however, complex mathematical equations, will be a breeze for these types of machines. Quantum computers will be able to do things like puzzle solving, decryption, genome mapping and more.

See, in a classical machine, two bits can represent these four states, '11', '10', '00', and '01', only it can only represent any one of these states, at a given time. A quantum computer is able to use two qubits, to represent all four states, at the exact same time. This will allow researchers to do important work, at a speed and level that is quite literally impossible on a current, classic machine.

Quantum Information Science Kit - Installation


The Quantum Information Science kit, was developed for use by IBM's research team,as they house several real world quantum computers, and offer them freely for use to anyone who pleases. For this, we will need to setup an account with quantumexperience.ng, as well as install several bits of software. This should Ideally be done on a Ubuntu machine, and I have set up a fresh VM for this, though I do believe there is some sort of windows support as well.

So once we are sitting at a fresh Ubuntu machine, lets open up the terminal and get started. I'm not going to be explaining these steps much, as they are mostly linux/python commands/tools. Enter the following lines into your terminal like so.

mkdir quantum
cd quantum

quantum1.PNG
Screenshot

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6

sudo apt-get install python3-pip
sudo pip install jupyter
pip3 install qiskit

This is one of the final steps, and will install all necessary requirements to run the Qiskit successfully. Aside from that, we will also need to install a Python IDE, but I will leave that to your choice. I prefer PyCharm, however many people enjoy Sublime instead. Once you have an IDE installed, we will carry on and attempt to run a program, so as to ensure everything is set up appropriately.

The following code, is an excerpt from https://github.com/Qiskit/qiskit-terra, and is not my own, however will quickly verify that you have fully installed all necessary components of the kit. Enter THIS script into your IDE of choice, and give it a run. you should see a result much like mine in the image below, though if you are getting any errors, feel free to comment and ask for help, as this is quite a large installation.

quantum3.PNG
Screenshot

Quantum Information Science Kit - Conclusion

Alright guys,as long as you ended up with a result in a similar format to mine, you should be ready for each coming lesson in the future :) I have many plans for this, but for now we wont be getting into and programming just yet, as this has gone on quite long enough for a simple installation guide, (Linux man...) but very shortly we will be going through all the different aspects and elements of the kit, and developing a few of our own programs.

As I have mentioned earlier, I am not a scientific professional by any means, so I assume that once we really get into the meat of this, many of you will have a greater knowledge of the mechanics of this than I, and I would love to see what you do with it. You guys are always welcome to comment, ask questions, suggest ideas, etc. I love the feedback, and will always do my best to improve for you.

For those following my Ethical Hacking Guides, fear not. Development has slowed, as the cryptocurrency market has started to gain some volume again, but they will continue on for certain, just at a bit of a slower pace, as I am spending much time in the markets these days, and will be putting a good deal of effort into these quantum programming tutorials as well. For now, I hope this was entertaining, informative, and that you all have a kick*** night :)

Happy Hunting,
Cerulean

Sort:  

Hi @ceruleanblue!

Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.

Contribute to Open Source with utopian.io

Learn how to contribute on our website and join the new open source economy.

Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV

Woot! Thank you guys for all the support, and attention. You're awesome and what you all do for the community is amazing!



This post has been voted on by the steemstem curation team and voting trail.

There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!

Awe you guys are so amazing! Super happy to see this is a topic of interest, and will do my best to keep my best coming!

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by ceruleanblue from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Coin Marketplace

STEEM 0.20
TRX 0.12
JST 0.028
BTC 64118.76
ETH 3519.69
USDT 1.00
SBD 2.55