> Компьютерная программа сможет эволюционировать только в том случае, если она написана в вырожденных кодах.
Я так подозреваю, что вы в глубине души имели в виду устойчивость кода к ошибкам. Вырожденность как таковая - это в этом смысле не панацея, запросто можно представить выродженный язык, неустойчивый к ошибкам. Действительно, это одна из проблем на пути к искусственной жизни, но далеко не единственная. Навскидку вспоминается следующее:
- Проблема языка представления генома. Сюда же входит и устойчивость к ошибкам, но не только. Надо, чтобы язык обладал выразительной мощностью, то бишь чтобы сложные концепции выражались короткими выражениями. Сюда же модульность и устойчивость к кроссинговеру - чтобы в результате оного чаще появлялись осмысленные варианты, а лучше - варианты с новым смыслом.
- Проблема среды. Как правило, искуственная эволюция через некоторое время достигает потолка своего развития - мутации происходят, отбор идёт, но ничего принципиально нового уже не возникает. Отчасти в этом может быть виноват язык, когда более хороший вариант генома настолько далёк, что смутировать до него фактически невозможно. Однако зачастую в этом виновата и среда, которая попросту не поощряет более сложное поведение. То бишь надо конструировать такие задачи, в которых более "интеллектуальные" агенты имели бы преимущество перед менее интеллектуальными, что также непросто.
- Проблема разнообразия. Искусственная эволюция имеет тенденцию сходиться к единственному локальному оптимуму, из которого выбраться уже маловероятно. Тогда как ежели бы у нас было большое разнообразие непохожих друг на друга геномов, то эта вероятность была бы не в пример больше. Помимо изобретения задач, способствующих большему разнообразию, есть ещё путь - сделать так, чтобы в одном и том же мире было множество различных задач (а может быть, даже и языков представления генома), распределённых пространственно (скажем, сделать проект распределённых вычислений, и чтобы задачи/условия на каждом компьютере задавались индивидуально, при этом бы шла миграция агентов между компьютерами). Так мы убиваем трёх зайцев - во-первых, в разных условиях будут отбираться различные геномы, во-вторых, будет выгодно обладать высокой приспосабливаемостью к новым условиям (а это фактически интеллект), в-третьих, так можно будет сравнивать, в каких условиях лучше происходит прогрессивная эволюция. Подобного рода проектов я ещё не видел. У меня у самого был подобный проект, но он заглох в силу недостатка у меня программистских и прочих способностей, но я всё ещё тешу себя надеждой.
- Проблема взаимодействия агентов. Интуитивно понятно, что лучше, когда агенты могут общаться друг с другом. Однако, во-первых, они вовсе не обязательно захотят общаться - лично я пока что не встречал моделей, где бы возникала выгодность общения, ежели она только не задана априорно. Во-вторых, ежели они таки научатся общаться, может получиться ещё веселее - какой-то один клон, пользуясь преимуществом коллективности, может вытеснить все остальные, и тогда плакало наше разнообразие. А вообще это довольно интересная тема - из области эволюционной теории игр.
- И наконец, допустим, что мы всё вышеупомянутое учли и сделали свою мегасистему. Что мы увидим? Биты с байтами, какие-то графики. Первые несколько недель мы, несомненно, будем радоваться. А затем увидим, что графики-то наши вышли на плато. Или не вышли, а пришли к каким-то хаотическим колебаниям. И тогда во весь рост встанет вопрос - что на самом деле происходит в нашей системе? На правильном ли мы пути? Ежели нет, то куда надо сворачивать? И оказывается, что ответить на эти вопросы не так-то просто. Как заметили ещё Пригожин сотоварищи, даже простые системы могут обладать сложным поведением. А у нас система сложная - мы сами её такой сделали, и видимо, иначе не получится. Я бы сказал, это главное проклятие искусственной жизни на настоящем этапе. Лечится, видимо, пропагандой популяционной генетики, эволюционной теории игр и неустанного построения простых моделей для каждого наблюдаемого феномена.
Ну вот, я надеюсь, вы осознали, какое это непаханное поле. Люди этим занимаются - меньше, нежели хотелось бы, но достаточно, чтобы было нельзя ознакомиться со всеми работами.
Re: оффтоп о Грихана псто
Date: 2011-11-24 09:18 pm (UTC)Я так подозреваю, что вы в глубине души имели в виду устойчивость кода к ошибкам. Вырожденность как таковая - это в этом смысле не панацея, запросто можно представить выродженный язык, неустойчивый к ошибкам. Действительно, это одна из проблем на пути к искусственной жизни, но далеко не единственная. Навскидку вспоминается следующее:
- Проблема языка представления генома. Сюда же входит и устойчивость к ошибкам, но не только. Надо, чтобы язык обладал выразительной мощностью, то бишь чтобы сложные концепции выражались короткими выражениями. Сюда же модульность и устойчивость к кроссинговеру - чтобы в результате оного чаще появлялись осмысленные варианты, а лучше - варианты с новым смыслом.
- Проблема среды. Как правило, искуственная эволюция через некоторое время достигает потолка своего развития - мутации происходят, отбор идёт, но ничего принципиально нового уже не возникает. Отчасти в этом может быть виноват язык, когда более хороший вариант генома настолько далёк, что смутировать до него фактически невозможно. Однако зачастую в этом виновата и среда, которая попросту не поощряет более сложное поведение. То бишь надо конструировать такие задачи, в которых более "интеллектуальные" агенты имели бы преимущество перед менее интеллектуальными, что также непросто.
- Проблема разнообразия. Искусственная эволюция имеет тенденцию сходиться к единственному локальному оптимуму, из которого выбраться уже маловероятно. Тогда как ежели бы у нас было большое разнообразие непохожих друг на друга геномов, то эта вероятность была бы не в пример больше. Помимо изобретения задач, способствующих большему разнообразию, есть ещё путь - сделать так, чтобы в одном и том же мире было множество различных задач (а может быть, даже и языков представления генома), распределённых пространственно (скажем, сделать проект распределённых вычислений, и чтобы задачи/условия на каждом компьютере задавались индивидуально, при этом бы шла миграция агентов между компьютерами). Так мы убиваем трёх зайцев - во-первых, в разных условиях будут отбираться различные геномы, во-вторых, будет выгодно обладать высокой приспосабливаемостью к новым условиям (а это фактически интеллект), в-третьих, так можно будет сравнивать, в каких условиях лучше происходит прогрессивная эволюция. Подобного рода проектов я ещё не видел. У меня у самого был подобный проект, но он заглох в силу недостатка у меня программистских и прочих способностей, но я всё ещё тешу себя надеждой.
- Проблема взаимодействия агентов. Интуитивно понятно, что лучше, когда агенты могут общаться друг с другом. Однако, во-первых, они вовсе не обязательно захотят общаться - лично я пока что не встречал моделей, где бы возникала выгодность общения, ежели она только не задана априорно. Во-вторых, ежели они таки научатся общаться, может получиться ещё веселее - какой-то один клон, пользуясь преимуществом коллективности, может вытеснить все остальные, и тогда плакало наше разнообразие. А вообще это довольно интересная тема - из области эволюционной теории игр.
- И наконец, допустим, что мы всё вышеупомянутое учли и сделали свою мегасистему. Что мы увидим? Биты с байтами, какие-то графики. Первые несколько недель мы, несомненно, будем радоваться. А затем увидим, что графики-то наши вышли на плато. Или не вышли, а пришли к каким-то хаотическим колебаниям. И тогда во весь рост встанет вопрос - что на самом деле происходит в нашей системе? На правильном ли мы пути? Ежели нет, то куда надо сворачивать? И оказывается, что ответить на эти вопросы не так-то просто. Как заметили ещё Пригожин сотоварищи, даже простые системы могут обладать сложным поведением. А у нас система сложная - мы сами её такой сделали, и видимо, иначе не получится. Я бы сказал, это главное проклятие искусственной жизни на настоящем этапе. Лечится, видимо, пропагандой популяционной генетики, эволюционной теории игр и неустанного построения простых моделей для каждого наблюдаемого феномена.
Ну вот, я надеюсь, вы осознали, какое это непаханное поле. Люди этим занимаются - меньше, нежели хотелось бы, но достаточно, чтобы было нельзя ознакомиться со всеми работами.