2014-11-09 5 views
2

У меня есть скрипт Python - простой генетический алгоритм. Он генерирует случайную последовательность из списка (список создается с помощью itertools), проверяет его, мутирует наилучшие результаты и генерирует более случайные результаты. Он отлично работает на некоторых компьютерах, но на других он не сходится к решению.Сценарий возвращает разные результаты на разных машинах

Мне не разрешено показывать весь код, но нет ничего особенного, насколько я знаю.

Б ЛИЭС:

import itertools 
import numpy.random as random 
import copy 

От случайных я использую randint, перемешать.

То, что я пробовал:

  1. изменение между питоном случайным и numpy.random - без изменений.
  2. проверить версию - он не работает на Python 0.2.7.x, но также и на Python> 2.7.6 (до сих пор я тестировал). Поэтому я не думаю, что версия Python связана.
  3. Я тестирую 64-битные и 32-разрядные операционные системы - он работает на 32-битных окнах 7, 32-битный Ubuntu, 64-битный Ubuntu и не работает на другом 32-битном Ubuntu! Поэтому также не кажется, что операционная система имеет значение.

Есть ли кто-нибудь в аналогичной проблеме? Что еще нужно проверить?

ответ

3

Скорее всего, есть ошибка или численная проблема, которая заставляет алгоритм сходиться для некоторых входов, но не для других (или, если алгоритм является недетерминированным, в зависимости от значений, создаваемых генератором случайных чисел).

Попробуйте посеять генератор случайных чисел, чтобы сделать результаты воспроизводимыми.

+0

Это помогло мне понять, что вопрос не был случайным. – matousc

Смежные вопросы