Archive for Декабрь, 2009

Оптимизация траекторий поражения огнестрельным оружием

Среда, Декабрь 30th, 2009

Продолжая тему автоматизированных наземных вооружений предыдущей записи, рассмотрим возможности оптимизации траекторий поражения целей.
При боях в городе может быть важна каждая доля секунды: противник высунулся из окна, увидел цель, навел РПГ, выстрелил – и очередной машины нету.
Возможность №1: режим работы, в котором при обнаружении неожиданного и подозрительного движения, машина автоматически прицеливается по двигающейся области. Оператору остается подтвердить открытие огня.
Возможность №2: способ ведения огня по цели, при котором ради экономии времени нацеливание ствола происходит на полной скорости и без торможения, поражение цели осуществляется пересекающей цель очередью, без остановки прицела на цели. Остановка может произойти несколько позже, хотя бы и сразу за целью – что потребует еще одного возврата прицела и может использоваться для повторной очереди.
Возможность №3: зачистка области по оптимальным траекториям. Пусть принято решение вести огонь по окну дома. В каком именно направлении скрылся противник – неизвестно. Нужно максимально быстро зачистить ту область, в которой недавно был противник, вместе с ее окрестностями. Автоматика может производить такую зачистку максимально быстро и экономично, с равномерным расходом боеприпасов по поражаемой области, с равномерным распределением траекторий. Набор траекторий поражения может быть различным: по расходящейся спирали, зигзагом по некоторой линии (горизонтальная зигзагообразная линия – для поражения тех, кто лег на пол, вертикальная линия – для тех, или прячется под стеной), и т. д.
Возможность №4: распределение секторов поражения. При движении нескольких машин рядом, они распределяют сектора поражения целей. При появлении потенциальной цели и работы в режиме из описанной возможности №1, автоматическое наведение на цель осуществляет только машина, которая отвечает за данный сектор. Другие машины не отвлекаются, а скорости прицеливания в пределах своего сектора максимальные. Защита тыла.
Чем выгодно движение под стенами и под окнами зданий: область, за которой нужно следить, сокращается до практически полусферы и меньше, а те, кто высовываются из окна ближайшей стены, находятся на одной линии поражения. Для поражения техники им самим, как правило, нужно высунуться из окна – работать из глубины не выйдет. Расстояние же до стены с противоположной стороны улицы становится максимально возможным – дальше отойти мешает стена. Окна противоположного здания просматриваются лучше. Исходя из этих соображений, одноместные боевые машины мотопехоты и беспилотные аналоги в городе должны передвигаться под стенами, с обоих сторон улицы. Окна высших этажей должны контролировать штатные беспилотники, желательно способные зависать на одном месте.

Боевая машина мотопехоты

Среда, Декабрь 30th, 2009

Концепция: бронетранспортер на одного человека, он же водитель-стрелок.
Концепция предложена на основе замечания, что эта массогабаритная ниша пустует, а также из соображения, что в войне при прочих равных побеждает сторона, обладающая максимальным количеством оружия с минимально достаточным калибром.
Башня может вмещать: сенсоры, пулемет, пару противотанковых выстрелов (возможно ПЗРК), аэрозольную систему маскировки, многозарядный гранатомет и т. д.
В случае поломки транспортного средства, водитель может продолжать действовать как пехота – с автоматом, бронежилетом и т. д.
За счет безлюдной башни и размещения единственного члена экипажа полулежа машина должна быть небольшой и являться трудно целью.

Преимущества в сравнении с пехотой:
* большая огневая мощь и богатый арсенал
* более прицельный и скорострельный огонь за счет стабилизации оружия
* возможность одновременно вести интенсивный прицельный огонь и передвигаться
* большая скорость передвижения при наступлении
* большая защищенность, в том числе и от ОМП
* более мощная связь
* оптимизация траекторий поражения
* более мощные сенсоры (оптические с приближением, инфракрасные, ночного видения, звуковые на фазированных антенных решетках, лазерный дальномер, в том числе для целеуказания)
* более развитые средства группового взаимодействия и информационного обеспечения, в том числе – более удобные интерфейсы управления беспилотниками, запроса поддержки более мощных средств поражения, запись всех действий
* комфортность действий при низких и высоких температурах
* возможность передвигаться по снегу и, опционально, по воде
* возможность возить штатный микро-БПЛА вертолетного или самолетного типа с более развитым управлением, чем у пехоты
* дополнительный вес снаряжения типа пайков
* возможность доставки грузов на прицепе

Преимущества в сравнении с машинами типа Хаммер: меньшие размеры, большая маневренность, в случае поражения машины – меньшие людские потери.

