package Ġspace . d _ low l . k gl sm . problem Ċ Ċ import Ġkotlin . math .* Ċ Ċ fun Ġget Ack ley ( no Dimensions : ĠInt , Ġa : ĠDouble Ġ= Ġ 2 0 . 0 , Ġb : ĠDouble Ġ= Ġ 0 . 2 , Ġc : ĠDouble Ġ= ĠPI Ġ* Ġ 2 ): ĠCost Function < Double > Ġ{ ĊĠĠĠ Ġreturn Ġfun Ġ( x : ĠArray < Double >): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġassert ( no Dimensions Ġ== Ġx . size ) Ġ{ Ġ" Input Ġmust Ġbe Ġof Ġsize Ġ$ no Dimensions " Ġ}; ĊĠĠĠĠĠĠĠ Ġval Ġfirst Sum Ġ= Ġx . map Ġ{ Ġit * it Ġ}. sum () ĊĠĠĠĠĠĠĠ Ġval Ġsecond Sum Ġ= Ġx . map Ġ{ Ġcos ( c Ġ* Ġit ) Ġ}. sum () ĊĠĠĠĠĠĠĠ Ġreturn Ġ- a Ġ* Ġexp (- b Ġ* Ġsqrt ( first Sum Ġ/ Ġno Dimensions )) Ġ- Ġexp ( second Sum Ġ/ Ġno Dimensions ) Ġ+ Ġa Ġ+ ĠE ĊĠĠĠ Ġ} Ċ }