LINUX.ORG.RU
ФорумTalks

ТЗ: разработка биосферы


1

5

Представим себе ТЗ

Дана планета диаметром 8000 км с атмосферой азота, углекислого газа и серной кислоты, имеется океан, поверхность сложена кремнезёмом.

Дан интернет со всеми его ресурсами по состояние на сегодня, включая все выложенные в нём книги.

Необходимо за 5 миллиардов лет создать живую природу в том виде, как мы её наблюдаем,со всем разнообразием видов (жизнь разработчика может считаться вечной, но объём памяти ограничен тем, что можно выучить за 1000 лет, дальше происходит вытеснение наиболее редко используемых знаний, как в кеше; скорость мышления соответствует 70-летнему возрасту. Можно использовать внешние носители и поисковые системы)

Инсталляция возможна только из Космоса с помощью пыли и метеоритов (масса метеоритов не ограничена, температура приземления + 40С, ускорение - 10000g).

Сколько человек взяли бы вы в свою команду, сколько компьютеров, какое оборудование и какие методологии работы применили бы?

★★★★★
Ответ на: комментарий от den73

приливы\отливы сыграли приличную роль в развитии и эволюции.

craftwr
()
Ответ на: комментарий от den73

Вот можно поконкретнее об этом?

должен вас разочаровать под этим абстрактным понятием «биоробот» подразумевается замкнутая система, поглощающая из окружающей среды определённые химические соединения в определённом объёме и выпускающая в окружающую среду другие химические соединения, попутно выполняя достаточно простую замкнутую последовательность действий, в том числе по клонированию самой системы, то есть банальный одноклеточный организм (вирусы бактерии и прочее) на второй стадии работы над ТЗ и симбиоз взаимодействующих колоний одноклеточных организмов, т.е. многоклеточные организмы во всём своём многообразии на третьей стадии работы над ТЗ.

если возможно уточнить рамки возможностей воздействия на планету то можно пофантазировать на тему методов управления эволюцией на планете.

в изначальном ТЗ было сказано, что единственный способ воздействия на планету, это точечные целенаправленные бомбардировки планеты астероидами, без уточнения возможностей контроля состава астероида

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

конкретных алгоритмов описать не могу так как их пока что просто не существует.

mm3 ★★★
()
Ответ на: комментарий от mm3

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

Меня это интересует, для начала, именно как IT проект по разработке системы организмов. Биосфера чем-то аналогична операционной системе, только она ГОРАЗДО веселее.

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

Объём бинарного кода, например, человека, если биологи не врут - 3 млрд пятиричных «битов», это составляет примерно 150Мбайт (я не ошибся?). Похоже на инсталлятор небольшой операционной системы. А видов - миллионы. Какую систему конфигурирования можно применить для поддержания библиотеки исходников такого масштаба?

Должны быть способы повторного использования (шаблоны проектирования), способы навигации.

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

Вопрос - как всё это организовать.

И, самое главное, сколько человек нужно?

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

И, самое главное, сколько человек нужно?

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

но вернёмся к основной теме.

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

идём дальше

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

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

mm3 ★★★
()
Ответ на: комментарий от mm3

разумного газообразного сверх существа способного силой мысли создавать
такие планеты

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

если не останавливать прогресс

Вот и я, собственно, про то и хотел сказать. Вся эта тема началась с чтения предисловия к книге Свидерского «Полет насекомого». Там сравнивается авиация и летающие живые существа. Ясно, что авиация мало чем может похвастаться, если её сравнивать с живыми существами, но есть приводится и оправдание: авиации всего несколько десятков лет отроду, а насекомые летают уже несколько сотен миллионов. И тут я задумался. Раньше эти миллионы мне представлялись абстракциями с нулями, а теперь я поделил их на длительность своей карьеры и на то, что я успел понять и сделать за это время (около 20 лет). И получилось, что, если время не ограничивать, задача разработки биосферы становится не столь ужасной.

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

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

