--:--

Kompleksitas Algoritma

Crypto Trend Spotter menggunakan beberapa teknik numerik dan regresi untuk menghitung turunan pertama, turunan kedua, dan convexity.
Halaman ini membahas kompleksitas waktu dan memori dari seluruh metode tersebut.

Analisis ini penting untuk memastikan sistem:

  • cepat diproses,
  • ringan di front-end,
  • dapat menangani data ribuan titik,
  • dan bekerja real-time.

1. Kompleksitas Turunan Pertama

Turunan pertama dihitung menggunakan backward difference:

f(ti)=PiPi1f'(t_i) = P_i - P_{i-1}

Operasi dilakukan sekali per titik → kompleksitas:

  • Waktu: O(n)O(n)
  • Memori: O(n)O(n)

Sangat efisien.


2. Kompleksitas Turunan Kedua

Turunan kedua juga linear:

f(ti)=f(ti)f(ti1)f''(t_i) = f'(t_i) - f'(t_{i-1})

Kompleksitas:

  • Waktu: O(n)O(n)
  • Memori: O(n)O(n)

3. Kompleksitas Polynomial Regression

Polynomial regression melibatkan pemrosesan matriks:

3.1 Membentuk matriks Vandermonde

Ai,k=tikA_{i,k} = t_i^k

Kompleksitas:

  • O(nd)O(n \cdot d)

3.2 Menghitung ATAA^T A

ATAA^T A

Kompleksitas:

  • O(nd2)O(n \cdot d^2)

3.3 Menyelesaikan sistem linear

ATAa=ATyA^T A a = A^T y

Dengan eliminasi Gauss atau dekomposisi matriks:

  • O(d3)O(d^3)

Namun karena dd kecil (sekitar 3–5), ini sangat ringan.


4. Kompleksitas Total Polynomial Fit

Secara keseluruhan:

O(nd2)O(n \cdot d^2)

Untuk d5d \leq 5, kompleksitas mendekati linear.


5. Kompleksitas Stability Index

Menghitung flip tanda pada turunan kedua:

O(n)O(n)

6. Kompleksitas Convexity Score

Normalisasi:

C=12(1+tanh(fk))C = \frac{1}{2}\left(1 + \tanh\left(\frac{f''}{k}\right)\right)

Dihitung sekali per titik → O(n)O(n).


Summary Tabel Kompleksitas

KomponenKompleksitas WaktuKeterangan
Turunan PertamaO(n)O(n)Sangat efisien
Turunan KeduaO(n)O(n)Sangat efisien
Polynomial RegressionO(nd2)O(n \cdot d^2)Masih ringan
ConvexityO(n)O(n)Normalisasi sederhana
Stability IndexO(n)O(n)Menghitung flip tanda