Le funzioni test sono delle funzioni pensate e utilizzate per testare il funzionamento e l'efficienza degli algoritmi di ottimizzazione. Gli aspetti dell'algoritmo che tipicamente interessa mettere alla prova sono la velocità di convergenza, la precisione del risultato e la robustezza dell'algoritmo. Le funzioni test sono spesso problemi artificiali che mettono alla prova gli algoritmi in situazioni particolarmente scomode, ad esempio nella ricerca di minimi in funzioni particolarmente piatte (come un punto di minimo di una funzione continua nel quale si annullano molte derivate successive), funzioni il cui comportamento globale approssima quello di una funzione unimodale ma che in realtà presenta altri estremi locali, funzioni con un gran numero di punti di ottimo locali significativi, o funzioni il cui andamento globale non fornisce indicazioni significative sulla posizione dei punti di ottimo.[1]
Nel seguito sono riportate alcune tra le più note funzioni test con una espressione in forma generale e le loro principali caratteristiche.
Le funzioni test presentate nel seguito sono riportate in Bäck,[2] Haupt et. al.[3] e dalla libreria software di Rody Oldenhuis.[4]
− exp ( 0.5 ( cos ( 2 π x ) + cos ( 2 π y ) ) ) + 20 + e . {\displaystyle -\exp \left(0.5\left(\cos \left(2\pi x\right)+\cos \left(2\pi y\right)\right)\right)+20+e.\quad }
+ ( 2.625 − x + x y 3 ) 2 . {\displaystyle +\left(2.625-x+xy^{3}\right)^{2}.\quad }
( 30 + ( 2 x − 3 y ) 2 ( 18 − 32 x + 12 x 2 + 48 y − 36 x y + 27 y 2 ) ) . {\displaystyle \left(30+\left(2x-3y\right)^{2}\left(18-32x+12x^{2}+48y-36xy+27y^{2}\right)\right).\quad }
+ ( y − 1 ) 2 ( 1 + sin 2 ( 2 π y ) ) . {\displaystyle +\left(y-1\right)^{2}\left(1+\sin ^{2}\left(2\pi y\right)\right).\quad }
subjected to: x 2 + y 2 ≤ ( r T + r S cos ( n arctan x y ) ) 2 {\displaystyle {\text{subjected to: }}x^{2}+y^{2}\leq \left(r_{T}+r_{S}\cos \left(n\arctan {\frac {x}{y}}\right)\right)^{2}} where: r T = 1 , r S = 0.2 and n = 8 {\displaystyle {\text{where: }}r_{T}=1,r_{S}=0.2{\text{ and }}n=8}
Le seguenti funzioni test per algoritmi di ottimizzazione multiobiettivo provengono da Deb,[7] Binh et. al.[8] e Binh.[9][10][11]
where = { A 1 = 0.5 sin ( 1 ) − 2 cos ( 1 ) + sin ( 2 ) − 1.5 cos ( 2 ) A 2 = 1.5 sin ( 1 ) − cos ( 1 ) + 2 sin ( 2 ) − 0.5 cos ( 2 ) B 1 ( x , y ) = 0.5 sin ( x ) − 2 cos ( x ) + sin ( y ) − 1.5 cos ( y ) B 2 ( x , y ) = 1.5 sin ( x ) − cos ( x ) + 2 sin ( y ) − 0.5 cos ( y ) {\displaystyle {\text{where}}={\begin{cases}A_{1}&=0.5\sin \left(1\right)-2\cos \left(1\right)+\sin \left(2\right)-1.5\cos \left(2\right)\\A_{2}&=1.5\sin \left(1\right)-\cos \left(1\right)+2\sin \left(2\right)-0.5\cos \left(2\right)\\B_{1}\left(x,y\right)&=0.5\sin \left(x\right)-2\cos \left(x\right)+\sin \left(y\right)-1.5\cos \left(y\right)\\B_{2}\left(x,y\right)&=1.5\sin \left(x\right)-\cos \left(x\right)+2\sin \left(y\right)-0.5\cos \left(y\right)\end{cases}}}
Altri progetti