Нет, вот это как раз по ТЗ нельзя, это будет плагиат. Суть задачи состоит в том, что нужно получить применение физических эффектов и инженерных приспсоблений в ассортименте (зрение, полёт, слух, речь, ферменты, теплокровность, трубопроводные системы и насосы, самоисцеление ран, саморазвивающийся из одной клетки организм и среда для этого, память, целеполагание, декларативные ЯП и т.п.), но код должен быть лицензионно чистым.

а это девелоперские и тестерские планеты,

Чем-то напоминает кришнаитские книги. «Адские планеты находятся в заднице у Пуруши», как я прочитал на одном форуме. Может, они не адские, а просто чьи-то альфа-версии?

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

Здесь, кстати, возможен и такой поворот: не является ли индустриальный образ мыслей засаженным извне патчем? Белковая жизнь на планете есть давно, а металлургию занесли относительно недавно. Огненно-металлическая жизнь использует более высокие температуры и более мелкие частицы, поэтому они дают более высокую плотность энергии и скорость мышления. Кажется, что при должном совершенствовании огненно-металлическая жизнь способна полностью вытеснить белковую, например, в области транспорта это случилось уже давно:

«Милый, милый, смешной дуралей, Ну куда он, куда он гонится? Неужель он не знает, что живых коней Победила стальная конница?»

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

Но это меня понесло в сторону.

Что думаете о задаче при условии, что ДНК и образцы существ недоступны?

Время в миллион лет выбрано из за низкой скорости интеграции патчей

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

den73 ★★★★★
() автор топика
Ответ на: комментарий от mm3

среда компьютерного моделирования, дизайна, да и девелопмента тоже

Вот тут есть методологический вопрос. Есть, допустим, зяблик, а есть воробей. Это #ifdef Зяблик? Как поддерживать конфигурации, учитывая, что вариантов очень много?

den73 ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Вот цифра для справки из новости: Создатель Linux получил технологическую Премию тысячелетия (комментарий)

Технологическая академия Финляндии отмечает, что программисты потратили на улучшение ядра 73 тысячи человеко-лет.

Конечно, до совершенства живой клетки этому коду далеко, но масштаб довольно значимый. И он теряется на фоне 5 миллиардов лет - всего 0.0015% .

При этом средства разработки находятся на пещерном уровне: они очень мало пользовались метапрограммированием, т.к. ядро написано на С и Ассемблере. Даже если бы они воспользовались макросами типа лиспа (а не убогим m4/cpp) и средствами инкрементной разработки, как у того же лиспа, количество человеко-лет уже резко сократилось бы.

Как только будут развиты и массово применены такие вещи, как инкрементная верификация кодов с помощью автоматических доказателей теорем и прочие инструменты статического/динамического анализа, работа ещё намного ускорится.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Ну а ООП подход, чем плох для такой сложной системы? Тем более, что как раз здесь есть очень чёткое разделение на родитель-потомок. Конечно, это может быть не единственным инструментом.

KivApple ★★★★★
()
Ответ на: комментарий от KivApple

Все используемые в ИТ технологии разработки можно разбить на несколько видов по степени их интеллектуальности:

- технологии, решающие задачи разработки за человека. К ним относится make, sql-сервер, apt, оптимизирующие компиляторы, экспертные системы В этих технологиях заключаются знания, которых нет у их пользователя и дан интерфейс к ним.

- технологии, поддерживающие человека в его рутинных действиях. К ним относятся компиляторы, не включая оптимизации, макропроцессоры (cpp,m4,defmacro), дизассемблеры и отладчики, поисковые системы (Yandex Desktop), системы тестов, сборщики мусора. Эти средства дают человеку инструменты, повышающие производительность его труда, но они не содержат алгоритмов решения нетривиальных задач, требующих размышления, а не просто большого числа рутинных операций.

