যাক মৌলিক গেটস আপনার ব্যবহারের জন্য অনুমতি দেওয়া হয় হও। এই এবং ইত্যাদির জন্য পৃথক হিসাবে বিবেচনা করা হয়। সুতরাং বহুবর্ষগতভাবে উপর নির্ভরশীল , কোয়েটের সংখ্যা। সুনির্দিষ্ট নির্ভরতা দরজা বিশৃঙ্খলভাবে আপনি ব্যবহার এবং কিভাবে বিবরণ জড়িত -local তারা হয়। উদাহরণস্বরূপ, সেখানে যদি একক qubit গেটস এবং 2-qubit দরজা যে মত অর্ডার উপর নির্ভর করে না তারপর ।g1⋯gMCNOT12CNOT13MnkxyCZM=xn+(n2)y
একটি সার্কিট তখন কোনও ক্রমে সেই জেনারেটরের একটি পণ্য। তবে একাধিক সার্কিট রয়েছে যা কিছুই করে না। ভালো লেগেছে । সুতরাং যারা গ্রুপে সম্পর্ক দেয়। এটি হ'ল এটি একটি গোষ্ঠী উপস্থাপনা যেখানে এমন অনেক সম্পর্ক রয়েছে যা আমরা জানি না।CNOT12CNOT12=Id ⟨g1⋯gM∣R1⋯⟩
আমরা যে সমস্যাটি সমাধান করতে চাই তা এই গোষ্ঠীতে একটি শব্দ দেওয়া হয়েছে, সংক্ষিপ্ততম শব্দটি যা একই উপাদানটির প্রতিনিধিত্ব করে। সাধারণ গোষ্ঠী উপস্থাপনার জন্য এটি হতাশ। যে ধরণের গ্রুপ উপস্থাপনায় এই সমস্যাটি অ্যাক্সেসযোগ্য তা অটোমেটিক বলে।
তবে আমরা একটি সহজ সমস্যা বিবেচনা করতে পারি। আমরা যদি কিছু নিক্ষেপ , তারপর ফর্মের হয়ে সামনে থেকে শব্দগুলি যেখানে প্রতিটি একমাত্র অবশিষ্ট অক্ষরে শব্দ হয়। যদি আমরা জড়িত না এমন সম্পর্কগুলি ব্যবহার করে তাদের আরও খাটো করে পরিচালিত করতে পারি তবে আমরা সম্পূর্ণ সার্কিটকে আরও ছোট করে দেব। এটি অন্য উত্তরের তৈরি সিএনটিগুলি নিজেরাই অনুকূলকরণের অনুরূপ।giw1gi1w2gi2⋯wkwigi
উদাহরণস্বরূপ, যদি তিনটি জেনারেটর এবং শব্দ , কিন্তু আমরা সাথে মোকাবিলা করতে চান না , আমরা হবে পরিবর্তে কমান এবং করার এবং । এরপরে আমরা তাদের আবার একসাথে এবং এটি মূল শব্দের সংক্ষিপ্তকরণ।aababbacbbabacw1=aababbaw2=bbabaw^1w^2w^1cw^2
সুতরাং ডাব্লুএলওজি (সাধারণতার ক্ষতি ছাড়াই), ধরা যাক আমরা ইতিমধ্যে সেই সমস্যায় যেখানে এখন আমরা নির্দিষ্ট সমস্ত গেট ব্যবহার করি। আবার এটি সম্ভবত কোনও স্বয়ংক্রিয় গ্রুপ নয়। তবে আমরা যদি কিছু সম্পর্ক ছুঁড়ে ফেলে দিই। তারপরে আমাদের আরও একটি গোষ্ঠী থাকবে যার একটি খাঁজ মানচিত্র রয়েছে যা আমরা সত্যিই চাই।⟨g1⋯gM∣R1⋯⟩
গোষ্ঠীটি কোনও ফ্রি গোষ্ঠী নয় তবে তারপরে আপনি যদি a একটি সম্পর্ক হিসাবে তবে আপনি বিনামূল্যে পণ্যটি পাবেন এবং পূর্ববর্তী থেকে পরবর্তী প্রতিটি খণ্ডের মডুলো -এর সংখ্যা হ্রাস করার জন্য একটি ।⟨g1g2∣−⟩g21=id Z2⋆Zg12
আমরা যে সম্পর্কগুলি ফেলে দিই তা এমন হবে যে উপরের এক তলায় (ভাগফলের মানচিত্রের উত্স) নকশার সাহায্যে স্বয়ংক্রিয় হবে। যদি আমরা কেবল সেই সম্পর্কগুলিকেই ব্যবহার করি যা এই শব্দটি টিকে আছে এবং সংক্ষিপ্ত করে রাখে, তবে এটি ভাগফল গোষ্ঠীর জন্য এখনও একটি ছোট শব্দ হবে। এটি কেবলমাত্র ভাগফল গ্রুপের জন্য উপযুক্ত হবে না (ভাগফলের মানচিত্রের লক্ষ্য), তবে এটির দৈর্ঘ্য- এটি শুরু হবে length≤
এটাই ছিল সাধারণ ধারণা, আমরা কীভাবে এটিকে একটি নির্দিষ্ট অ্যালগরিদমে রূপান্তর করতে পারি?
একটি স্বয়ংক্রিয় গ্রুপ পাওয়ার জন্য আমরা কীভাবে এবং সম্পর্কগুলি বেছে নিতে পারি ? আমরা এখানে সাধারণত যে ধরণের প্রাথমিক গেট ব্যবহার করি তার জ্ঞান আসে। এখানে অনেকগুলি জড়িত রয়েছে, সুতরাং কেবল সেগুলি রাখুন। এগুলি কেবলমাত্র প্রাথমিক জড়িত বিষয়গুলি সম্পর্কে সাবধানতার সাথে মনোযোগ দিন, সুতরাং যদি আপনার হার্ডওয়্যারটিতে আপনার চিপের উপর বিচ্ছিন্নভাবে পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথককরণসমূহকে শক্তভাবে বদলাতে হয়। যতটা সম্ভব সংক্ষিপ্ত হতেgi
উদাহরণস্বরূপ, ধরুন আপনার কাছে আইবিএম কনফিগারেশন রয়েছে । তারপরে অনুমোদিত গেট। আপনি যদি কোনও সাধারণ ক্রিয়াকলাপ করতে চান তবে এটিকে ফ্যাক্টরগুলিতে বিভক্ত করুন । গ্রুপ যা আমরা ছোট করতে চাই ।s01,s02,s12,s23,s24,s34si,i+1⟨s01,s02,s12,s23,s24,s34∣R1⋯⟩
মনে রাখবেন যে এগুলি স্ট্যান্ডার্ড জড়িত থাকতে হবে না। আপনি উদাহরণস্বরূপ ছাড়াও throw এ ফেলে দিতে পারেন । চিন্তা করুন Gottesman-Knill উপপাদ্য , কিন্তু একটি বিমূর্ত পদ্ধতিতে উপায়ে এটি সর্বজনীন করা আরো সহজ হবে। যেমন সংক্ষিপ্ত নির্ভুল ক্রমের অধীনে সম্পত্তিটি ব্যবহার করা, যদি আপনার কাছে উভয় পক্ষের সীমাবদ্ধ সম্পূর্ণ রাইটিং সিস্টেম থাকে, তবে আপনি মধ্য গ্রুপের জন্য একটি পাবেন। এই মন্তব্যটি বাকী উত্তরের জন্য অপ্রয়োজনীয়, তবে আপনি কীভাবে উত্তরটির উত্তরগুলি থেকে আরও সাধারণ উদাহরণ তৈরি করতে পারেন তা দেখায়।R(θ)XR(θ)−1X
যে সম্পর্কগুলি রাখা হয় কেবল সেগুলি । এটি একটি কক্সেটর গ্রুপ দেয় এবং এটি স্বয়ংক্রিয়। প্রকৃতপক্ষে, আমাদের এই স্বয়ংক্রিয় কাঠামোর জন্য আলগোরিদিম কোড পর্যন্ত শুরু থেকে শুরু করতে হবে না। এটি ইতিমধ্যে সেজে প্রয়োগ করা হয়েছে (পাইথন ভিত্তিক) সাধারণ উদ্দেশ্যে। আপনাকে যা করতে হবে তা হ'ল নির্দিষ্ট করতে হবে এবং এর ইতিমধ্যে বাকি বাস্তবায়ন সম্পন্ন হয়েছে। আপনি তার উপরে কিছু স্পিডআপ করতে পারেন।(gigj)mij=1mij
mij of গেটগুলির লোকাল বৈশিষ্ট্যের কারণে গণনা করা সত্যিই সহজ। দরজা সর্বাধিক হন -local, তারপর এর গণনার একটি করা যাবে মাত্রিক হিলবার্ট স্থান। কারণ সূচকগুলি যদি ওভারল্যাপ না করে তবে আপনি জানেন যে । যখন এবং যাতায়াত করে তখন। আপনাকে কেবল প্রবেশের অর্ধেকেরও কম গণনা করতে হবে। এটি কারণ ম্যাট্রিক্স প্রতিসাম্যযুক্ত, ত্রিভুজটিতে (গুলি ( )। এছাড়াও বেশিরভাগ এন্ট্রি কেবল জড়িত কুইটগুলির নাম পরিবর্তন করে রাখে যাতে আপনি যদি ক্রমটি জানেনkmij22k−1mij=2mij=2gigjmij1(gigi)1=1(CNOT12H1) , আপনি আবার গণনা না করেই এর ক্রম জানেন ।CNOT37H3
এটি সমস্ত সম্পর্কের যত্ন নিয়েছিল যা কেবলমাত্র দুটি পৃথক গেটের সাথে জড়িত (প্রমাণ: অনুশীলন)। বা ততোধিক জড়িত সম্পর্কের সবগুলি ফেলে দেওয়া হয়েছিল। আমরা এখন এগুলিকে আবার পিছনে রেখেছি Let's আমাদের বলুন যে এটি আছে, তারপরে কেউ নতুন সম্পর্ক ব্যবহার করে ডেনের লোভী অ্যালগরিদম সম্পাদন করতে পারে । যদি কোনও পরিবর্তন ঘটে থাকে তবে আমরা আবার কক্সেটর গ্রুপের মধ্যে দিয়ে চালানোর জন্য এটি পিছনে ছুঁড়ে ফেলি। কোনও পরিবর্তন না হওয়া পর্যন্ত এটি পুনরাবৃত্তি করে।3
প্রতিবার শব্দটি হয় সংক্ষিপ্ত হয়ে যাচ্ছে বা একই দৈর্ঘ্যে অবস্থান করছে এবং আমরা কেবলমাত্র অ্যালগোরিদম ব্যবহার করছি যা লিনিয়ার বা চতুর্ভুজ আচরণ করে। এটি একটি বরং সস্তা পদ্ধতি এটি পাশাপাশি এটি করতে পারে এবং নিশ্চিত করে নিন যে আপনি বোকা কিছু করেননি।
যদি আপনি নিজে এটি পরীক্ষা করে দেখতে চান তবে হিসাবে জেনারেটরের সংখ্যা , যে র্যান্ডম শব্দের আপনি চেষ্টা করছেন তার দৈর্ঘ্যের এবং হিসাবে কক্সেটর ম্যাট্রিক্স দিন ।NKm
edge_list=[]
for i1 in range(N):
for j1 in range(i):
edge_list.append((j1+1,i1+1,m[i1,j1]))
G3 = Graph(edge_list)
W3 = CoxeterGroup(G3)
s3 = W3.simple_reflections()
word=[choice(list([1,..,N])) for k in range(K)]
print(word)
wTesting=s3[word[0]]
for o in word[1:]:
wTesting=wTesting*s3[o]
word=wTesting.coset_representative([]).reduced_word()
print(word)
N=28
এবং এর সাথে একটি উদাহরণ K=20
, প্রথম দুটি লাইন হ'ল ইনপুট অবিশ্বস্ত শব্দ, পরের দুটি হ্রাস শব্দ। আমি আশা করি ম্যাট্রিক্সে প্রবেশের সময় আমি টাইপো তৈরি করিনি ।m
[26, 10, 13, 16, 15, 16, 20, 22, 21, 25, 11, 22, 25, 13, 8, 20, 19, 19, 14, 28]
['CNOT_23', 'Y_1', 'Y_4', 'Z_2', 'Z_1', 'Z_2', 'H_1', 'H_3', 'H_2', 'CNOT_12', 'Y_2', 'H_3', 'CNOT_12', 'Y_4', 'X_4', 'H_1', 'Z_5', 'Z_5', 'Y_5', 'CNOT_45']
[14, 8, 28, 26, 21, 10, 15, 20, 25, 11, 25, 20]
['Y_5', 'X_4', 'CNOT_45', 'CNOT_23', 'H_2', 'Y_1', 'Z_1', 'H_1', 'CNOT_12', 'Y_2', 'CNOT_12', 'H_1']
মত যারা জেনারেটর ফিরে ফেলে আমরা কেবল মত সম্পর্ক প্রতিহত করা এবং যে দরজা দিয়ে যাত্রা করার যে জড়িত না qubit । এটা আমাদের পচানি করতে পারবেন আগে থেকে আছে দীর্ঘ যতটা সম্ভব। আমরা মতো পরিস্থিতি এড়াতে চাই । (ক্লিফ + টি তে প্রায়শই টি-গণনা হ্রাস করার চেষ্টা করা হয়)। এই অংশের জন্য, নির্দেশিত অ্যাসাইক্লিক গ্রাফ নির্ভরতা দেখাচ্ছে যা গুরুত্বপূর্ণ। এটি ডাগের একটি ভাল টপোলজিকাল সাজানোর সমস্যা। এটি অগ্রাধিকার পরিবর্তন করে সম্পন্ন হয় যখন কোনওটির পরবর্তী কীটি ব্যবহার করতে হবে তার একটি পছন্দ থাকে। (আমি এই অংশটি খুব শক্ত করে অনুকূলকরণে সময় নষ্ট করব না))TiTni=1Tiiw1gi1w2gi2⋯wkwiX1T2X1T2X1T2X1
শব্দটি ইতিমধ্যে অনুকূল দৈর্ঘের নিকটে থাকলে, করার মতো অনেক কিছুই নেই এবং এই পদ্ধতিটি কোনও সাহায্য করবে না। তবে এটি যা খুঁজে পায় তার সর্বাধিক প্রাথমিক উদাহরণ হিসাবে যদি আপনার একাধিক ইউনিট থাকে এবং আপনি ভুলে গিয়েছিলেন যে শেষে একটি এবং পরের শুরুতে ছিল, এটি এই জুটি থেকে মুক্তি পাবে। এর অর্থ আপনি বৃহত্তর আত্মবিশ্বাসের সাথে সাধারণ রুটিনগুলিকে ব্ল্যাক বক্স করতে পারেন যে আপনি যখন এগুলি একসাথে রাখবেন তখন সেই স্পষ্ট বাতিলগুলি সমস্তই যত্ন নেওয়া হবে। এটি অন্যদের মতো করে যা স্পষ্ট নয়; যারা ।HiHimij≠1,2