শুরুর নির্দেশনা#
স্থাপন (ইনস্টলেশন)#
Qiskit Nature depends on Qiskit, which has its own Qiskit Getting Started detailing the installation options and its supported environments/platforms. You should refer to that first. Then the information here can be followed which focuses on the additional installation specific to Qiskit Nature.
Qiskit Nature এর কিছু ফাংশন রয়েছে যা ঐচ্ছিকভাবে তৈরি করা হয়েছে যেখানে নির্ভরযোগ্য কোড এবং/বা সমর্থন প্রোগ্রাম (গুলি) ডিফল্টরূপে ইনস্টল করা হয় না (বা করা যায় না)। এর মধ্যে রয়েছে, উদাহরণস্বরূপ, আণবিক সমস্যার জন্য ক্লাসিক্যাল library/প্রোগ্রাম। আরও তথ্যের জন্য ঐচ্ছিক ইনস্টল দেখুন।
The simplest way to get started is to first follow the getting started 'Start locally' guide for Qiskit
In your virtual environment, where you installed Qiskit, install Qiskit Nature as follows:
pip install qiskit-nature
নোট
As Qiskit Nature depends on Qiskit, you can though simply install it into your environment, as above, and pip will automatically install a compatible version of Qiskit if one is not already installed.
উৎস থেকে Qiskit Nature ইনস্টল করলে আপনি Qiskit এর উন্নয়নের অধীনে অতি সম্প্রতি আপডেট হওয়া সংস্করণটি ব্যবহার করতে পারবেন Python Package Index (PyPI) রিপোজিটরি থেকে ইনস্টল করার পরিবর্তে। এটি আপনাকে Qiskit Nature কোডের সর্বশেষ সংস্করণটি আরও নিখুঁত ভাবে পরিদর্শন করার এবং প্রসারিত করার দক্ষতা দেবে।.
যেহেতু Qiskit Nature কিস্কিটের উপর নির্ভর করে, এবং এর সর্বশেষ পরিবর্তনগুলির জন্য কিস্কিটের নতুন বা পরিবর্তিত বৈশিষ্ট্যগুলির প্রয়োজন হতে পারে, তাই আপনাকে প্রথমে কিস্কিটের "Install from source" নির্দেশাবলী Qiskit Getting Started এ অনুসরণ করতে হবে
Installing Qiskit Nature from Source
আপনি যেই কিস্কিট ইনস্টল করেছেন সেই একই কর্মপরিবেশ ব্যবহার করে আপনি Qiskit Nature ইনস্টল করতে প্রস্তুত।
Qiskit Nature রিপোজিটরি প্রতিলিপি করুন।
git clone https://github.com/qiskit-community/qiskit-nature.git
রিপোজিটোরিটি ক্লোন করলে
qiskit-nature
নামক একটি স্থানীয় ফোল্ডার তৈরী হবে।cd qiskit-nature
টেস্ট রান করানোর জন্য বা লিনটিং চেক করার জন্য, ডেভেলপারের রিকোয়ারমেন্টগুলি ইনস্টল করুন।
pip install -r requirements-dev.txt
qiskit-nature
ইনস্টল করুন।pip install .
আপনি যদি এটিকে সম্পাদনযোগ্য মোডে ইনস্টল করতে চান, মানে এই প্রকল্পের কোড পরিবর্তনের জন্য প্রয়োগ করার জন্য পুনরায় ইনস্টল করা প্রয়োজন না, আপনি এটি করতে পারেন:
pip install -e .
ঐচ্ছিক ইনস্টল#
Qiskit Nature ড্রাইভারের মাধ্যমে বিভিন্ন ক্লাসিক্যাল লাইব্রেরি এবং প্রোগ্রামের ব্যবহার সমর্থন করে, যা আণবিক তথ্য গণনা করে, যেমন এক এবং দুটি বডি ইন্টিগ্রাল। এটি অ্যালগরিদমের সমস্যা ইনপুট হিসাবে প্রয়োজন যা অণুর বৈশিষ্ট্যগুলি যেমন গ্রাউন্ড স্টেট এনার্জি হিসাব করে, তাই কমপক্ষে একটি লাইব্রেরি/প্রোগ্রাম ইনস্টল করা উচিত। আপনি যে ড্রাইভারটি ব্যবহার করতে পারেন তা আপনি বেছে নিতে পারেন, আপনি আপনার প্ল্যাটফর্ম ইত্যাদি দ্বারা সমর্থিত যতগুলি বা যতটা ইচ্ছা ইনস্টল করতে পারেন।
See Driver installation which lists each driver and how to install the dependent library/program that it requires.
The drivers only provide a very limited set of capabilities of the underlying classical codes. While this is useful for getting started and testing purposes, a better experience can be had in the reversed order of responsibility. That is, in a setup where the classical code runs the Qiskit Nature components. Such an integration currently exists for the following packages:
PySCF via qiskit-nature-pyscf
If you are interested in using Psi4, we are actively looking for help to get started on a similar integration in qiskit-nature-psi4
Additionally, you may find the following optional dependencies useful:
sparse, a library for sparse multi-dimensional arrays. When installed, Qiskit Nature can leverage this to reduce the memory requirements of your calculations.
opt_einsum, a tensor contraction order optimizer for
np.einsum
.
আরো এগোতে প্রস্তুত?...#
Now that Qiskit Nature is installed, let's try a chemistry application experiment
using the VQE
(Variational
Quantum Eigensolver) algorithm to compute the ground-state (minimum) energy of a
molecule.
from qiskit_nature.units import DistanceUnit
from qiskit_nature.second_q.drivers import PySCFDriver
# Use PySCF, a classical computational chemistry software
# package, to compute the one-body and two-body integrals in
# electronic-orbital basis, necessary to form the Fermionic operator
driver = PySCFDriver(
atom='H .0 .0 .0; H .0 .0 0.735',
unit=DistanceUnit.ANGSTROM,
basis='sto3g',
)
problem = driver.run()
# setup the qubit mapper
from qiskit_nature.second_q.mappers import ParityMapper
mapper = ParityMapper(num_particles=problem.num_particles)
# setup the classical optimizer for the VQE
from qiskit_algorithms.optimizers import L_BFGS_B
optimizer = L_BFGS_B()
# setup the estimator primitive for the VQE
from qiskit.primitives import Estimator
estimator = Estimator()
# setup the ansatz for VQE
from qiskit_nature.second_q.circuit.library import HartreeFock, UCCSD
ansatz = UCCSD(
problem.num_spatial_orbitals,
problem.num_particles,
mapper,
initial_state=HartreeFock(
problem.num_spatial_orbitals,
problem.num_particles,
mapper,
),
)
# set up our actual VQE instance
from qiskit_algorithms import VQE
vqe = VQE(estimator, ansatz, optimizer)
# ensure that the optimizer starts in the all-zero state which corresponds to
# the Hartree-Fock starting point
vqe.initial_point = [0] * ansatz.num_parameters
# prepare the ground-state solver and run it
from qiskit_nature.second_q.algorithms import GroundStateEigensolver
algorithm = GroundStateEigensolver(mapper, vqe)
electronic_structure_result = algorithm.solve(problem)
electronic_structure_result.formatting_precision = 6
print(electronic_structure_result)
=== GROUND STATE ENERGY ===
* Electronic ground state energy (Hartree): -1.857275
- computed part: -1.857275
~ Nuclear repulsion energy (Hartree): 0.719969
> Total ground state energy (Hartree): -1.137306
=== MEASURED OBSERVABLES ===
0: # Particles: 2.000 S: 0.000 S^2: 0.000 M: 0.000
=== DIPOLE MOMENTS ===
~ Nuclear dipole moment (a.u.): [0.0 0.0 1.388949]
0:
* Electronic dipole moment (a.u.): [0.0 0.0 1.388949]
- computed part: [0.0 0.0 1.388949]
> Dipole moment (a.u.): [0.0 0.0 0.0] Total: 0.0
(debye): [0.0 0.0 0.0] Total: 0.0
The program above computes the ground state energy of molecular Hydrogen,
H<sub>2</sub>, where the two atoms are configured to be at a distance of 0.735
angstroms. The molecular input specification is processed by the PySCF driver.
This driver produces an
ElectronicStructureProblem
which
gathers all the problem information required by Qiskit Nature.
The second-quantized operators contained in that problem can be mapped to qubit
operators with a QubitMapper
. Here, we
chose the ParityMapper
which
automatically removes 2 qubits due to inherit symmetries when the num_particles
are provided to it; a reduction in complexity that is particularly advantageous
for NISQ computers.
For actually finding the ground state solution, the Variational Quantum
Eigensolver (VQE
) algorithm is
used. Its main three components are the estimator primitive
(Estimator
), wavefunction ansatz
(UCCSD
), and optimizer
(L_BFGS_B
).
The UCCSD
component is the only
one provided directly by Qiskit Nature and it is usually paired with the
HartreeFock
initial state and
an all-zero initial point for the optimizer.
The entire problem is then solved using a
GroundStateEigensolver
which wraps
both, the ParityMapper
and
VQE
. Since an
ElectronicStructureProblem
is provided
to it (which was the output of the
PySCFDriver
) it also returns an
ElectronicStructureResult
.
Dive into the tutorials
Find out about Qiskit Nature and how to use it for natural science problems.
Qiskit Nature tutorials