- дисциплинирующие технологии. К ним относятся проверка типов и ООП. Проверка типов (я не говорю про Хаскель) и ООП ничего не дают, кроме дисциплины. В то время как оптимизатор SQL выбирает лучший способ решения запроса, а механизм многопоточности SQL умеет ловить дедлоки с минимальными потерями, ООП за нас ничего не делает, а лишь даёт нам правила, по которым мы сами должны действовать. Если мы напишем в ООП неоптимальный с точки зрения архитектуры данных код, никто его за нас не с оптимизирует. Если мы напишем программу с дедлоками, она зависнет. ООП - лишь методология разработки и свод правил для человека, она может повысить лишь качество кода и отчасти помочь повторному использованию, но ни скорость разработки кода, ни лёгкость его отладки она не увеличит.

Вот почему я никогда не ценил ООП и всегда смеялся над теми, кто провозносил его как панацею. Равно как мне неясно, почему апологеты некоторых языков так рьяно поклоняются системе типов.

Конечно, я сильно упрощаю картину и кое-где немного искажаю её (оптимизирующий компилятор всё же постарается улучшить наш код), но я надеюсь, что понятно, что я имел в виду.

Если пойти дальше по пути усовершенствования средств разработки в сторону их интеллектуальности и способности решать за человека всё более дорогостоящие и сложные задачи, то мы как раз и приходим к средствам статического анализа программ, которые в более общем виде требуют доказательства теорем о свойствах кода. Далее к анализу естественным образом добавляется синтез. Такие средства есть уже сегодня (например, acl2), но, судя по всему, они ещё слабы и не применяются в мейнстриме. Во всяком случае, мне об этом ничего не известно.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Чем-то напоминает кришнаитские книги. «Адские планеты находятся в заднице у Пуруши», как я прочитал на одном форуме. Может, они не адские, а просто чьи-то альфа-версии?

а откуда такая уверенность что вы живёте на релизной планете? может земля просто ферма по разведению тараканов?!?

зы. некропостеры ^__^

mm3 ★★★
()
Ответ на: комментарий от KivApple

Но вообще, я не имел в виду сказать, что ООП плох «вообще», как таковой. Может быть, в данном случае он и подходит. Другое дело, что его нужно сочетать с более продвинутыми техниками.

#ifdef - более продвинутый вариант (метапрограммирование), поэтому, я его и привёл в качестве примера.

В любом случае, интересный вопрос, содержит ли зяблик код воробья? Если предположить #ifdef, то может не содержать. Если предположить ООП, то, по умолчанию, он содержит и код воробья, и код зяблика, а реальный вид определяется в ключе командной строки.

den73 ★★★★★
() автор топика
Ответ на: комментарий от mm3

а откуда такая уверенность что вы живёте на релизной планете?

У меня совершенно нет такой уверенности. Более того, если предположить, что земля - это тестовый полигон, то, это забавным образом объясняет очень многие вещи, например, судьбу. Судьба, при таком рассмотрении - это тестовый сценарий.

den73 ★★★★★
() автор топика
Ответ на: комментарий от mm3

вообще, есть многие люди (с моей точки зрения, они либо тупы, либо агенты Зла), которые мыслят слишком геоцентрично и антропоцентрично. Они по умолчанию рассматривают мир с таких точек зрения: 1. человек - самое совершенное, что есть в природе. 2. других форм жизни нет. 3. и даже (sic!) других обитаемых планет во Вселенной нет.

Все эти утверждения, по меньшей мере, смелы в наше время.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

den73

это забавным образом объясняет

это вообще ничего не объясняет, просто даёт повод для забавных аналогий

unC0Rr ★★★★★
()
29 декабря 2012 г.

солярис есть этап в эволюции жизни на нашей Земле.

из

Дан интернет со всеми его ресурсами по состояние на сегодня, включая все выложенные в нём книги.

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

а так текущих знаний в инете достаточно для ....

основное затруденение как раз в компактификации знаний для обозримости силами одного человека - малой группы - для этого может понадобится выведение ейлеров/рамануджанов/платонов/Леонардо из пизы.

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

для отдельной евгеники исполнителей .

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

компактификации знаний для обозримости силами одного
человека - малой группы

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

den73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.