খুব সাধারণ কোয়ান্টাম প্রোগ্রামটি কেমন হবে?


15

" প্রথম প্রোগ্রামযোগ্য কোয়ান্টাম ফোটোনিক চিপ " পড়ার পরে । আমি ভাবছিলাম যে কোয়ান্টাম জড়িত কম্পিউটার ব্যবহার করে এমন কোনও সফ্টওয়্যার কেমন হবে like

নির্দিষ্ট কোয়ান্টাম প্রোগ্রামিংয়ের জন্য কোডের কোনও উদাহরণ আছে? সিউডোকোড বা উচ্চ-স্তরের ভাষার মতো? বিশেষ করে, সবচেয়ে কম প্রোগ্রাম যা একটি ঘণ্টা রাষ্ট্র তৈরি করতে ব্যবহার করা যেতে পারে কি একটি রাষ্ট্র ইনিশিয়ালাইজ থেকে শুরু| ψ0=| 00উভয় একটি সিমুলেশন এবং IBM এর একটি ব্যবহারকোয়ান্টাম অভিজ্ঞতাযেমন প্রসেসরibmqx4?

|ψ=12(|00+ +|11)
|ψ0=|00

Traditionalতিহ্যবাহী প্রোগ্রামিং থেকে জড়িয়ে যাওয়ার পক্ষে ধারণাগত লাফ তৈরি করা এত সহজ নয়।


আমি সি এর libquantum খুঁজে পেয়েছি ।

উত্তর:


12

ধরে নিই যে আপনি একটি গেট ভিত্তিক কোয়ান্টাম কম্পিউটার বিবেচনা করছেন, একটি জড়িত রাষ্ট্র উত্পাদন করার সবচেয়ে সহজ উপায় হ'ল বেল রাজ্যগুলির একটি উত্পাদন করা produce নিম্নলিখিত সার্কিটটি বেল অবস্থা দেখায় |Φ+ +

Bellstate

পরীক্ষা করে , | ψ 1 এবং | ψ 2 |ψ0|ψ1|ψ2 আমরা সবাই দরজা প্রয়োগ পরে entagled রাষ্ট্র নির্ধারণ করতে পারেন:

1. :|ψ0

|ψ0=|00

|ψ1 :

হাদামারড-গেটটি প্রথম কোয়েটে প্রয়োগ হয় যার ফলাফল নিম্নলিখিত:

|ψ1=(এইচআমি)|00=এইচ|0|0=12(|0+ +|1)|0=12(|00+ +|10)

|ψ2 :

এখন একটি সিএনওটি গেট প্রয়োগ করা হয় এবং দ্বিতীয় কুইবিটটি উল্টায় তবে কেবল যেখানে প্রথমটির মান থাকে 1. ফলাফল is

|ψ2=12(|00+ +|11)

|ψ2

যদিও উপরে দৃষ্টিভঙ্গিটি আপনার কাছে সাধারণ অর্থে প্রোগ্রামিংয়ের মতো মনে হচ্ছে না, রাজ্যগুলিতে গেট প্রয়োগ করা মূলত গেট-ভিত্তিক কোয়ান্টাম কম্পিউটারের প্রোগ্রামিংয়ের কাজ is বিমূর্ত স্তর রয়েছে যা আপনাকে উচ্চ-স্তরের প্রোগ্রামিং করতে দেয় তবে গেটগুলির প্রয়োগে আদেশগুলি অনুবাদ করে। আইবিএম কোয়ান্টাম অভিজ্ঞতা ইন্টারফেস বৈশিষ্ট্যগুলির প্রদান করে।

মাইক্রোসফ্ট এর কিউ # এর মতো একটি ভাষায় উপরের উদাহরণটি এর সাথে দেখতে পাওয়া যেতে পারে:

operation BellTest () : ()
{
    body
    {
        // Use two qubits
        using (qubits = Qubit[2])
        {
            Set (One, qubits[0]);
            Set (Zero, qubits[1]);

            // Apply Hadamard gate to the first qubit
            H(qubits[0]);

            // Apply CNOT gate
            CNOT(qubits[0],qubits[1]);
         }
     }
}

আরও বিশদ সংস্করণ (পরিমাপ সহ) এখানে পাওয়া যাবে: মাইক্রোসফ্ট: কোয়ান্টাম প্রোগ্রাম রচনা করা


14

কোয়ান্টাম প্রোগ্রাম লেখার একটি উপায় হল কিউআইএসকিট। এটি আইবিএম এর ডিভাইসে প্রোগ্রাম চালানোর জন্য ব্যবহার করা যেতে পারে। QISKit ওয়েবসাইট নিম্নলিখিত কোড স্নিপেট যাচ্ছ করতে, যা একটি বিজড়িত বর্তনী হয় হিসাবে আপনি চান দাড়ায়। এটি ডেটেল দ্বারা উত্তর হিসাবে একই প্রক্রিয়া। আমি এটি লাইন বাই লাইন মন্তব্য করব।

# import and initialize the method used to store quantum programs
from qiskit import QuantumProgram
qp = QuantumProgram()
# initialize a quantum register of two qubits
qr = qp.create_quantum_register('qr',2) 
# and a classical register of two bits
cr = qp.create_classical_register('cr',2) 
# create a circuit with them which we call 'Bell'
qc = qp.create_circuit('Bell',[qr],[cr]) 
# apply a Hadamard to the first qubit
qc.h(qr[0]) 
# apply a controlled not with the first qubit as control
qc.cx(qr[0], qr[1]) 
# measure the first qubit and store its result on the first bit
qc.measure(qr[0], cr[0]) 
# the same for the second qubit and bit
qc.measure(qr[1], cr[1]) 
# run the circuit
result = qp.execute('Bell') 
# extract the results
print(result.get_counts('Bell')) 

মনে রাখবেন যে এখানে 'এক্সিকিউট' কমান্ডটি কেবল প্রোগ্রাম চালানোর জন্য নির্দিষ্ট করে। অন্যান্য সমস্ত সেটিংস, যেমন আপনি যে ডিভাইসটি ব্যবহার করতে চান, পরিসংখ্যান পাওয়ার জন্য আপনি যতবার পুনরাবৃত্তি করতে চান তার সংখ্যা তাদের ডিফল্ট মানগুলিতে সেট করা থাকে। 1024 শটের জন্য আইবিএমএক্সএক্স 4 এ চালানোর জন্য, আপনি পরিবর্তে এটি ব্যবহার করতে পারেন

results = qp.execute(['Bell'], backend='ibmqx4', shots=1024)

4

আমি যে সহজ কোয়ান্টাম প্রোগ্রামটি ভাবতে পারি তা হ'ল একটি (1-বিট) সত্য র্যান্ডম নম্বর জেনারেটর। কোয়ান্টাম সার্কিট হিসাবে এটি দেখতে এটির মতো দেখাচ্ছে:

আপনি প্রথমে রাজ্যে একটি কোয়েট প্রস্তুত করুন |0, তারপরে সুপারপজিশন তৈরি করতে একটি হাদামারদ গেট লাগান 22(|0+ +|1)যা আপনি তারপর গণনা ভিত্তিতে পরিমাপ। পরিমাপের ফলাফল হয়|0 অথবা |1, 50% এর সম্ভাব্যতা সহ প্রতিটি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.