Öğretici: Kuantum kimyası sorununun kaynaklarını tahmin edin
Bu öğreticide , Azure Quantum Kaynak Tahmin Aracı'nı kullanarak bir Hamiltonian'ın enerjisini 1 mHa'lık kimyasal doğrulukla hesaplamak için gereken fiziksel kaynakları tahmin etme adımları gösterilmektedir.
Not
Microsoft Quantum Geliştirme Seti (Klasik QDK) artık 30 Haziran 2024'e kadar desteklenmeyecektir. Mevcut bir QDK geliştiricisiyseniz kuantum çözümleri geliştirmeye devam etmek için yeni Azure Quantum Development Kit'e (Modern QDK) geçmenizi öneririz. Daha fazla bilgi için bkz . Q# kodunuzu Modern QDK'ye geçirme.
Bu öğreticide şunları yapacaksınız:
- GitHub'dan örnek bir depo kopyalayın.
- Kimyasal modelleme ve simülasyon uygulamaları için bağımsız değişken parametreleri olarak FCIDUMP dosyalarını kullanın.
- Çift faktörlü kimya örneği olan büyük ölçekli bir sorun için kaynak tahminini çalıştırın.
Önkoşullar
Python ve Pip'in yüklü olduğu bir Python ortamı.
Azure Quantum Geliştirme Seti ve Python uzantıları yüklü Visual Studio Code en son sürümü.
En son Azure Quantum
qsharp
paketi venumpy
scipy
paketleri.python -m pip install --upgrade qsharp numpy scipy
İpucu
Yerel Kaynak Tahmin Aracı'nı çalıştırmak için bir Azure hesabınız olması gerekmez.
Sorunu açıklama
Bu öğreticide, bir kullanıcının Hamiltonian tarafından 1 mHa'lık kimyasal doğruluk için sağladığı enerjiyi hesaplamak için Phys. Rev. Research 3, 033055 (2021) bölümünde açıklanan kubitizasyon algoritmasının fiziksel kaynak tahminlerini değerlendirirsiniz.
Hamiltonian'ın enerjisini hesaplayan kuantum algoritması çift faktörlü kubitleştirmeyi temel alır. Hamiltonian, BIR HTTPS URI'si aracılığıyla kullanılabilen FCIDUMP (tam yapılandırma etkileşimi) dosyalarındaki bir ve iki elektron integralleri bakımından açıklanmıştır.
Kubitizasyon yaklaşımı kuantum aşaması tahminini temel alır, ancak Hamilton matrisi $H$ değerinden standart $U = \exp{(-i H/\alfa)}$ oluşturmak yerine, genellikle daha az kaynakla uygulanabilen $U = \exp{(-i \sin^{-1} (H/\alfa))}$ alır. Çift faktörizasyon kullanılarak, $H$, rastgele bir orbital ve sıkıştırma seçimi ile kompakt bir şekilde temsil edilir.
örneği Visual Studio Code yükleme
Bu öğreticinin kodu Q# örnek deposunda, estimation/df-chemistry altında bulunabilir. Örneği çalıştırmak için yerel makinenizdeki depoyu kopyalamanızı öneririz.
Depoyu kopyalamak için terminalden aşağıdaki komutu çalıştırın:
git clone https://github.com/microsoft/qsharp.git
FCIDUMP dosyasını seçme ve geçirme
Bu örnekte Hamiltonian, FCIDUMP biçimindeki bir ve iki elektronlu integraller bakımından açıklanmıştır. Aşağıdaki tablodan FCIDUMP dosyalarından birini seçebilir veya genel olarak erişilebilen https URI'sini kullanarak makinenizde veya çevrimiçi ortamda bulunan kendi FCIDUMP dosyanızı seçebilirsiniz.
URI | Örnek adı | Description |
---|---|---|
https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o | XVIII-cas4-fb-64e56o | 64 elektron, 56 orbital aktif uzay, ruthenyum katalizörlü karbon fiksasyon döngüsündeki kararlı ara maddelerden biri. |
https://aka.ms/fcidump/nitrogenase-54e-54o | nitrogenase_54orbital | 54 elektron, azotazın aktif çekirdeğinin 54 yörüngesel aktif alanı. |
https://aka.ms/fcidump/fe2s2-10e-40o | fe2s2-10e-40o | 10 elektron, [2Fe, 2S] kümesinin 40 yörüngesel aktif alanı. |
https://aka.ms/fcidump/polyyne-24e-24o | poliyne-24e-24o | 24 elektron, poliyne molekülünün 24 yörüngesel aktif alanı. |
https://aka.ms/fcidump/n2-10e-8o | n2-10e-8o | 10 elektron, 8 orbital aktif uzayı 3 Angstrom mesafede azotla ilişkiyi bozmuş. |
FCIDUMP dosyasını geçirmek için chemistry.py dosyasını çalıştırmanız ve veya kullanarak -f
--fcidumpfile
FCIDUMP dosya adını veya URI'sini bağımsız değişken olarak geçirmeniz gerekir.
usage: chemistry.py [-h] [-f FCIDUMPFILE]
options:
-h, --help
-f FCIDUMPFILE, --fcidumpfile FCIDUMPFILE
Kimya örneğini çalıştırma
Visual Studio Code'da, Q# örnek deposunu kopyaladığınız klasörü açın.
Terminal -> Yeni Terminal adlı yeni bir terminal açın ve kuantum kimyası örneğinin bulunduğu dizine gidin . Örneğin, yerel makinenizde Q# örnek deposunu kopyalarsanız yolu olur
qsharp/samples/estimation/df-chemistry
.chemistry.py dosyasını çalıştırın ve FCIDUMP dosyasını geçirin. Örneğin, aşağıdaki komut n2-10e-8o FCIDUMP dosyasını çalışma klasörüne indirir ve bunun için kaynak tahminini çalıştırır.
python chemistry.py -f https://aka.ms/fcidump/n2-10e-8o
Bundan sonra, indirilen dosyanın yolunu bunun yerine betike geçirebilirsiniz.
python chemistry.py -f n2-10e-8o
Kaynak tahmininin sonucu terminalde görüntülenir. Örneğin, aşağıdaki çıkış n2-10e-8o FCIDUMP dosyasının kaynak tahminini gösterir.
Algorithm runtime: 19 mins Number of physical qubits required: 207.60k For more detailed resource counts, see file resource_estimate.json
Not
chemistry.py dosyasını çalıştırdıktan sonra çalışma klasöründe bir resource_estimation.json dosyası oluşturulur. resource_estimation.json dosyası , Kaynak Tahmin Aracı'nın ayrıntılı çıkışını içerir. Bunlar, iş parametreleri, fiziksel sayılar, T fabrika özellikleri, mantıksal sayımlar ve mantıksal kubit özellikleridir.
Parametreleri değiştirme target
chemistry.py dosyasını açın.
target Kaynak tahmini parametreleri, chemistry.py dosyasının çağrısında
qsharp.estimate
bulunabilir. Aşağıdaki kod parçacığı, bu öğreticide kullanılan parametreleri gösterir.# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.01, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Parametreleri değiştirmek target istiyorsanız, önceki kod parçacığını değiştirerek bunu yapabilirsiniz. Örneğin, aşağıdaki kod parçacığı hata bütçesinin 0,333 olarak nasıl değiştireceğini gösterir. Daha fazla bilgi için bkz. Resource Estimator parametrelerini özelleştirmetarget.
# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.333, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Kuantum bilişiminin kimya uygulamaları neden önemlidir?
Bu öğretici, kuantum çözümlerinin kaynak tahminini elektronik yapı sorunlarıyla tümleştirmek için ilk adımı temsil eder. Ölçeklendirilmiş kuantum bilgisayarların en önemli uygulamalarından biri kuantum kimyası sorunlarını çözmektir. Karmaşık kuantum mekanik sistemlerinin simülasyonu karbon yakalama, gıda güvensizliği ve daha iyi yakıtlar ve malzemeler tasarlama gibi alanlarda atılımları ortaya çıkarma potansiyeline sahiptir.
Örneğin, bu örnekte sağlanan FCIDUMP dosyalarından biri olan nitrogenase_54orbital azot enzimini açıklar. Bu enzimin kuantum düzeyinde nasıl çalıştığını doğru bir şekilde simüle edebilirseniz, büyük ölçekte nasıl üretildiğini anlamamıza yardımcı olabilir. Gezegeni besleyecek kadar gübre üretmek için kullanılan yüksek enerji yoğunluklu süreci değiştirebilirsiniz. Bu, küresel karbon ayak izini azaltma potansiyeline sahiptir ve ayrıca artan bir popülasyondaki gıda güvensizliği ile ilgili endişeleri gidermeye yardımcı olur.
Sonraki adımlar
Bilginizi derinleştirmeyi istiyorsanız deneyebileceğiniz bazı denemeler şunlardır:
- Bazı özel FCIDUMP dosyalarını tahmin edin.
- Özel kubit parametreleri sağlayarak kuantum bilgisayardaki varsayımları target değiştirin.
- Azure Quantum örnek galerisindeki diğer kaynak tahmini örnek not defterlerine göz atın.
Diğer kuantum algoritmalarını ve tekniklerini keşfetmeye devam edin:
- Grover arama algoritmasını uygulama öğreticisi, graf renklendirme sorununu çözmek için Grover'ın arama algoritmasını kullanan bir Q# programı yazmayı gösterir.
- Q# dilinde kubit düzeyinde programlar yazma ve simülasyonu öğreticisi, belirli kubitleri doğrudan ele alan bir Q# programı yazmayı inceler.
- Q# ile kuantum dolanıklığını keşfetme öğreticisi, Q# ile kubitler üzerinde çalışma ve bunların durumunu değiştirme işlemlerinin nasıl yapıldığını gösterir ve süper konum ile dolanıklığın etkilerini gösterir.
- Quantum Kataları, kuantum bilişiminin ve Q# programlamanın öğelerini aynı anda öğretmeyi amaçlayan Jupyter Notebook tabanlı, kendi hızındaki öğreticiler ve programlama alıştırmalarıdır.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin