Архив автора: admin

Генетический алгоритм: эволюция помогает подросткам

Привет! Сегодня мы с вами обсудим один замечательный алгоритм и с его помощью спроектируем решение проблемы построения цепочки действий.

Генетический алгоритм

Генетический алгорим (далее ГА) — это метаэвристический (metaheuristic) универсальный (general-purpose) алгоритм.

Метаэвристические алгоритмы — это мощнейший, популярный класс оптимизационных методов, сила таких алгоритмов в способности решения сложных задач без знания пространства поиска. Фактически такие алгоритмы ищут случайным образом решение и останавливаются при достижении какого-либо условия или числа операций. Иногда можно доказать, что найденное решение близко к оптимальному, но на практике, оптимальное решение нужно далеко не всегда. Вот неполный перечень метаэвристических алгоритмов: алгоритм оптимизации муравьиной колонии, эволюционные вычисления, включая ГА, итеративный локальный поиск, метод имитации отжига, алгоритм поиска с запретами и другие.

Алгоритм считается универсальным (общего назначения), если вы можете взять различные задачи и реализовать с его помощью решение.

Генетический алгоритм основывается на процессе эволюции и трёх основных процессах: селекция (выбор лучших особей), скрещивание (выбор двух случайных особей и смешивание их) и мутации (случайные изменения особей).

Генетический алгоритм

 

В отличии от многих алгоритмов поиска решений генетический алгоритм зачастую способен выбраться из локального экстремума благодаря процессу мутации. Почему это важно? В практических задачах мы постоянно встречаем ситуацию, когда при поиске решения путем серии жадных действий (на каждой итерации мы выбираем лучшее из доступного) мы приходим к локальному экстремуму (максимуму или минимуму целевой функции (ЦФ), в зависимости от того, что мы ищем). В локальном экстремуме ЦФ мы получаем решение, которое может быть очень далеко от оптимального, поэтому для качественного исследования пространства решений существует, например, метод имитации отжига, а в случае генетического алгоритма это процесс мутации.

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

Будьте готовы, что теория иногда разнится в терминах.

Проблема

Представим, что у нас есть проблема: мама отправляет за хлебом, нужно встретиться с друзьями, магазин закрывается рано, а еще нужно успеть погулять с девочкой. Вероятно, вы думаете, что такие проблемы никого не волнуют, но если вы вспомните каково это быть подростком, то думаю, что проблема вполне реальна. Также в качестве входных данных нам дается матрица весов. Если мы проиндексируем наши действия, как 0 (сходить за хлебом), 1 (встретиться с друзьями) и 2 (погулять с девочкой), то получится следующая матрица весов. Индекс строки будет означать, что действие выполнится первым, а индекс столбца — это действие которое будет выполнено следом.

Содержимое клеток означает следующее:

  • позитивное значение — действие желательно пропорционально значению;
  • негативное значение — действие нежелательно пропорционально значению;
  • 0 — действие может быть выполнено без какого-либо оттенка;
  • «-» — действие не допустимо.
    0     1     2
------------------
0| - -0,5 -1
1| 0 - 0.5
2| 0 0.5 -

Взглянем на матрицу. Выполнить тоже самое действие невозможно (см. на главную диагональ). Судя по первому столбцу, после любого действия допустимо пойти за хлебом (индекс 0), но мы знаем об ограничении, что магазин работает не долго и покупка хлеба не может быть концом цепочки действий. При этом, судя по первой строке, покупка хлеба первым действием всегда имеет оттенок нежелательности.

Решение

Спроектируем решение с помощью генетического алгоритма. Как вы уже знаете нам нужно создать случайную популяцию, но что будет считаться индивидом? Нам необходимо построить наилучшим образом цепочку действий, т.е. чтобы сумма коэффициентов из матрицы с весами была максимальна. Индивидом в нашем случае является последовательность действий, т.е. каждый генотип содержит одну хромосому, которая будет иметь 3 гена, которые и представляют из себя цепочку. Например, индивид с генотипом с одной хромосомой, который содержит последовательность генов «1, 2, 0» представляет из себя решение «встретиться с друзьями -> встретиться с девочкой -> сходить за хлебом».

Как оценить такое решение? Для этого нам нужно определить целевую функцию (в генетическом алгоритме она называется функцией приспособленности). Простым языком, это функция, результат которой дает нам представление о том на сколько хорош о наше решение (особь). В нашем случае, целевая функция это сумма весов переходов. Мы должны обойти последовательность и в результате переход 1->2 дает 0.5, а 2->0 дает 0, итого, в сумме целевая функция дает значение 0.5.

Селекция

Как вы понимаете, теперь мы умеем оценивать «лучших» особей, однако, подходов к селекции всё равно много. Простейший способ выбрать лучших — отсортировать особей по значениям целевой функции и выбрать N штук с наибольшим значением. Такой селектор называется Truncation Selector. Еще один интересный и популярный экземпляр это Tournament Selector. Всё зависит от решаемой задачи. Как вы понимаете, после селекции в популяции следующего поколения остается свободное место и, в зависимости от подхода, новое поколение может быть наполнено либо дубликатами лучших особей, либо случайными особями. Я нашел интересную статью в которой разбираются 6 популярных методов для селекции. Вы сможете скачать эту статью по ссылке.

Скрещивание

Для операции скрещивания также существует множество подходов. В англоязычной википедии есть не плохое описание некоторых из них (ссылка). Для рассматриваемого случая с цепочкой действий один из лучших подходов к скрещиванию называние Cycle Crossover. Как он работает? Когда мы скрещиваем две особи в их генотипах мы находим общий цикл и сохраняем его для потомков, а вот гены не задействованные в циклах меняются местами. Для цепочек из трёх генов такой подход, конечно бесполезен, как и не оправдано использование этого алгоритма, но всё же. В тот момент, когда я пытался осознать этот способ скрещивания лучше всего мне помогло вот это видео на YouTube:

Cycle Crossover

 

Мутация

В нашем случае мутация это случайный обмен случайных позиций для двух генов, т.е. это обычная смена последовательности. Здесь даже объяснения не нужны: была хромосома 12-0, мы сделали обмен для 0 и 1 позиции (ранее случайно определенных) и получили мутировавшую хромосому 21-0. Обычно, вероятность мутации сильно ниже вероятности скрещивания.

Реализация

От такого количества теории можно устать, однако, это всё что нужно знать для начала пути в этот невообразимый мир эволюции.

Я подскажу вам одну отличную библиотеку для Java, которой сам пользовался: jenetics.

Примеры работы с такой библиотекой вы можете найти в документации к ней, либо вот здесь.

Реализовать решение задачи, которую мы рассматривали в ходе статьи довольно просто и если у вас действительно есть желание, то это будет исходной точкой для вас (домашним заданием). Все данные на руках, задача описана, вперед!

При подготовке к статье в качестве теоретических оснований я использовал: http://tvim.info/files/56_72_Shcherbina.pdf

Автор: Roman Brovko

Размер обуви США на «Алиэкспресс»

размер обуви сша на алиэкспресс таблица

«Алиэкспресс» представляет собой крупную торговую площадку, которая существует в интернете с 2010 года. Интернет-магазин активно расширяет свою аудиторию и предлагает посетителям широкий ассортимент разнообразных наименований по приятным ценам. Текущие предложения включают бытовую технику, компьютерные девайсы и программное обеспечение к ним, одежду и обувь для всей семьи. Читать

10 простых вещей, которые мужчины ожидают от своей женщины

Как и у женщин,  у мужчин также есть свои эмоциональные потребности, о которых им часто приходится забывать из-за стереотипов «мужественности»

Вот 10 вещей, без которых нельзя обойтись в отношениях, по мнению мужчин!

1. Прекратить драму 

У каждого могут быть различные причины для того, чтобы «напасть» на своего партнера, но это же не значит, что нужно играть драму перед друзьями или членами семьи! Читать

Болезнь Аддисона или надпочечниковая недостаточность

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

Надпочечники представляют собой две треугольные железы, которые лежат над каждой почкой и примерно размером с большой палец. Каждая надпочечниковая железа состоит из наружной части, называемой корой надпочечников, и внутренней частью, называемой мозговым веществом надпочечников. Гормоны, которые выделяются из надпочечников, включают кортизол, адреналин и альдостерон. Эти гормоны помогают регулировать обмен веществ, кровяное давление и реакцию организма на стресс. Другой гормон, вырабатываемый надпочечниками, дегидроэпиандростерон (DHEA), используется для создания андрогенов и эстрогенов, половых гормонов. Читать

Замена вздутых конденсаторов на материнской плате.

Принесли компьютер и рассказали, что он плохо работает, включается не с первого раза, тормозит, не работают два USB-порта.

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

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

Они вздулись и повзрывались.

Конденсаторы нужно заменить и посмотреть, как ПК будет себя вести после этого.

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

Подготавливаем конденсаторы для замены. Номинал конденсаторов написан на их корпуса. В нашем случае это 2200uF 6,3V. Покупаем такие же или очень близкие по номиналу. Напряжение меньше 6,3V не подойдет. Больше можно, но не меньше. Конденсаторы с других старых мат. плат брать не рекомендую. Они внешне могут быть нормальные, а внутри уже покойники или близки к этому состоянию.

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

После удаления старых конденсаторов вставляем и припаиваем новые. Необходимо соблюдать полярность при монтаже электролитов  не забываем об этом. На плате подписано где плюс, где минус. На самом конденсаторе полоска —  это минус.

Собираем и проверяем работу. ПК запустился, но остановился при загрузке с сообщением Floppy disk fail (40). Для продолжения нужно нажать F1. Система проверяет дискетный дисковод и не находит.

Каждый раз жать F1 неудобно. Идем в BIOS и выставляем опцию Boot Up Floppy Seek в положение Disabled (отключено). Сохраняем настройки F10.

Теперь проверка дискетного дисковода не будет проходить, ПК загрузился и стал нормально работать. После нескольких часов тестов он был возвращен своему владельцу (разогнали его немножко : )



2017-10-30T20:46:36
Системный блок

Конец эры антибиотиков

1

Когда Александр Флеминг в 1928 году, обнаружил в своей лаборатории стол, заражённый плесенью Penicillium notatum, он начал новую эру превосходства науки над природой. С тех пор антибиотики спасли миллионы жизней и избавили огромное количество людей от страданий. Но с самого начала этой эры учёным было известно, что ей придёт конец. Они просто не знали, когда именно…

Сопротивляемость бактерий антибиотикам естественна и неизбежна. По воле случая у нескольких бактерий окажутся гены, способные защитить их от лекарств, они передадут эти гены дальше – и не только своему потомству, но иногда и соседям.

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

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

В 2013 году тогдашний директор Центра по контролю и предотвращению заболеваний (CDC) Том Фриден сказал журналистам: «Если мы не будем вести себя осторожно, вскоре мы окажемся в постантибиотической эпохе». Сегодня, всего лишь четыре года спустя, это агентство утверждает, что мы в ней оказались.

1 aIzxJ08IMVJ3vx6roK1g_A

«Мы говорим это потому, что появилась универсально стойкая бактерия», – говорит Джин Пател [Jean Patel], руководящая отделением CDC по стратегии и координации использования антибиотиков. «Люди умирают из-за отсутствия антибиотиков, способных лечить их инфекции – инфекции, которые не так давно было очень легко излечивать».

В прошлом августе женщина возрастом за 70 попала в госпиталь в Рено, шт. Невада, с бактериальной инфекцией бедра. Бактерия принадлежала к классу особенно упорных микробов, известных, как карбапенем-устойчивые энтеробактерии (CRE). Но эту бактерию не брали ни карбапенемы, ни тетрациклин, ни колистин, и вообще никакой антибактериальный аппарат из 26-и имеющихся в продаже. Через несколько недель она умерла от септического шока.

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

Ей это точно известно, потому что она уже пыталась. В 2002 году первый стафилококк, устойчивый к ванкомицину, проявил себя у 40-летнего мужчины из Мичигана с хронической язвой ноги. Ситуация казалась весьма печальной: стафилококк – одна из самых распространённых инфекций у людей, а ванкомицин – самый распространённый антибиотик для его лечения.

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

Original Title: Lab_029

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

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

И хотя они ещё не знают, почему, одна из гипотез говорит о том, что появление этого резистентного гена не проходит для бактерии бесследно. Он сделал стафилококк невосприимчивым к его заклятому врагу, одновременно усложняя процесс выживания вне человеческого тела. Больничные правила, время года, география также могут влиять на распространение. Это похоже на попытки предсказания погоды.

«Не получится сде
лать такие предсказания на бумаге или путём пристальных размышлений, – говорит Брюс Ли [Bruce Lee], исследователь общественного здравоохранения в институте Джона Хопкинса. Он работает с организациями, занимающимися здравоохранением в Чикаго и округе Ориндж, предсказывая наиболее вероятные пути распространения CRE – бактерий того типа, что убила женщину в Неваде – в случае их появления в больницах.

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

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

В исследовании, опубликованном Ли в прошлом году, он описывает вероятность распространения CRE в 28 больницах и 74 частных лечебницах округа Ориндж. В этой модели у каждой виртуальной больницы было прописано количество коек, совпадающих с количеством коек в реальных учреждениях, а также вся информация по поводу связности учреждений.

Screen Shot 2017-02-01 at 10.40.06 AM

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

Он обнаружил, что без усиления мер по контролю, например, регулярной проверки пациентов на сопротивляемость и карантине переносчиков, CRE станет эндемическим заболеванием — постоянно присутствующим – практически во всех больницах округа Ориндж через десять лет.

А после того, как CRE проникнет в систему здравоохранения, от него будет сложно избавиться. „Это как пытаться прогнать из дома термитов, – говорит Ли. – Как только они пробираются туда, где всё связано со всем, они становятся трудноизлечимой частью экосистемы“.

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

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

Чтобы держать руку на пульсе, в прошлом году агентство потратило $14,4 млн на создание сети из семи местных лабораторий, способных проводить генетическое тестирование бактериальных проб, взятых из больниц. Сейчас они претворяют в жизнь программу, которая когда-нибудь сможет связать все больницы в США с системой слежения CDC напрямую, чтобы автоматически отмечать каждое произошедшее в США событие, связанное со стойкими к антибиотикам бактериями, в реальном времени.

Public Pool Violations

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

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


link