Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
К сожалению, я не математик, не совсем понял то, что вы написали в начале этой страницы. Если говорить о моей задаче, то есть набор из семи векторов, нужно найти все возможные комбинации элементов этих векторов, дающих в сумме число 256.
А хоть кто-нибудь задумался, зачем топикстартеру и Виталию решение этой задачи - причем именно со всеми вариантами?
Я задумался. И высказывался - что практического смысла не вижу.
vitali_yv:
Зачем оно ТС не знаю. Мне оно надо потому, что попросили условия задачи сформулировать и мне интересно как при помощи ГА можно решить такую сложную задачу.
Ой. А я, грешным делом, подумал что Вы топикстартер. :[
Тогда всё отменяется. Ждем таинственного создателя загадочно-ненужной задачи.
Ну зачем отменяется? Давайте я специально для вас тему создам со своим условием, если вы хотите решать её только если я ТС )
Не стоит новую ветку заводить. Для этого уже есть ветка Алексея. Все перечисленные здесь варианты задачи решаются с помощью ГА.
Всё же, хочется услышать начальника транспортного цеха.
Ну вот, а обещали золотые горы.
Ну давайте я вам сделаю задание. Неизвестно, повторяются ли значения в переменных, допустим что да. Надо найти все варианты.Задача упрощена - 7 переменных, 20 вариантов.
Ну что ж, задача решена. Один из вариантов решения такой:
64+11+9+24+24+72+52=256
Обещанные исходники для решения этой задачи и ей подобных прилагаю.
Есть только один нюанс. Алгоритм разрабатывался для задач, в которых переменные строго уникальны и перестановка их в выражении не допустима, например для такой функции:
f(x,y)=x*x+y.
Совершенно понятно, что значения x и y поменять местами нельзя, иначе изменится значение функции. Поэтому, в алгоритме признаются совершенно одинаковыми только хромосомы типа
3,9,8,7,4,5,3 и 3,9,8,7,4,5,3. Если сравниваются хромосомы вида 3,9,8,7,4,5,3 и 3,8,9,7,4,5,3 то считается, что это совершенно разные хромосомы.
Поэтому мой алгоритм не пригоден для поиска всех решений вышеозвученных типов задач, в которых "от перестановки мест слагаемых сумма не меняется".
По этой причине после однократного запуска алгоритма возможно получить только один вариант решения, а не все. Одно из решений я привел выше.
Для того, что бы сделать алгоритм пригодным для таких типов задач необходимо ввести опционально включаемое правило "от перестановки мест слагаемых сумма не меняется" и хромосомы вида 3,9,8,7,4,5,3 и 3,8,9,7,4,5,3 считать дубликатами.
Исходники написаны на MQL5.
PS Про какие там тысячелетия говорили, необходимые для решения задачи? :)