Mencari Pareto Front dengan Kode Matlab

Lanjutan dari postingan terdahulu. Setelah surfing di internet, akhirnya ketemu juga program untuk menentukan titik pareto front di titik-titik hasil optimisasi di situs ini. Kode-nya dibuat oleh Yi Cao dari Cranfield University pada tahun 2007 yang lalu. Sayangnya gabungan hex file dengan m-file. Letakan dalam satu folder setelah diekstrak, dan jalankan kode ini di command window:

  • X = rand(100,2);
  • front = paretofront(X);
  • hold on;
  • plot(X(:,1),X(:,2),’.’);
  • plot(X(front, 1) , X(front, 2) , ‘r.’);
  • hold off
  • grid on
  • xlabel(‘X_1’);
  • ylabel(‘X_2’);
  • title(‘Pareto Front of a set of random points’);

Prinsipnya adalah, fungsi paretofront akan mencari titik-titik pareto dimana tidak ada titik lain yang kedua fungsi objektif lebih kecil dari titik tersebut (kalau hanya satu masih diperbolehkan). Pada grafik, titik-titik yang merupakan pareto front diplot berwarna merah.

Note: Untuk mencari optimasi maximum tinggal mengalikan X dengan -1 di fungsi paretofront

  • front = paretofront(X*-1);

Peramalan dengan Jaringan Syaraf Tiruan

Jaringan syaraf tiruan (jst) sering juga dijadikan sarana untuk meramalan. Berbeda dengan fitting yang mengandalkan variabel-variabel input, peramalan hanya mengandalkan data berdasarkan deretan waktu (time series). Dan seperti time series lainnya, jumlah data sangat menentukan kualitas peramalannya, walaupun dua data bisa meramalkan data ketiga tetapi tentu saja kalah akurat dibanding meramalkan data ke 1001 dari 1000 data.

Misal saya memiliki data tiga tahun, kemudian saya susun menjadi bentuk seperti ini dimana matriks berisi dua baris dengan baris pertama tahun pertama dan baris kedua tahun kedua. Sementara tahun ketiga saya jadikan target pelatihan.

Dengan membuka toolbox JST (ketik nntool di command window) kita rakit JST untuk dilatih dengan target pelatihan tahun ketiga:

Masukan variabel-variabel masukan dan target di jendela nntool. Buat JST dengan jumlah neuron sesuai keinginan, lakukan training.

Begitu pula JST-nya, buat saja dengan mengklik tombol ‘new’ di jendela network designer. Atau bisa juga menggunakan fungsi di command window tanpa toolbox (fungsi newff).

Jika sudah, dobel klik pada network1 untuk melakukan proses training. Pilih lagi input dan target datanya, lakukan simulasi, dan tunggu sesaat hingga proses pelatihan selesai.

Hasilnya jangan lupa disimpan untuk memprediksi tahun keempat. Bagaimana memprediksi tahun keempat? Gunakan saja tahun kedua dan tahun ketiga sebagai input, maka JST akan memprediksi tahun keempat berdasar pelatihan sebelumnya.

Kemudian lakukan simulasi dengan fungsi sim dari Matlab. Gunakan network1 yang telah di ekspor dari proses pelatihan sebelumnya. Gunakan kode berikut di command window, maka prediksi tahun keempat selesai, akurasi tentu saja bisa diuji jika Anda punya data tahun keempat yang sesungguhnya.

Tentu saja dua data untuk meramalkan data ketiga kurang baik, seperti halnya anda memprediksi kurs dollar terhadap rupiah hanya dengan dua data, karena belum tentu rupiah terus melemah, bisa saja menguat jika data pelatihannya banyak. Tetapi yang namanya ramalan ya belum tentu benar kan?