Optimization Story: Sport Science - Menentukan Konfigurasi Pelari Estafet
Salah satu kegunaan artificial intelligence dan data science di bidang olahraga adalah melakukan prediksi terhadap suatu kejadian. Tapi ada satu field lagi yang mungkin jarang orang ketahui, yakni: optimization.
Saya akan berikan contoh simpel penerapan optimization di bidang olahraga, khususnya di cabang lari estafet.
Masalah
Seorang pelatih estafet hendak mendaftarkan timnya untuk mengikuti kompetisi di suatu waktu. Pelatih tersebut harus memilih 4 dari 6 orang pelari anak didiknya. Untuk itu, dia melakukan beberapa kali simulasi dan mencatatkan waktunya sebagai berikut:
Pelari | Fraction 1 | Fraction 2 | Fraction 3 | Fraction 4 |
---|---|---|---|---|
Sprinter 1 | 12.27 | 11.57 | 11.54 | 12.07 |
Sprinter 2 | 11.34 | 11.45 | 12.45 | 12.34 |
Sprinter 3 | 11.29 | 11.50 | 11.45 | 11.52 |
Sprinter 4 | 12.54 | 12.34 | 12.32 | 11.57 |
Sprinter 5 | 12.20 | 11.22 | 12.07 | 12.03 |
Sprinter 6 | 11.54 | 11.48 | 11.56 | 12.30 |
Hanya boleh satu pelari yang menempati satu fraction.
Bagaimana cara si pelatih menentukan pelari mana yang harus di-assign?
Formulasi Masalah
Oke, untuk menyelesaikannya kita akan buat terlebih dahulu formulasi matematikanya sebagai berikut.
Misalkan saya definisikan sebagai bilangan binary .
Objective Functions
Tujuan kita adalah meminimalkan waktu lari keseluruhan tim.
Dengan adalah waktu lari pelari pada fraction .
Constraints
Kendala dari masalah ini adalah:
Satu fraction wajib diisi satu pelari:
Satu pelari harus berlari di satu fraction atau tidak berlari sama sekali:
Solver
Mari kita selesaikan dengan ompr
di R.
library(dplyr)
library(ompr)
library(ompr.roi)
library(ROI.plugin.glpk)
bin_prog =
MIPModel() %>%
# menambah variabel
add_variable(x[i,j],
i = 1:6,
j = 1:4,
type = "binary",
lb = 0) %>%
# membuat objective function
set_objective(sum_expr(waktu[i,j]*x[i,j],
i = 1:6,
j = 1:4),
"min") %>%
# constraint 1
add_constraint(sum_expr(x[i,j],i = 1:6) == 1,
j = 1:4) %>%
# constraint 2
add_constraint(sum_expr(x[i,j],j = 1:4) <= 1,
i = 1:6)
bin_prog
## Mixed integer linear optimization problem
## Variables:
## Continuous: 0
## Integer: 0
## Binary: 24
## Model sense: minimize
## Constraints: 10
Berikut adalah konfigurasi pelari yang harus diturunkan oleh sang pelatih:
Pelari | Fraction |
---|---|
2 | 1 |
5 | 2 |
3 | 3 |
4 | 4 |
Diharapkan total waktu yang diraih adalah sebesar:
## Status: optimal
## Objective value: 45.58
if you find this article helpful, support this blog by clicking the ads.