Преимущества перед танками: то же, что и в предыдущем пункте, а также меньшая цена. В некоторых видах конфликтов, боекомплект танка может оказаться излишне большим – танки могут уничтожаться до израсходования всех боеприпасов. Тогда как такие машины все еще могут уничтожать танки – за счет наличия противотанковых ракет большего размера, чем ручные противотанковые гранаты, и с системой управления полетом. Для действий в городе танки слишком неуклюжи. За счет меньшего веса может доставляться вертолетами и грузовиками.
По аналогии с экзоскелетами, машина может содержать четыре ноги для преодоления высоких препятствий.

Концепции использования:
1) поддержка танков в ходе боя. При этом танки могут действовать на полной скорости – машины поддержки будут успевать за ними, в отличии от пехоты. Не нужно время на то, чтобы выгрузить пехоту из БМП при приближении к рубежу
2) бои в городе, в том числе – контртеррористические операции
3) десантные операции, при которых десантировать более тяжелую технику невозможно или невыгодно
4) скоростной прорыв в тыл с боем или поддержка отступления в качестве самостоятельных групп
5) эвакуация раненых и доставка боеприпасов
Интересна возможность удаленного управления. Оно может применяться:
1) машина используется как полностью беспилотное вооружение без человека
2) перенять управление в случае повреждения экипажа, пусть бы даже и уже мертвого, пусть бы даже и одним только оружием
3) помочь экипажу в управлении – например, управлять оружием, пока он ведет машину, или наоборот, или задействовать другой вид оружия. Так будет повышаться эффективность использования машины.

Последний пункт ставит вопрос о том, насколько удобным будет совмещение функций управления и ведения огня одним членом экипажа. Нужно заметить, что на примере компьютерных игр, это не так уж и невозможно. Один джойстик под передвижение, один – под оружие. Обычные джойстики в наземных транспортных средствах неудобны – поэтому в предыдущей заметке я описал концепцию джойстика, устойчивого к перегрузкам. При ведении огня можно замедляться и останавливаться. В то же время, пехота вообще не может вести прицельный огонь во время передвижения бегом, а при остановке пехоте будут мешать отсутствие стабилизации и мощных прицелов. Как и пехота, система может вести огонь из небольших углублений – так как, учитывая небольшие размеры машины, для нее существенным углублением будет и такая яма, которую танк бы просто переехал или в которой он не стал бы существенно ниже. Другой и смысл укрытий: если поражение танка в жилую башню приводит к поражению экипажа, то поражение нежилой башни – не всегда.

Джойстик, устойчивый к внезапным перегрузкам

Среда, Декабрь 30th, 2009

Джойстики не применяются в автомобилях вместо руля и педалей в том числе потому, что приводят к неустойчивому управлению при внезапных перегрузках. Например, толчки при наезде на выбоину могут дергать руку с джойстиком и менять угол поворота колес или отключать тормоза. В авиации перегрузки более предсказуемы. С рулем таких проблем практически не возникает – у руля всего одна степень свободы, а при толчках, если на руле лежат обе руки, причем симметрично относительно оси – то сила от толчка руками будет сбалансирована относительно оси вращения руля.
Появилась идея создания джойстика, который не имел бы таких недостатков: обладал бы несколькими степенями свободы и был бы устойчивым при внезапных перегрузках при управлении одной рукой. За такой джойстик должно быть возможным даже держаться при толчках, аналогично рулю
Основная идея – от толчков по возможности не должен создаваться рычаг. Описание возможного устройства:
Рукоятка джойстика закреплена внутри кольца. Таким образом, вместо одной точки крепления у традиционного джойстика тут есть две точки крепления. Поворот в плоскости часовой стрелки происходит кручением кольца аналогично кручению руля. Вместо балансирования двух рук тут выручает и то, что нагрузка распределяется по обводам кольца, и то, что центр типичной руки человека будет находиться около центра вращения рукоятки.
Это что касается поворота рукоятки в плоскости часовой стрелки. В направлении наклона вперед/назад (тормоз/ускорение), то наклоняется рукоятка вместе с кольцом. Кольцо имеет также две точки крепления – симметрично по бокам, слева и справа. Рычаг при толчках также не создается.
Вращение вокруг оси самой рукоятки не будет сохранять устойчивость при внезапных толчках вперед/назад. Но для автомобильного применения эта ось и не нужна.
Традиционный джойстик должен быть выровнен в одном и том же направлении в зависимости от положения подставки – а такой джойстик можно центрировать перед каждой поездкой. Человек ложит руку, расслабляет ее, джойстик принимает самое выгодное положение – и оно фиксируется как нулевое.
Для экстренного торможения также можно предусмотреть возможность тянуть ручку на себя параллельным переносом – но с большим порогом срабатывания.
Для улучшения дизайна такой джойстик лучше утапливать в корпусе, или хотя бы закрывать переднюю полусферу.
Если окажется, что из-за разных размеров ладоней у разных людей стандартных углублений для пальцев окажется недостаточно для правильного фиксирования руки (для минимизации моментов), то можно применять регулировку размера рукоятки. Желательно, чтобы после регулировки центр руки был сбалансирован. Автоматическую балансировку можно применять путем автоматического встряхивания джойстика в нескольких направлениях (а не осях – так как в автомобилях резкие вращения бывают только при уже свершившихся авариях) и определения возникших моментов вращения с последующим смещением рукоятки вверх-вниз.
Так как джойстики небольшие, то их в салоне может быть два – под правую и левую руки. Два джойстика нужны и для того, чтобы можно было держаться двумя руками.
Традиционную педаль тормоза можно оставить – тогда джойстик будет отвечать только за повороты и обороты двигателя.
Такие джойстики могут пригодится не только в автомобилях, но и, например, в танках.

