2016-03-20 3 views
0

Supposons que je sois un algorithme dont l'exécution dépend de deux paramètres. Je veux trouver le meilleur ensemble de paramètres qui minimise l'exécution. Les deux paramètres sont des valeurs doubles continues comprises entre 0 et INFINITY. Par conséquent, pour deux paramètres a, b: Je veux trouver les meilleures valeurs de a et b qui minimisent le temps d'exécution. Je pense que c'est une pratique assez courante, mais je n'ai pas trouvé de bonne littérature là-dessus. J'ai trouvé peu de littérature comme MLE, Least Squares, etc. mais ils parlent de distribution.Estimation des paramètres pour réduire le temps d'exécution

Répondre

0

Utilisez d'abord votre cerveau pour comprendre la relation fonctionnelle possible entre ces paramètres et le temps de fonctionnement, de manière qualitative. Cela signifie avoir une première idée sur le nombre et les positions des maxima possibles, la finesse de la fonction, le comportement asymptotique et tout autre indice que vous pouvez trouver. Ensuite, prenez votre décision sur une plage de valeurs raisonnable où il est logique d'échantillonner les valeurs de la fonction. Si ces plages sont très larges, il est préférable d'échantillonner en utilisant une progression géométrique plutôt qu'arithmétique (disons, puissances de 2). Puis mesurez et observez les valeurs de la fonction avec un visualiseur graphique et confirmez vos intuitions. Il est probable que cela sera suffisant pour repérer l'emplacement brut du maximum absolu. Trouver une position précise pourrait être inutile si elle vous donne les derniers pourcentages d'amélioration. Il est également très probable que l'emplacement de l'optimum dépendra de l'ensemble de données particulier, ce qui rendra l'emplacement précis encore moins utile.

+0

J'ai fait ce qui suit selon vos conseils. D'abord deviné la valeur de P1 et P2, et fixé 8 valeurs de distict décidé pour P1 et P2. Dire, P1 = (2,2 2,3 2,4 2,5 2,6 2,7 2,8 2,9) P2 = (0,95 1,05 1,15 1,25 1,35 1,45 1,55 1,65). Ensuite, j'ai couru 64 expériences pour toute la combinaison de P1 et P2, et de découvrir ce qui me donne le temps d'exécution minimum. Prochaine itération, je peux réduire la taille du pas. Y a-t-il un nom pour cette méthode? – max

+0

@max: ce que vous avez fait jusqu'à présent est une recherche exhaustive. Si vous concentrez la recherche et réduisez l'étape, vous obtenez une variante de la recherche dichotomique, également liée à l'approche de modèle de Hooke-Jeeves. Mais ce qui importe le plus, c'est d'avoir un aperçu du comportement de la fonction. Vos intervalles initiaux semblent très serrés, je suppose que vous avez vos raisons. –

+0

Merci, oui j'ai repéré ces valeurs en faisant plusieurs itérations de plus grandes portées. Je dois mentionner cette approche dans un document, c'est pourquoi j'ai besoin du nom de cette méthode. – max