Lewati ke konten utama

Optimizer Klasik

Apa itu optimizer?​

Victoria Lipinska menjelaskan tentang optimizer klasik, dan bagaimana fungsinya sebagai bagian dari VQE.

Kamu akan mendengar tentang beberapa contoh optimizer dan bagaimana kinerjanya dalam kondisi ada dan tidak ada noise.

Referensi​

Artikel-artikel berikut direferensikan dalam video di atas.

Membuat kode optimizer klasik​

Pada pelajaran sebelumnya, kamu belajar membuat Hamiltonian yang cocok digunakan di komputer kuantum dan cara membuat sirkuit variasional. Kamu juga belajar bahwa sirkuit variasional (atau ansatz) berisi parameter yang perlu divariasikan, dan pilihan parameter optimal adalah yang menghasilkan fungsi biaya atau energi serendah mungkin. Dengan demikian, masalah kita menjadi pencarian ruang parameter untuk menemukan set yang optimal. Sebagian besar pekerjaan dalam optimizer klasik sudah dilakukan untuk kita, karena optimizer yang sangat baik tersedia dari beberapa sumber.

Dalam pelajaran ini kamu akan belajar:

  • Bagaimana optimizer klasik cocok dalam perhitungan VQE
  • Optimizer klasik apa yang tersedia dari SciPy
  • Optimizer apa yang belum tersedia melalui SciPy dan bagaimana mengatasinya menggunakan qiskit.algorithms
  • Opsi apa yang tersedia untuk optimizer ini dan signifikansinya untuk komputasi kuantum

SciPy adalah pustaka Python gratis dan open-source dengan paket yang relevan untuk banyak bidang komputasi ilmiah, termasuk optimasi. Secara khusus, SciPy memiliki paket optimasi yang mencakup minimize:

from scipy.optimize import minimize This minimize function has several arguments, but the most relevant arguments for quantum chemistry are:

  • The cost function (cost_func). This is related to the Hamiltonian, but also includes some complexities, such as determining the expectation value by using Estimator, and in the case of excited state calculations, might include orthogonality conditions.
  • An initial state (x0) for the system, often the Hartree Fock state
  • Other arguments, including arguments of the cost function itself
  • The method set to the classical optimizer you select
  • Options for the classical optimizer (not to be confused with Session options discussed in the next section)

Some example code is shown below. We restrict our discussion here to the last two arguments.

    cost_func,
x0,
args=(ansatz, hamiltonian, estimator),
method="cobyla",
options={"maxiter": 200})

SciPy memiliki dokumentasi tentang semua metode minimize yang tersedia. Berikut beberapa contoh yang patut diperhatikan, semuanya merupakan metode untuk meminimalkan fungsi skalar dari satu atau lebih variabel:

  • cobyla: Algoritma Optimization BY Linear Approximation (COBYLA).
  • slsqp: Sequential Least Squares Programming (SLSQP).
  • nelder-mead Algoritma Nelder-Mead.

Sebagian besar algoritma optimasi klasik yang tersedia adalah minimizer lokal, dalam artian mereka menggunakan berbagai metode untuk menemukan minimum lokal, tetapi tidak dijamin menemukan minimum global. Beberapa optimizer klasik secara eksplisit mengestimasi gradien dan menggunakannya untuk menemukan minimum lokal. Yang lainnya mungkin menggunakan aproksimasi linear atau kuadratik berturut-turut dari fungsi objektif untuk menemukan minimum.

Algoritma-algoritma ini memiliki beberapa opsi yang sama, tetapi dengan perbedaan halus. Misalnya, semua memiliki opsi untuk menentukan jumlah iterasi maksimum menggunakan notasi 'maxiter': 200 dari atas. Semuanya memiliki opsi yang menentukan kriteria penghentian berbeda berdasarkan nilai fungsi atau variabel, meskipun kriteria ini sedikit berbeda untuk algoritma yang berbeda. COBYLA, misalnya, memungkinkan kamu menentukan toleransi (misalnya, 'tol': 0.0001) yang merupakan batas bawah "trust region". Sebagai perbandingan, SLSQP memungkinkan kamu menentukan tujuan dalam presisi fungsi yang digunakan dalam kriteria penghentian ('ftol'). Nelder-Mead memungkinkan kamu menentukan toleransi dalam perbedaan antara tebakan parameter (xx) berturut-turut (xatol) atau toleransi dalam perbedaan antara nilai berturut-turut yang diperoleh untuk fungsi biaya f(x)f(x) (fatol) (atau keduanya). Untuk daftar lengkap algoritma dan opsi yang tersedia, kunjungi dokumentasi minimize SciPy.

Source: IBM Quantum docs — updated 15 Jan 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of approx. 27 Mar 2026