Не совсем понимаю, а в чем, собственно, проблема? Смотрите, у вас уже есть код, который принимает на вход геометрию произвольной антенны и выдает ее диаграмму кривой КСВ. У вас наверняка есть представление о том, что такое идеальная кривая КСВ. На основании этих двух вещей можно сделать функцию оценки приспособленности (фитнесс-функцию), которая бы принимала на вход геометрию антенны и возвращала среднеквадратичную ошибку между нормализованной идеальной кривой и нормализованной фактической кривой.
Осталось задать способ представления геометрии антенны при помощи генома. Я не настоящий радиосварщик, поэтому я исхожу из предположения, что вам нужно, чтобы антенна была двухмерной (хотя это может быть не так). Мне кажется, неплохим вариантом будет представить антенну в виде одного самопересекающегося полигона с принудительным закрытием, наподобие вот такого:
Скрытый текст
Геном можно представить в виде простой последовательности координат, а каждую пару координат — в виде комплексного числа или 2-кортежа. С координатной системой надо будет поэкспериментировать — или декартову использовать, или полярную, или какие-то более экзотические, но вариантов для перебора не так много. По поводу центра координат — мне кажется, лучше использовать не абсолютные, а относительные координаты, в которых каждая следующая вершина задается относительно предыдущей (или предыдущей за ней). В таком случае естественный отбор сможет копировать структуры и смещать их друг относительно друга, а это может дать нужные сочетания.
По поводу преобразований — над таким геномом можно затем исхищряться всеми обычными способами — кроссовер в одной или нескольких точках, мутации удалением, дублированием, перестановкой, искажением и т.д.
Т.е. несмотря на то, что у меня нет знаний именно по антеннам, мне кажется, этот способ синтеза не стоит сбрасывать со счетов вообще.
Но ведь кабель/зарядное — собственность кафешки. Если у вас что-то случится с телефоном, вы придете в кафе «я у вас тут бекапился, мне бы восстановиться»? Возможно, я недопонимаю вашу бизнес-схему.
Стесняюсь уточнить, возможно, через это уже прошли, но всё же — для решения подобного класса задач с очень простой (как я понимаю) функцией оценки пригодности антенны, и набором строго формализуемых ограничений не подошли ли бы, например, генетические алгоритмы?
Сможет, если опять будут делать толстые бинарники, как это уже было раньше с PowerPC, а если нужной архитектуры в бинарнике не будет, то выполнять трансляцию на ходу.
Я наваял небольшой юзерскрипт для того, чтобы сделать их редактор более удобным, как минимум, для себя. Лицензия WTFPL-2, если кому важно. Что делает скрипт:
Назначает комбинациям Command+[ и Command+] block indent и block outdent, как это и должно было быть изначально.
Command+Option+I (Ctrl+Alt+I) прячет и показывает невидимые символы.
Command+Option+W (Ctrl+Alt+W) включает-выключает перенос строк по границе окна.
Ставит тему «цветное на темном», название — «Vibrant Ink». Чтобы тема не выглядела чужеродно, окружающие цвета, относящиеся к панели и IDE, подтягиваются соответственно.
Включаются хардтабы. Чтобы всё было в одном стиле, в открытом исходнике индентация тоже заменяется с пробелов на табы. Я не пробовал еще проходить дальше первого задания, поэтому не знаю, всё ли корректно подхватится при переходе на следующее. Если нет, я пройду и обновлю.
Показывает сворачивалки блоков кода.
Курсор выглядит тоньше.
Если что-то кому-то из этих вещей не нужно, смело выбрасывайте — я постарался эти штуки в коде нормально отделить друг от друга. Конечный результат выглядит следующим образом:
ccнаbcc, делов-то.UPD: А, они уже — не обратил внимания :)
Осталось задать способ представления геометрии антенны при помощи генома. Я не настоящий радиосварщик, поэтому я исхожу из предположения, что вам нужно, чтобы антенна была двухмерной (хотя это может быть не так). Мне кажется, неплохим вариантом будет представить антенну в виде одного самопересекающегося полигона с принудительным закрытием, наподобие вот такого:
По поводу преобразований — над таким геномом можно затем исхищряться всеми обычными способами — кроссовер в одной или нескольких точках, мутации удалением, дублированием, перестановкой, искажением и т.д.
Т.е. несмотря на то, что у меня нет знаний именно по антеннам, мне кажется, этот способ синтеза не стоит сбрасывать со счетов вообще.
letи его влияние на области видимости.UPD: Черт, выше уже написали про
let.- Назначает комбинациям
- Ставит тему «цветное на темном», название — «Vibrant Ink». Чтобы тема не выглядела чужеродно, окружающие цвета, относящиеся к панели и IDE, подтягиваются соответственно.
- Включаются хардтабы. Чтобы всё было в одном стиле, в открытом исходнике индентация тоже заменяется с пробелов на табы. Я не пробовал еще проходить дальше первого задания, поэтому не знаю, всё ли корректно подхватится при переходе на следующее. Если нет, я пройду и обновлю.
- Показывает сворачивалки блоков кода.
- Курсор выглядит тоньше.
Если что-то кому-то из этих вещей не нужно, смело выбрасывайте — я постарался эти штуки в коде нормально отделить друг от друга. Конечный результат выглядит следующим образом:Command+[иCommand+]block indent и block outdent, как это и должно было быть изначально.Command+Option+I(Ctrl+Alt+I) прячет и показывает невидимые символы.Command+Option+W(Ctrl+Alt+W) включает-выключает перенос строк по границе окна.