Я довольно плохо знаком с программированием на CPlex и constrait и, похоже, не могу понять, как решить эту проблему.Если задана цель k и длина слова n , найдите набор из k слов ДНК длиной n .Слово ДНК - это строка над алфавитом {A, C, G, T} , которая удовлетворяет этим ограничениям:
Для всех пар слов w1, w2 вмножество, расстояние Хэмминга между ними должно быть больше заданного значения, d
Не менее 50% букв в слове должно быть G или C
Для всех пар слов w1, w2 в наборе расстояние Хэмминга между w1 и дополнением Уотсона-Крика w2 должно быть больше заданного значения, d
Уотсона-Крикадополнение слова w получается путем обращения w и замены всех букв «A» на «T» и наоборот, и всех букв «C» на «G» и наоборот.
Я пытался следовать примеру Vellino, но не могу придумать, как смоделировать цель максимизации.Не могли бы вы помочь мне начать этот маленький проект?Меня особенно интересует код за пределами блока "subject to".
Спасибо!