Nama dan NIM : Abdul Madjid Maulana (230605110130)
Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Universitas : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Program Studi : Teknik Informatika

Di artikel ini kita akan membahas apa itu Numerical Optimization. Numerical optimization adalah cara untuk mencari nilai terbesar atau terkecil dari suatu fungsi dengan menggunakan angka-angka. Fungsi adalah hubungan antara dua hal yang saling bergantung satu sama lain. Misalnya, fungsi h(x) = x + 2 berarti ada hubungan antara h dan x, yaitu h selalu sama dengan x ditambah 2. Nilai terbesar atau terkecil dari suatu fungsi disebut juga nilai optimal. Nilai optimal berguna untuk menyelesaikan berbagai masalah di bidang ilmu pengetahuan, teknologi, ekonomi, dan lain-lain.

#langkah pertama
h <- rfun(~ x, seed=1234) 

#langkah kedua
argM(h(x) ~ x, bounds(x=-10:10))
## # A tibble: 2 × 3
##         x  .output. concavity
##     <dbl>     <dbl>     <dbl>
## 1 -10.0   0.0000171         1
## 2   0.314 9.29             -1

Langkah pertama adalah mendefinisikan fungsi yang ingin kita optimalkan secara numerik. Fungsi adalah hubungan antara dua hal yang saling bergantung satu sama lain. Misalnya, fungsi h(x) = x + 2 berarti ada hubungan antara h dan x, yaitu h selalu sama dengan x ditambah 2. Optimization secara numerik adalah cara untuk mencari nilai terbesar atau terkecil dari suatu fungsi dengan menggunakan angka-angka. Misalnya, jika kita ingin mencari nilai terbesar dari fungsi h(x) = x + 2 dalam interval [-5, 5], kita dapat mencoba berbagai nilai x dari -5 sampai 5 dan melihat nilai h yang dihasilkan. Nilai terbesar dari h adalah 7, yang didapat ketika x = 5. Untuk mendefinisikan fungsi yang ingin kita optimalkan secara numerik, kita dapat menggunakan fungsi rfun(). Fungsi rfun() adalah fungsi yang dapat membantu kita membuat fungsi secara acak atau sembarang. Fungsi acak adalah fungsi yang dibuat dengan menggunakan angka-angka atau huruf-huruf yang dipilih secara acak. Fungsi acak berguna untuk melatih kemampuan kita dalam melakukan kalkulus. Untuk menggunakan fungsi rfun(), kita perlu mengetikkan perintah berikut di RStudio:

h <- rfun(~ x, seed=1234)

Perintah h <- rfun(~ x, seed=1234) berarti kita meminta komputer untuk membuat fungsi acak dengan menggunakan huruf x sebagai variabel dan angka 1234 sebagai seed. Variabel adalah sesuatu yang dapat berubah-ubah nilainya. Seed adalah angka yang digunakan untuk menentukan pola atau aturan dalam membuat fungsi acak. Dengan menggunakan seed yang sama, kita dapat membuat fungsi acak yang sama pula.

Langkah kedua adalah menggunakan fungsi argM() untuk mencari argumen maksimum dan minimum dari fungsi kita dalam interval tertentu. Argumen maksimum adalah nilai x yang membuat fungsi kita memiliki nilai terbesar. Argumen minimum adalah nilai x yang membuat fungsi kita memiliki nilai terkecil. Interval adalah rentang atau jarak antara dua angka. Misalnya, interval [-5, 5] berarti rentang antara -5 sampai 5. Fungsi argM() adalah fungsi yang dapat membantu kita mencari argumen maksimum dan minimum dari suatu fungsi dengan menggunakan angka-angka. Fungsi argM() mengembalikan sebuah data frame yang berisi nilai x, output, dan konkavitas dari fungsi kita di titik-titik ekstrem. Data frame adalah tabel atau kotak-kotak yang berisi data atau informasi. Output adalah nilai dari fungsi kita ketika kita memasukkan nilai x tertentu. Konkavitas adalah bentuk atau keadaan dari kurva fungsi kita di sekitar titik-titik ekstrem. Kurva adalah garis lengkung yang menggambarkan hubungan antara dua hal. Titik-titik ekstrem adalah titik-titik di mana fungsi kita memiliki nilai terbesar atau terkecil. Untuk menggunakan fungsi argM(), kita perlu mengetikkan perintah berikut di RStudio:

argM(h(x) ~ x, bounds(x=-5:5))

Perintah argM(h(x) ~ x, bounds(x=-5:5)) berarti kita meminta komputer untuk mencari argumen maksimum dan minimum dari fungsi h(x) dalam interval [-5, 5]. Komputer kemudian memberikan kita sebuah data frame yang berisi nilai x, output, dan konkavitas dari fungsi h(x) di titik-titik ekstrem. Data frame ini memiliki dua baris dan tiga kolom. Baris pertama berisi nilai x = -0.825, output = 2.07, dan konkavitas = 1. Baris kedua berisi nilai x = 1.83, output = 7.95, dan konkavitas = -1. Nilai konkavitas menunjukkan bentuk kurva fungsi kita di sekitar titik-titik ekstrem. Jika konkavitas = 1, berarti kurva fungsi kita berbentuk cekung ke atas atau seperti mangkuk terbalik. Jika konkavitas = -1, berarti kurva fungsi kita berbentuk cekung ke bawah atau seperti mangkuk biasa.

Navigasi materi Optimization
Optimization Graphical Optimization Numerical Optimization