Экспериментирование осуществляется не случайным образом. Программисты разрабатывают алгоритмы так, чтобы тестирование вариантов было экономным, с минимальными затратами времени и вычислительных ресурсов. Один из основных методов рационального экспериментирования — это усиление того, что работало в прошлом, и замена менее предпочтительных вариантов новыми.