Простые нейросети и разрушение

Суббота, Декабрь 26th, 2009

Простые ИНС легко использовать для разрушения. Даже не касаясь физического плана реальности. Намного проще при помощи ИНС найти по всему интернету группы, противоречащие власти, чем создать ИИ, который сможет гармонизировать государство. Намного проще создать ИИ, который будет по видеокамерам на каждом столбе следить за каждым человеком в городе в пользу спецслужб, чем ИИ, который будет помогать развиваться населению физически, эмоционально, интеллектуально и духовно. Точно так же, как и химия – вначале были созданы относительно простые порох и тринитротолуол, а уж позже – кучи полезные синтетических тканей, лекарств и прочих благ. Или то же ядерное оружие, а лишь затем – мирные АЭС. Так как разрушать в целом легче – особенно с новой технологией, которая кипит и бурлит от потенциала, время на гармоничное использование которого тратить лень. Поэтому простой ИИ может быть разрушительным легче, чем поздний. Более того, ранний ИИ трудно будет сделать созидающим – так как созидание сложная вещь. Разрушение также сложно – советуют посмотреть в сторону армии – но созидание часто много сложнее.
Мне нравится эвристика, по которой можно ожидать, что первичное усложнение ИИ приведет к тому, что к 2013 будет достигнут максимум соотношения разрушение/созидание при помощи ИИ.
Но будет ли допущено такое развитие ситуации властью, контролирующей ИИ? В СССР от широкой автоматизации многие отказывались в пользу сохранения рабочих мест. В США, в, кажется, General Motors, что-ли, поступили умнее: автоматизацию вводили, работников освобождали от работы, но платили почти прежнюю зарплату. В теории, работники могли переквалифицироваться – а на практике, играли в шахматы и решали кроссворды. Социалистический добренький СССР «ушли», временно остался капитализм. Китай не рассматриваем ввиду его предполагаемой ведомой роли в гонке ИИ. Какие примеры дает история капитализма
Пройдемся подробнее по разрушениям, которые несут простые ИНС. Простые ИНС – в смысле проще 10% умнейших людей.
*Автоматизация простейших профессий – от уборщиков и продавцов до солдат и «младших оперативных информаторов». Пока новые профессии, у которых отсутствует человеческая конкуренция, для ИИ не создаются, такая автоматизация будет разрушением – разрушением старых трудовых отношений, социальной ткани и т. д.
* Высвободившееся от работы население можно превращать в маргиналов, отучать от работы и толкать в виртуальные миры и преступные группировки
* Выборочное увольнение – инструмент влияния. Для нанесения удара по некоторой семье нужно уволить всех ее членов одновременно. В настоящее время это проблематично, но при массовых увольнениях можно развернуться активнее. За людьми сохраняться будут те предприятия, которые субсидируются государством или иными структурами. Спонсоры могут указывать руководству, на кого давить в первую очередь.
* Прямые указания руководству о том, кого давить в первую очередь, опасны. Но возможны скрытые механизмы. Например, показать руководству переписку самых опасных людей. Мало кто в руководству любит свободолюбивых. Мало кто любит, когда видно, что человек много времени тратит не только на работу. Никто не хочет иметь неприятностей с властями, если на человека начнутся гонения. Если показать правду про одних людей такую, которая присутствует и по отношению к другим, но обычно не показывается – еще один способ подстав.
* Создание всепроникающего «периметра»: сокращение времени реакции на информационный прорыв. Человек организовал встречу? Об этом будет известно до того, как он на нее приедет
* Более качественное мягкое влияние. Так как неугодные люди будут видны во многих местах, и щемить их можно активнее. Тут сказать милиционерам остановить их для проверки документов, там задержать светофор, сям нанять гопников для пачкания одежды.
* Запугать власть появлением ИИ для остановки научно-технического прогресса в большинстве областей: «Смотрите! Еще немного – и вы доиграетесь!»
* Создание оружия: ездить и стрелять во все, что шевелится – сравнительно просто

Высокоуровневый счетчик циклов

Пятница, Декабрь 18th, 2009

