लेखक: सर्गेई ब्रावी एंड्रयू डब्ल्यू क्रॉस जे एम गैम्बेटा दिमित्री मास्लोव पैट्रिक रॉल थियोडोर जे योडर सार भौतिक त्रुटियों का संचय , , वर्तमान क्वांटम कंप्यूटरों में बड़े पैमाने पर एल्गोरिदम के निष्पादन को रोकता है। क्वांटम त्रुटि सुधार तार्किक क्वबिट्स को अधिक संख्या में भौतिक क्वबिट्स पर एन्कोड करके एक समाधान का वादा करता है, ताकि भौतिक त्रुटियों को वांछित संगणना को सहनीय निष्ठा के साथ चलाने की अनुमति देने के लिए पर्याप्त रूप से दबा दिया जा सके। क्वांटम त्रुटि सुधार व्यावहारिक रूप से तब संभव हो जाता है जब भौतिक त्रुटि दर एक थ्रेशोल्ड मान से नीचे हो जाती है जो क्वांटम कोड, सिंड्रोम माप सर्किट और डिकोडिंग एल्गोरिथम के विकल्प पर निर्भर करती है । हम एक एंड-टू-एंड क्वांटम त्रुटि सुधार प्रोटोकॉल प्रस्तुत करते हैं जो कम-घनत्व समता-जांच कोड के परिवार के आधार पर दोष-सहिष्णु मेमोरी लागू करता है । हमारा दृष्टिकोण मानक सर्किट-आधारित शोर मॉडल के लिए 0.7% की त्रुटि थ्रेशोल्ड प्राप्त करता है, जो सतह कोड के बराबर है , , , जो 20 वर्षों से त्रुटि थ्रेशोल्ड के मामले में प्रमुख कोड रहा है। हमारे परिवार में लंबाई- कोड के लिए सिंड्रोम माप चक्र के लिए सहायक क्वबिट्स और CNOT गेट्स, क्वबिट आरंभीकरण और माप का गहराई-8 सर्किट की आवश्यकता होती है। आवश्यक क्वबिट कनेक्टिविटी दो अलग-अलग प्लेनर उप-ग्राफ से बना डिग्री-6 ग्राफ है। विशेष रूप से, हम दिखाते हैं कि 12 तार्किक क्वबिट्स को कुल 288 भौतिक क्वबिट्स का उपयोग करके लगभग 1 मिलियन सिंड्रोम चक्रों के लिए संरक्षित किया जा सकता है, यह मानते हुए कि भौतिक त्रुटि दर 0.1% है, जबकि सतह कोड को उक्त प्रदर्शन प्राप्त करने के लिए लगभग 3,000 भौतिक क्वबिट्स की आवश्यकता होगी। हमारे निष्कर्षों से निकट-अवधि के क्वांटम प्रोसेसर की पहुंच के भीतर कम-ओवरहेड दोष-सहिष्णु क्वांटम मेमोरी के प्रदर्शन का मार्ग प्रशस्त होता है। 1 2 3 4 k n 5 6 7 8 9 10 n n मुख्य क्वांटम कंप्यूटिंग ने अपनी क्षमता के कारण ध्यान आकर्षित किया है, जिससे सर्वोत्तम ज्ञात शास्त्रीय एल्गोरिदम की तुलना में कम्प्यूटेशनल समस्याओं के एक सेट के लिए तेजी से समाधान प्रदान किया जा सकता है । ऐसा माना जाता है कि एक कार्यशील स्केलेबल क्वांटम कंप्यूटर वैज्ञानिक खोज, सामग्री अनुसंधान, रसायन विज्ञान और दवा डिजाइन जैसे क्षेत्रों में कम्प्यूटेशनल समस्याओं को हल करने में मदद कर सकता है, कुछ नाम हैं , , , . 5 11 12 13 14 क्वांटम कंप्यूटर बनाने में मुख्य बाधा क्वांटम जानकारी की नाजुकता है, जो इसे प्रभावित करने वाले विभिन्न शोर स्रोतों के कारण होती है। चूंकि एक क्वांटम कंप्यूटर को बाहरी प्रभावों से अलग करना और इसे एक वांछित संगणना को प्रेरित करने के लिए नियंत्रित करना एक दूसरे के विपरीत है, शोर अपरिहार्य लगता है। शोर के स्रोतों में क्वबिट्स, उपयोग की जाने वाली सामग्री, नियंत्रण उपकरण, स्थिति की तैयारी और माप त्रुटियों और स्थानीय मानव निर्मित, जैसे कि आवारा विद्युत चुम्बकीय क्षेत्र, से लेकर ब्रह्मांड के अंतर्निहित कारकों तक, जैसे कॉस्मिक किरणें, शामिल हैं। सारांश के लिए संदर्भ देखें । जबकि कुछ शोर स्रोतों को बेहतर नियंत्रण के साथ समाप्त किया जा सकता है , सामग्री और परिरक्षण , , , कई अन्य स्रोत या तो हटाना मुश्किल लगते हैं या बिल्कुल भी संभव नहीं हैं। अंतिम प्रकार में फंसे आयनों में सहज और प्रेरित उत्सर्जन शामिल हो सकते हैं , , और सुपरकंडक्टिंग सर्किट में स्नान (पुरसेल प्रभाव) के साथ संपर्क —दोनों प्रमुख क्वांटम तकनीकों को कवर करते हुए। इस प्रकार, त्रुटि सुधार एक कार्यशील स्केलेबल क्वांटम कंप्यूटर बनाने के लिए एक प्रमुख आवश्यकता बन जाता है। 15 16 17 18 19 20 1 2 3 क्वांटम दोष सहिष्णुता की संभावना अच्छी तरह से स्थापित है । कई भौतिक क्वबिट्स में एक तार्किक क्वबिट को अनावश्यक रूप से एन्कोड करने से सिंड्रोम की बार-बार माप करके त्रुटियों का निदान और सुधार करना संभव हो जाता है। हालाँकि, त्रुटि सुधार तभी फायदेमंद होता है जब हार्डवेयर त्रुटि दर एक निश्चित थ्रेशोल्ड मान से नीचे हो जो एक विशेष त्रुटि सुधार प्रोटोकॉल पर निर्भर करता है। क्वांटम त्रुटि सुधार के लिए पहले प्रस्ताव, जैसे कि संयुक्त कोड , , , त्रुटि दमन की सैद्धांतिक संभावना को प्रदर्शित करने पर ध्यान केंद्रित किया। जैसे-जैसे क्वांटम त्रुटि सुधार और क्वांटम प्रौद्योगिकियों की क्षमताओं की समझ परिपक्व हुई, ध्यान व्यावहारिक क्वांटम त्रुटि सुधार प्रोटोकॉल खोजने पर स्थानांतरित हो गया। इसके परिणामस्वरूप सतह कोड का विकास हुआ , , , जो लगभग 1% का उच्च त्रुटि थ्रेशोल्ड, तेज डिकोडिंग एल्गोरिदम और दो-आयामी (2D) वर्ग जाली क्वबिट कनेक्टिविटी पर निर्भर मौजूदा क्वांटम प्रोसेसर के साथ संगतता प्रदान करता है। एकल तार्किक क्वबिट के साथ सतह कोड के छोटे उदाहरण पहले ही कई समूहों द्वारा प्रयोगात्मक रूप से प्रदर्शित किए जा चुके हैं , , , , । हालाँकि, 100 या अधिक तार्किक क्वबिट्स तक सतह कोड को बढ़ाना इसकी खराब एन्कोडिंग दक्षता के कारण निषेधात्मक रूप से महंगा होगा। इसने कम-घनत्व समता-जांच (LDPC) कोड के रूप में जाने जाने वाले अधिक सामान्य क्वांटम कोड में रुचि को बढ़ावा दिया है । LDPC कोड के अध्ययन में हालिया प्रगति से पता चलता है कि वे बहुत अधिक एन्कोडिंग दक्षता के साथ क्वांटम दोष सहिष्णुता प्राप्त कर सकते हैं । यहां, हम LDPC कोड के अध्ययन पर ध्यान केंद्रित करते हैं, क्योंकि हमारा लक्ष्य क्वांटम त्रुटि सुधार कोड और प्रोटोकॉल खोजना है जो कुशल और व्यावहारिक रूप से प्रदर्शित करने योग्य दोनों हों, जो क्वांटम कंप्यूटिंग प्रौद्योगिकियों की सीमाओं को देखते हुए हों। 4 21 22 23 7 8 9 10 24 25 26 27 28 6 29 एक क्वांटम त्रुटि सुधार कोड LDPC प्रकार का होता है यदि कोड का प्रत्येक जांच ऑपरेटर केवल कुछ क्वबिट्स पर कार्य करता है और प्रत्येक क्वबिट केवल कुछ जांचों में भाग लेता है। हाल ही में LDPC कोड के कई वेरिएंट प्रस्तावित किए गए हैं जिनमें हाइपरबोलिक सतह कोड , , , हाइपरग्राफ उत्पाद , संतुलित उत्पाद कोड , परिमित समूहों पर आधारित दो-ब्लॉक कोड , , , और क्वांटम टै . बाद वाले को दिखाया गया है , कि वे एसिम्प्टोटिक रूप से 'अच्छे' हैं, जिसका अर्थ है कि वे एक स्थिर एन्कोडिंग दर और रैखिक दूरी प्रदान करते हैं: एक पैरामीटर जो सही की जा सकने वाली त्रुटियों की संख्या को मापता है। इसके विपरीत, सतह कोड में एसिम्प्टोटिक रूप से शून्य एन्कोडिंग दर और केवल वर्ग-रूट दूरी होती है। सतह कोड को उच्च-दर, उच्च-दूरी LDPC कोड से बदलने से बड़े व्यावहारिक निहितार्थ हो सकते हैं। पहला, दोष-सहिष्णुता ओवरहेड (भौतिक और तार्किक क्वबिट्स के बीच का अनुपात) काफी कम हो सकता है। दूसरा, उच्च-दूरी कोड तार्किक त्रुटि दर में बहुत तेज कमी दिखाते हैं: जैसे ही भौतिक त्रुटि संभाव्यता थ्रेशोल्ड मान को पार करती है, कोड द्वारा प्राप्त त्रुटि दमन की मात्रा भौतिक त्रुटि दर में थोड़ी कमी के साथ भी कई गुना बढ़ सकती है। यह सुविधा उच्च-दूरी LDPC कोड को निकट-अवधि के प्रदर्शन के लिए आकर्षक बनाती है जो संभवतः निकट-थ्रेशोल्ड शासन में संचालित होंगे। हालाँकि, यह पहले माना जाता था कि यथार्थवादी शोर मॉडल के लिए सतह कोड को पार करने के लिए जिसमें मेमोरी, गेट और स्टेट तैयारी और माप त्रुटियां शामिल हैं, 10,000 से अधिक भौतिक क्वबिट्स वाले बहुत बड़े LDPC कोड की आवश्यकता हो सकती है . 30 31 32 33 34 35 36 37 38 39 40 31 यहां हम सैकड़ों भौतिक क्वबिट्स वाले उच्च-दर LDPC कोड के कई ठोस उदाहरण प्रस्तुत करते हैं, जो एक कम-गहराई सिंड्रोम माप सर्किट, एक कुशल डिकोडिंग एल्गोरिथम और व्यक्तिगत तार्किक क्वबिट्स को संबोधित करने के लिए एक दोष-सहिष्णु प्रोटोकॉल से लैस हैं। ये कोड 0.7% के करीब त्रुटि थ्रेशोल्ड दिखाते हैं, निकट-थ्रेशोल्ड शासन में उत्कृष्ट प्रदर्शन दिखाते हैं, और सतह कोड की तुलना में एन्कोडिंग ओवरहेड में 10 गुना कमी प्रदान करते हैं। हमारे त्रुटि सुधार प्रोटोकॉल को लागू करने के लिए हार्डवेयर आवश्यकताएं अपेक्षाकृत हल्की हैं, क्योंकि प्रत्येक भौतिक क्वबिट केवल छह अन्य क्वबिट्स के साथ दो-क्विबिट गेट द्वारा युग्मित होता है। यद्यपि क्वबिट कनेक्टिविटी ग्राफ को 2D ग्रिड में स्थानीय रूप से एम्बेड नहीं किया जा सकता है, इसे दो प्लेनर डिग्री-3 उप-ग्राफ में विघटित किया जा सकता है। जैसा कि हम नीचे तर्क देते हैं, ऐसी क्वबिट कनेक्टिविटी सुपरकंडक्टिंग क्वबिट्स पर आधारित आर्किटेक्चर के लिए उपयुक्त है। हमारे कोड मैकेय एट अल द्वारा प्रस्तावित बाईसाइकिल कोड के सामान्यीकरण हैं और संदर्भों में अधिक गहराई से अध्ययन किया गया है। , , । हमने अपने कोड को बाइनरी बाईसाइकिल (बीबी) नाम दिया है क्योंकि वे बाइनरी बहुपद पर आधारित हैं, जैसा कि में विस्तार से बताया गया है। ये Calderbank–Shor–Steane (CSS) प्रकार के स्टेबलाइजर कोड हैं , जिन्हें पाउली और से बने छह-क्विबिट जांच (स्टेबलाइजर) ऑपरेटरों के संग्रह द्वारा वर्णित किया जा सकता है। उच्च स्तर पर, एक बीबी कोड दो-आयामी टोरिक कोड के समान है । विशेष रूप से, एक बीबी कोड के भौतिक क्वबिट्स को आवधिक सीमा शर्तों के साथ दो-आयामी ग्रिड पर रखा जा सकता है ताकि सभी जांच ऑपरेटर ग्रिड के क्षैतिज और ऊर्ध्वाधर शिफ्ट को लागू करके एक ही जोड़ी और जांचों से प्राप्त हों। हालाँकि, प्लेकेट और वर्टेक्स स्टेबलाइज़र के विपरीत जो टोरिक कोड का वर्णन करते हैं, बीबी कोड के जांच ऑपरेटर ज्यामितीय रूप से स्थानीय नहीं होते हैं। इसके अलावा, प्रत्येक जांच छह क्वबिट्स पर कार्य करती है न कि चार क्वबिट्स पर। हम कोड को एक टै . एक जांच वर्टेक्स और एक डेटा वर्टेक्स एक किनारे से जुड़े होते हैं यदि वें जांच ऑपरेटर वें डेटा क्वबिट पर गैर-तुच्छ रूप से कार्य करता है (पाउली या लागू करके)। उदाहरण टै . किसी भी बीबी कोड के टै . एक मोटाई-2 क्वबिट कनेक्टिविटी सुपरकंडक्टिंग क्वबिट्स के लिए उपयुक्त है जो माइक्रोवेव रेज़ोनेटर द्वारा युग्मित होते हैं। उदाहरण के लिए, कपलर की दो प्लेनर परतें और उनकी नियंत्रण रेखाएं क्वबिट्स को होस्ट करने वाली चिप के शीर्ष और निचले हिस्से से जुड़ी हो सकती हैं, और दोनों पक्षों को जोड़ा जा सकता है। 41 35 36 42 तरीकों 43 44 X Z 7 X Z i j i j X Z , तुलना के लिए सतह कोड का टै . **बी**, पैरामीटर [] के बीबी कोड का टै . किसी भी किनारे का टै . डेटा क्वबिट्स को नीले और नारंगी वृत्तों द्वारा दर्शाया जाता है। प्रत्येक वर्टेक्स में छह संबंधित किनारे होते हैं जिनमें चार छोटी-सीमा किनारे (उत्तर, दक्षिण, पूर्व और पश्चिम की ओर इशारा करते हुए) और दो लंबी-सीमा किनारे शामिल होते हैं। अव्यवस्था से बचने के लिए हम केवल कुछ लंबी-सीमा किनारों को दिखाते हैं। बिंदीदार और ठोस किनारे टै . **सी**, रेफ के अनुसार और को मापने के लिए टै . सतह कोड से जुड़ने में सक्षम, जिससे क्वांटम टेलीपोर्टेशन और कुछ तार्किक इकाइयों के माध्यम से सभी तार्किक क्वबिट्स के लिए लोड-स्टोर संचालन की अनुमति मिलती है। इस विस्तारित टै . किनारों ( ) के माध्यम से मोटाई-2 आर्किटेक्चर में भी कार्यान्वयन है। ए तरीके पैरामीटर [[ , , ]] के साथ एक बीबी कोड तार्किक क्वबिट्स को डेटा क्वबिट्स में एन्कोड करता है जो एक कोड दूरी प्रदान करता है, जिसका अर्थ है कि कोई भी तार्किक त्रुटि कम से कम डेटा क्वबिट्स तक फैलती है। हम डेटा क्वबिट्स को /2 प्रत्येक के रजिस्टर ( ) और ( ) में विभाजित करते हैं। कोई भी जांच ( ) से तीन क्वबिट्स और ( ) से तीन क्वबिट्स पर कार्य करती है। कोड त्रुटि सिंड्रोम को मापने के लिए सहायक जांच क्वबिट्स पर निर्भर करता है। हम जांच क्वबिट्स को /2 के आकार के रजिस्टर ( ) और ( ) में विभाजित करते हैं जो क्रमशः और प्रकारों के सिंड्रोम एकत्र करते हैं। कुल मिलाकर, एन्कोडिंग 2 भौतिक क्वबिट्स पर निर्भर करती है। इसलिए शुद्ध एन्कोडिंग दर = /(2 ) है। उदाहरण के लिए, मानक सतह कोड आर्किटेक्चर = 1 तार्किक क्वबिट को = 2 डेटा क्वबिट्स में दूरी- कोड के लिए एन्कोड करता है और सिंड्रोम माप के लिए − 1 जांच क्वबिट्स का उपयोग करता है। शुद्ध एन्कोडिंग दर ≈ 1/(2 2) है, जो जल्दी से अव्यावहारिक हो जाती है क्योंकि एक को बड़ी कोड दूरी चुनने के लिए मजबूर किया जाता है, उदाहरण के लिए, क्योंकि भौतिक त्रुटियां थ्रेशोल्ड मान के करीब होती हैं। इसके विपरीत, बीबी कोड में एन्कोडिंग दर ≫ 1/ 2 होती है, कोड उदाहरणों के लिए तालिका देखें। हमारी जानकारी के अनुसार, तालिका में दिखाए गए सभी कोड नए हैं। दूरी-12 कोड [] निकट-अवधि के प्रदर्शनों के लिए सबसे अधिक आशाजनक हो सकता है, क्योंकि यह बड़े दूरी और उच्च शुद्ध एन्कोडिंग दर = 1/24 को जोड़ता है। तुलना के लिए, दूरी-11 सतह कोड में शुद्ध एन्कोडिंग दर = 1/241 होती है। नीचे, हम दिखाते हैं कि दूरी-12 बीबी कोड प्रयोगात्मक रूप से प्रासंगिक त्रुटि दरों की सीमा के लिए दूरी-11 सतह कोड से बेहतर प्रदर्शन करता है। n k d k n d d n n q L q R q L q R n n n q X q Z X Z n r k n k n d d n r d r d 1 1 r r त्रुटियों के संचय को रोकने के लिए त्रुटि सिंड्रोम को पर्याप्त बार मापना संभव होना चाहिए। यह एक सिंड्रोम माप सर्किट द्वारा पूरा किया जाता है जो प्रत्येक जांच ऑपरेटर के समर्थन में डेटा क्वबिट्स को संबंधित सहायक क्वबिट के साथ CNOT गेट्स के अनुक्रम द्वारा युग्मित करता है। फिर जांच क्वबिट्स को मापा जाता है जो त्रुटि सिंड्रोम के मान को प्रकट करता है। सिंड्रोम माप सर्किट को लागू करने में लगने वाला समय इसकी गहराई के समानुपाती होता है: गैर-ओवरलैपिंग CNOTs की गेट परतों की संख्या। चूंकि सिंड्रोम माप सर्किट निष्पादित होने पर नई त्रुटियां लगातार होती रहती हैं, इसलिए इसकी गहराई को कम किया जाना चाहिए। बीबी कोड के लिए सिंड्रोम माप का पूरा चक्र चित्र परिलक्षित होता है। सिंड्रोम चक्र के लिए कोड लंबाई की परवाह किए बिना केवल सात CNOT परतों की आवश्यकता होती है। जांच क्वबिट्स को सिंड्रोम चक्र की शुरुआत और अंत में आरम्भ और मापा जाता है (अधिक विवरण के लिए देखें)। सर्किट अंतर्निहित कोड की चक्रीय शिफ्ट समरूपता का सम्मान करता है। 2 तरीके सात CNOT परतों पर निर्भर सिंड्रोम मापों का पूर्ण चक्र। हम सर्किट का एक स्थानीय दृश्य प्रदान करते हैं जिसमें केवल ( ) और ( ) रजिस्टर से एक डेटा क्वबिट शामिल है। सर्किट टै . प्रत्येक डेटा क्वबिट CNOTs के साथ तीन *X-*जांच और तीन *Z-*जांच क्वबिट्स के साथ युग्मित होता है: अधिक विवरण के लिए देखें। q L q R तरीके पूर्ण त्रुटि सुधार प्रोटोकॉल c ≫ 1 सिंड्रोम माप चक्र करता है और फिर एक डिकोडर को कॉल करता है: एक शास्त्रीय एल्गोरिथम जो इनपुट के रूप में मापा सिंड्रोम लेता है और डेटा क्वबिट्स पर अंतिम त्रुटि का अनुमान आउटपुट करता है। त्रुटि सुधार सफल होता है यदि अनुमानित और वास्तविक त्रुटि जांच ऑपरेटरों के उत्पाद के मॉड्यूलो से मेल खाती है। इस मामले में, दो त्रुटियों का किसी भी एन्कोडेड (तार्किक) स्थिति पर समान प्रभाव पड़ता है। इस प्रकार, अनुमानित त्रुटि के व्युत्क्रम को लागू करने से डेटा क्वबिट्स प्रारंभिक तार्किक स्थिति में वापस आ जाते हैं। अन्यथा, यदि अनुमानित और वास्तविक त्रुटि एक गैर-तुच्छ तार्किक ऑपरेटर द्वारा भिन्न होती है, तो त्रुटि सुधार विफल हो जाता है जिससे तार्किक त्रुटि होती है। हमारे संख्यात्मक प्रयोग पैंटेलिव और कलाचेव द्वारा प्रस्तावित ऑर्डर किए गए आंकड़ों के साथ विश्वास प्रसार (बीपी-ओएसडी) पर आधारित हैं । मूल कार्य केवल मेमोरी त्रुटियों वाले खिलौना शोर मॉडल के संदर्भ में बीपी-ओएसडी का वर्णन करता है। यहां हम सर्किट-आधारित शोर मॉडल में बीपी-ओएसडी का विस्तार करने का तरीका दिखाते हैं, विवरण के लिए देखें। हमारा दृष्टिकोण संदर्भों का बारीकी से अनुसरण करता है। , , , . N 36 36 पूरक सूचना 45 46 47 48 सिंड्रोम माप सर्किट का एक शोर युक्त संस्करण कई प्रकार के दोषपूर्ण संचालन शामिल कर सकता है जैसे कि निष्क्रिय डेटा या जांच क्वबिट्स पर मेमोरी त्रुटियां, दोषपूर्ण CNOT गेट्स, क्वबिट आरंभीकरण और माप। हम सर्किट-आधारित शोर मॉडल पर विचार करते हैं जिसमें प्रत्येक ऑपरेशन संभाव्यता के साथ स्वतंत्र रूप से विफल रहता है। एक तार्किक त्रुटि L की संभाव्यता , सिंड्रोम माप सर्किट के विवरण और डिकोडिंग एल्गोरिथम पर निर्भर करती है। मान लीजिए L( c) c सिंड्रोम चक्रों के प्रदर्शन के बाद तार्किक त्रुटि संभाव्यता है। तार्किक त्रुटि दर को के रूप में परिभाषित करें। अनौपचारिक रूप से, L को प्रति सिंड्रोम चक्र तार्किक त्रुटि संभाव्यता के रूप में देखा जा सकता है। सामान्य अभ्यास के बाद, हम दूरी- कोड के लिए c = चुनते हैं। चित्र तालिका से कोड द्वारा प्राप्त तार्किक त्रुटि दर दिखाता है। तार्किक त्रुटि दर का संख्यात्मक रूप से ≥ 10−3 के लिए अभिकलन किया गया था और फिटिंग फ़ॉर्मूला ( ) का उपयोग करके कम त्रुटि दरों तक बढ़ाया गया था। छद्म-थ्रेशोल्ड 0 को ब्रेक-ईवन समीकरण L( ) = के एक समाधान के रूप में परिभाषित किया गया है। यहां अनएन्कोडेड क्वबिट्स में से कम से कम एक त्रुटि से ग्रस्त होने की संभाव्यता का अनुमान है। बीबी कोड लगभग 0.7% का छद्म-थ्रेशोल्ड प्रदान करते हैं, 10 p p p P N N p d N d 3 1 p तरीके p p p kp kp k