Начало работы с часовщиком API
Я новичок в фреймворке Watchmaker и заинтересован в создании самого базового решателя генетических алгоритмов для tsp, чтобы понять, как он работает, и продолжить изучение. У меня уже есть матрица расстояний городов, где каждый элемент будет расстоянием между индексом города строки и индексом города столбца (диагональные элементы будут равны нулю, поскольку это будет расстояние между теми же городами). Я хотел бы сгенерировать несколько сотен первоначальной популяции, рассчитать функцию пригодности, взять две из лучших, которые дают минимум функции пригодности, произвести детей и т. Д. (Основная процедура)
Мой вопрос
Достаточно ли моей дистанционной матрицы для подачи в качестве начальной популяции? это в правильном формате? какие объекты я должен использовать для создания начальной популяции?
Технология: Netbeans 7.4 в Ubuntu 12.10 под управлением OpenJDK 1.7 . Планирую добавить файл jar в библиотеку моего проекта. Входной файл (матрица расстояний) в формате csv. Прямо сейчас мне просто любопытно увидеть результаты генерации начальной популяции.
Я не использовал Java API широко, поэтому поправьте меня, если я спросил что-то не так.
1 ответ
Схема API и основные классы, которые вам нужно использовать, включены в главу 2 руководства пользователя. Существует также исходный код для эволюционного решения задачи коммивояжера, включенный в примеры. Вы также можете запустить этот пример как апплет, если в вашем браузере включен плагин Java.
В структуре часовщика ваше первоначальное население создается экземпляром CandidateFactory
интерфейс. В приведенном выше примере я использовал включенный ListPermutationFactory
для генерации первоначальной совокупности, поскольку каждое возможное решение представлено в виде простого списка городов.
Ваша матрица звучит хорошо, если ваш специалист по фитнесу (который вы должны будете написать самостоятельно) может прочитать ее и разобраться в этом. В примере я просто жестко запрограммировал расстояния (см. Источник).