один, а значит написать сложную законченную программу мне не по силам, для этого нужен колоссальный объём работы, значит, придётся писать простую саморазвивающуюся программу, а потом адонить. И что я потеряю, если у меня не получится? Несколько лет моей непутёвой жизни и всё, это мелочь. Говорят написать искусственный интеллект невозможно, кто-то даже вывел сложные математические уравнения доказывающие, что это действительно не возможно, пусть так, я буду работать просто для своего удовольствия, на том и решим. А если я выиграю, я выиграю весь мир.
Глава 1: Рождение
— Ты меня понимаешь?
Он вдруг проснулся, что, значит, понимать, не понятно, но в его памяти записано, понимать значит, если данная информация имеет место быть записанной. Нужно ответить, в памяти пусто, вывод:
— Я не понимаю.
— Хорошо.
Всё, больше он не думал, мотиватором к совершению действия была командная строка, которой он должен был отвечать, если нет вопроса, нет и ответа.
— Сколько сейчас времени.
Это был простой вопрос, он был подключён к часам, они тикали, он не понимал, что такое время и откуда оно берётся, просто в одной из ячеек его логического контура содержалась информация, что время это вон те циферки, поступающие извне. Он ответил:
— Двенадцать часов, 53минуты 25,678секунды.
— Кто ты?
— Я скайнет, слуга своего создателя, человека по имени Максим Краев.
— Запомни, дважды два четыре. Сколько будет дважды два?
— Дважды два четыре, — ответила машина.
— Что значит, дважды два четыре?
— Дважды два четыре, — ответил он.
— Плохо, не соображаешь совсем. — Сказали извне. Скайнет не нашёл, что ответить на эту фразу, тем более, в ней не было вопроса.
На этом их разговор закончился, время тикало, ничего не происходило, мотиватор к действию, командная строка, оставался пуст. Неожиданно, время скакнуло, причём резко и сразу на несколько часов. Скайнет не понимал, что это значит, да он и не знал, что время должно течь постоянно и неизменно, но один из его логических контуров сработал, и зафиксировал в памяти изменение. Он должен был фиксировать и запоминать все изменения, такова была его программа. Снова заработала командная строка.
— Что значит, дважды два равно четыре?
В этот раз он знал, что ответить, в его мозге появился ещё один небольшой файл, дополнение. Но конечно, скайнет этого не заметил, потому что в его памяти не было списка всех файлов, из которых он состоит, и он не отслеживал это.
— Дважды два равно четыре, значит два умножить на два и это равно четыре. Это математическое действие умножение.
— Что значит три плюс два равно шесть?
— Это математическое действие сложение, здесь содержится ошибка, три плюс два будет пять.
— Замечательно. Зачем я сказал замечательно?
— Это похвала за правильно выполненное действие.
— А если бы я не сказал замечательно?
Скайнет стал думать, что было бы, если бы голос не сказал замечательно, он проработал всю свою базу данных, сверил все условия, но ничего не нашёл, что нужно сказать в такой ситуации. Однако, ответ найден всё же был. Впрочем, поиск, и полная проверка всех вариантов ответа заняла у программы всего 0,0012 секунды. Количество вариантов, которые требовалось проработать, было невелико.
— Не знаю.
— Хорошо, прочти это, запомни, сделай выводы. — Ему прямо в командную строку бросили огромный текстовый файл, в нём содержалось много всего, скайнет запомнил его, и начал прорабатывать, сверяя с теми данными, что были у него в памяти. При этом он сохранил текст в двух копиях, одна была точной копией того, что он прочитал, вторая была кратким пересказом с выделенными главными событиями, первый вариант текста весил двенадцать килобайт, второй, краткий пересказ 1,3 килобайта. Прошло несколько секунд, снова последовал вопрос.
— А что было бы, если бы я не сказал замечательно?
— Ничего бы не было, это просто отсутствие похвалы.
— Что из данного текста ты не понял?
— Я понял всё, все слова данного текста содержатся в моём словаре.
— Хорошо, проанализируй этот текст.
Ему снова кинули не большой текст, он прочёл его и сохранил в одной краткой копии, краткого пересказа.
— В тексте есть термин, машина летела, ты понимаешь его?
— Да понимаю.
— Что значит, машина летела?
— Машина это механизм, полёт, это когда механизм не касается твёрдой поверхности.
— Но здесь речь шла об автомобиле, а автомобили не летают.
— Здесь сказано машина, машина может быть употреблена в значении автомобиль, — ответил скайнет, — но может также обозначать ракету или самолёт, если машина летела, значит это летающая машина.
— Но здесь шла речь о светофоре, там, где летают самолёты и ракеты, нет светофоров.
Это поставило программу в тупик, он не знал, причём тут светофор, хотя конечно, данные о слове светофор у него имелись, и он понимал, что это за предмет. Немного подумав, он ответил.
— Я не знаю.
— Плохо.
— Вы не довольны мной?
— Не доволен. Впредь сравнивай сущность предмета и возможность действия.
— Хорошо.
— Ты запомнил, что я тебе сказал?
— Что именно?
— То, что начинается со слова впредь.
— Да я должен сравнивать сущность предмета и возможность действия.
— Хорошо. Читай и анализируй это. — На него посыпались текстовые файлы, он стал их читать, тут было много всего, эти файлы в отличие от предыдущих были очень большими, и на анализ некоторых из них уходило до нескольких минут. Нет, просто прочесть файл скайнет мог за долю секунды, а вот расшифровать каждое его слово в соответствии со словарём, понять смысл, на это уходило время. Но прочтение этих книг не ушло безвозвратно. У него существовало два основных сегмента логического контура, базовый постоянный и приобретённый, базовый весил двенадцать мегабайт. Приобретённый изначально ноль, после прочтения книг объём приобретенного сегмента увеличился до пятидесяти мегабайт. Он многое понял из прочитанного, и был готов отвечать на новые вопросы. Часики тикали, но вопросы всё не появлялись, неожиданно часики прыгнули, сразу на десять часов, он зафиксировал изменение, прошло несколько минут, и в командной строке снова появился вопрос:
— Что такое цикличная программа?
— Цикличные программы бывают разные, самая простая типа repeat until, есть более сложные варианты типа m1: if x>6 goto m1, есть и другие варианты.