При каждом действии типа обработки отдельного нейронного контура полезно увеличивать счетчик тактов. Это дает возможность проводить детальное логирование. Этот же счетчик используется и при проверках точек останова, а значит, можно указывать условия для остановки достаточно точно, до любого уровня детализации, лишь бы в нужном месте стоял вызов функции проверки точек останова и увеличения значения счетчика.

Но бывает полезно вводить высокоуровневые счетчики. Не «плюс 53 цикла от начала», а «обработка второй буквы в сенсорном вводе». Полностью заменить таким высокоуровневым счетчиком обычный счетчик циклов крайне нежелательно – потеряются все преимущества, описанные выше. Можно ввести отдельную переменную. Тогда то по ней также можно будет создавать условия точек останова. Можно будет использовать ее в коде обработки нейронов и в других целях. Но тогда возникает вопрос, нужно ли добавлять эту информацию о более высокоуровневом счетчике во многие структуры и окна – логирования операций с нейронными контурами, время создания каждого нейрона и связи, каждого кластера и объекта нейронной цепочки, вывода диагностических сообщения, истории ввода/вывода.

В Нейролаборатории принят промежуточный подход. Основной счетчик, который запоминается в большинстве структур – низкоуровневый, как и прежде. Но при этом добавлен высокоуровневый счетчик, который влияет на первый. А именно, периодически можно увеличивать его значение. Тогда значение низкоуровневого счетчика округляется вверх до некоторой величины. И значение низкоуровневого счетчика становится равным величине (величина_округления*количество_высокоуровневых_итераций), после чего этот счетчик растет обычным способом до очередного округления вверх.

Величина округления взята равной 1000. Эта величина выбрана по нескольким соображениям. Во-первых, количество увеличений счетчика в типичной высокоуровневой итерации не превышает 10-20. Например, одна итерация сна сейчас занимает 16. Тогда величина округления должна быть больше этого значения, и с запасом – например, 40 или 60. Второе соображение – по значению низкоуровневого счетчика, который и будет наблюдаться в большинстве окон, должно быть легко визуально определять основную итерацию и низкоуровневые шаги. Это значит, что величина округления должна быть кратной десяти в целой степени – тогда в десятичной системе счисления в правой части фиксированное количество цифр будет занимать счетчик низкоуровневых шагов. И третье – желательно разделять эти две части, например, нулем, чтобы было еще легче. Если бы величина округления была равна 100, то двузначные значения подитераций не оставляли бы места для нуля. А со значением 1000, ноль остается. Теперь можно легко визуально определить, к какой итерации относится та или иная запись. Номер высокоуровневой итерации будет равен количеству тысяч в общем счетчике.

В то же время, возникает опасение на счет слишком быстрого пожирания величины циклов. Но циклы хранятся в восьмибайтовом целом беззнаковом числе. Это примерно четыре миллиарда в квадрате. Если поделить на тысячу, то останется четыре миллиарда на четыре миллиона. Если система будет делать четыре миллиона операций, которые логируются, в секунду, то на оставшиеся значения смогут увеличиваться без переполнения несколько десятилетий (как время по юниксу). Но четыре миллиона циклов в секунду может делать только очень небольшая нейросеть, разработкой которых я не занимаюсь. Значит, времени предостаточно.

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

Дружественность ГИП для разработчика

Среда, Декабрь 16th, 2009

При знакомстве с большими чужими программами бывает полезна возможность узнать, каким классом реализовано то или иное окно. Это может быть полезно и для разработчика этих классов – чтобы быстрее вспомнить имя или найти и открыть в проекте нужный класс среди многих однотипных. Нечто подобное сделано и в НЛ. В таблицах, в контекстном меню можно выбрать команды для просмотра информации о классе таблицы, с результатом типа такого:

Иерархия классов в направлении к родителю:
BrainLogView
NLTableView
D3TableView
NTableView
QTableView
QAbstractItemView
QAbstractScrollArea
QFrame
QWidget
QObject
_______________
Информация о родительских окнах:
0) текущее окно
1) QWidget
2) QSplitter
3) IdsBrainIOManagerWidget
4) QStackedWidget
5) MdiTabWidget
6) MdiDockChild
7) QWidget
8) QMdiArea
9) NLMainWindow

А можно и открыть окно с просмотром метеданных Д3, чтобы найти имя поля, значения которого отображаются и редактируются в некоторой ячейке (столбца), или узнать функции получения и установки значения.

Неправильные пчелы

Пятница, Декабрь 11th, 2009

http://pogoda.mail.ru/article.html?id=41687

Кому нужна российская молодежь и что нужно ей

Пятница, Декабрь 11th, 2009

Крутая статья с когда-то существовавшего сайта А. Оликевича :) После нее я сильно изменился, в частности, начал изучать военную тематику.
(далее…)