Тест Тьюринга

Если компьютер может работать так, что человек не в состоянии определить, с кем он общается — с другим человеком или с машиной, — считается, что он прошел тест Тьюринга.

Разумные, подобные человеку машины на протяжении многих десятилетий были одной из основных тем научно-фантастических произведений (см. Три закона робототехники). С момента зарождения современной вычислительной техники умы людей занимал вопрос: можно ли построить машину, которая могла бы в чем-то заменить человека. Попыткой создать твердую эмпирическую почву для решения этого вопроса и стал тест, разработанный Аланом Тьюрингом.

Первый вариант теста, опубликованный в 1950 году, была несколько запутанным. Современная версия теста Тьюринга представляет собой следующее задание. Группа экспертов общается с неизвестным существом. Они не видят своего собеседника и могут общаться с ним только через какую-то изолирующую систему — например, клавиатуру. Им разрешается задавать собеседнику любые вопросы, вести разговор на любые темы. Если в конце эксперимента они не смогут сказать, общались ли они с человеком или с машиной, и если на самом деле они разговаривали с машиной, можно считать, что эта машина прошла тест Тьюринга.

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

Джон Р. Сирл (John R. Searle, р. 1932), преподаватель философии Калифорнийского университета в Беркли, разработал воображаемую систему, которая показывает, что ответ на этот вопрос отрицательный. Эта система под названием «Китайская комната» работает следующим образом. Вы сидите в комнате. В стене этой комнаты есть две щели. Через первую щель вам передают вопросы, написанные по-китайски. (Предполагается, что вы, как и Джон Сирл, не знаете китайского. Если это не так, выберите какой-нибудь другой язык, неизвестный вам.) Затем вы просматриваете книги с инструкциями типа: «Если вы получили такой-то набор символов, напишите на листке бумаги такой-то (отличный от исходного) набор символов и передайте его обратно через другую щель».

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

Алан Матисон ТЬЮРИНГ
Алан Матисон ТЬЮРИНГ
Alan Mathison Turing, 1912–54

Английский математик. Родился в Лондоне, учился в Кембридже (Великобритания) и Принстоне (США). Был пионером в области теории вычислительной математики, ввел понятие машины Тьюринга — идеальной цифровой вычислительной машины. Во время Второй мировой войны работал криптографом в Блетчли-Парке — секретном учреждении правительства Великобритании, созданном для раскрытия кода немецкой военной шифровальной машины «Энигма». После войны, будучи снят со своей научной должности и подвергаясь преследованиям из-за гомосексуальных наклонностей, покончил с собой.


42
Показать комментарии (42)
Свернуть комментарии (42)

  • Psiho  | 31.05.2005 | 02:28 Ответить
    Долго спорили с другом по этому поводу. Однако, насколько уверенно можно заявить, что наш мозг не руководствуется своеобразными книгами при переборе вариантов действий в той или иной ситуации? Т.е. имеем ли мы достоверную информацию о том, что наш мозг сам по себе не является "китайской комнатой"?
    Ответить
    • eking > Psiho | 28.09.2007 | 16:57 Ответить
      В большинстве случаев так и есть - мы руководствуемся опытом. :)
      Но мы способны обучаться (получать этот самый опыт) и экстраполировать его на ситуации, которые прямо не подходят под определения из нашего опыта. Более того, некоторые люди (с высоким уровнем интеллекта) способны так-же использовать суперпозицию из разных опытных данных, для уточнения предсказания своих "теорий" (т.е. того, как будут развиваться события и как на них нужно реагировать)
      Ответить
  • Легушка  | 22.06.2005 | 16:22 Ответить
    уже был знаком с понятием Машина Тьюринга но о тесте впервые:)
    ----
    теперь коментарий:
    если чел заранее знает что он общается точнее что ему надо определить с кем он общается с машиной или с другим челом то он сразу начнет заковыриста общяться:) дабы раскусить, в реале же если чел попробовал бы общения и не понял бы собеседника то он бы скорее всего бы перестал общаться и не стал бы делать вывода что общаестя с машиной:) я бы мог например подумать что говорю с иностранцем который по русски кроме да нет ничего не понимает:))) если он бы со мной тока этой парой слов и разговаривал
    ------
    хотя есть такое понятие как насыщение общения (сам сформулировал тока что но смысл понятен) вот если бы машина сама бы ни как не могла бы насытить свою познавательность и ни как бы в общении не могла бы вас отпустить фсякими уловками то вы бы врятли подумали бы что это компьютер
    ------
    прикиньте комп станет разумным и тогда это не мы в него будем играть а он в нас хотя может быть это уже сейчаз и происходит:|
    ----
    кста чел очень любит загадки вот ели бы машина смогла бы придумывать для нас загадки то было бы супер:)))
    Ответить
  • alnomy  | 17.01.2006 | 13:16 Ответить
    Вообще говоря, такой тест выполнить вряд ли получится, так как он изначально по своей формулировке (точнее, описании условий его проведения) ставит перед экспериментатором нереальную задачу - ведь в идеале, должно быть бесконечное число экспериментаторов,и/или каждый экспериментатор должен общаться с "существом" бесконечно долго.

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

    Правила коммуникации, кстати, весьма легко обобщить. Достаточно "научить" машину вежливо отвечать на вопросы, пользуясь в тех случаях, когда в ее памяти не отыскать нужных данных, расплывчатыми формулировками - и Вы не отличите ее поведение от реального человека (в разумные временные сроки, разумеется). Вот пример: Вы только что приобрели и установили на компьютер новейшую компьютерную игру, например - общеизвестный Doom или любую другую, эмулирующую какой-то мир. Вы раньше ничего, кроме Тетриса, не видели :) . Программа игры поражает Ваше воображение, Вам кажется, что Вы попали в другой мир, который неисчерпаем на находки, сложные ситуации, приключения. И лишь поиграв в нее день, другой, неделю, месяц (это для очень сложных игр, которые действительно писались "от души" а не по принципу "слепить что-нить красочное, да побыстрей продать") - Вы понимаете - ну вот, теперь я все знаю об этой игре, это не Вселенная, а лишь маленький-маленький микромирок со своими законами, которые я на 100% понимаю. И сколько бы я в нее не играл, игровой процесс заметно не изменится - я все уже попробовал.

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

    Кстати, одной из иллюстраций может послужить мультиплатформенная игра "Elite", выпущенная в 80-х годах прошлого столетия. Она занимала первую строчку рейтинга (и до сих пор имеет множество поклонников!) именно потому, что игровой процесс был непредсказуем - перед игроком представал альтернативный космос с миллиардами планет (без преувеличений!), причем каждая имела конкретное имя, характеристики, и корабли местных жителей вели себя не так, как на других планетах! Объяснение поистине чудовищно (и феноменально просто) - всего лишь два числа Фибоначчи использовались для генерации псевдослучайных последовательностей для каждой Галактики! Кроме того, игровой процесс искусственно "тормозился" в развитии, путем установки счетчиков-ограничителей - к примеру, для проявления новой характеристики или достижения надо было пройти, к примеру, 400 космических боев (число генерируется отдельно по тем же рядам Фибоначчи).
    Ответить
    • intruder51 > alnomy | 29.07.2013 | 23:06 Ответить
      Сирл неверно интерпретировал свою умозрительную конструкцию, удивительно что о ней все еще кто то упоминает, поскольку его вывод не основан на логичном http://passivnyizarabotok.ru/%D0%BF%D0%BE%D0%B4%D0%BD%D1%8F%D1%82%D1%8C-%D1%82%D0%B8%D1%86-%D0%B8-pr-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86-%D0%B1%D0%BB%D0%BE%D0%B3%D0%B0-%D1%81%D0%B0%D0%B9%D1%82%D0%B0/
      Ответить
  • 131s  | 21.12.2006 | 07:04 Ответить
    Искуственный интелект возможен это точно. В этой стате частично описан принцип действия. у меня есть наработки для этого, но нет хороших знаний языка компютера.Прикол заключается в том что компютер на сегодняшний день берет знания и обратно не отдает...
    Исключение ассемблер но он слишком сложен. другие языки не производят обратной конвертации, а это прямая дорога в рабство машин. кстати лицензионные программы без исходного кода это тоже рабство навязаное компанией Microsoft. вы когда небудь читали лицензии к ПО. краткий смысол такой Программа обязуется работать, но ответственности за проделаную работу не несет. У человека при приеме на работу ответствиности больше.
    Ответить
    • 131s > 131s | 21.12.2006 | 07:35 Ответить
      Кстати ищутся единомышленники готовые работать ради идеи.
      Как начало Написание языка высокого уровня на русском языке с возможностью переносится на разные платформы (intel,poketPS и другие если появятся) и главное обратное преобразование из машинного кода в язык программирования
      Ответить
      • Bon > 131s | 24.01.2007 | 15:10 Ответить
        К сожалению, обратное преобразование из машинного кода в язык программирования просто невозможно. Дело в том, что при компиляции программы в машинный код отбрасывается все лишнее для компьютера, т.е. выходная программа должна быть понятна машине, и занимать как можно меньше места. Другими словами, для поцессора А сложить с Б и С сложить с Д означает одно сложить с другим. Для человека это разные программы, для компьютера - одна.
        Единственный выход из этой ситуации - хранить исходники скажем, в конце кода программы мертвым грузом. При этом диск с WINDOWS XP был бы на DVD и содержал бы уйму информации, абсолютно бесполезной для работы самого WINDOWS XP! Не говоря о том, что защита авторских прав в этом случае просто исчезнет.
        Ответить
        • 131s > Bon | 01.03.2007 | 13:54 Ответить
          Другими словами, для поцессора А сложить с Б и С сложить с Д означает одно сложить с другим

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

          о том, что защита авторских прав в этом случае просто исчезнет. Изчезнет низкая квалификация пользователей и глючные программы, а авторские права защищаются патентами.. реально в Windows патентовать практически можно лишь 1-2% все остальное пренадлежит производителям оборудования. А закрытый код просто скрывает низкую квалификацию фирмы.
          Ответить
          • Bon > 131s | 03.04.2007 | 12:21 Ответить
            >Изчезнет низкая квалификация пользователей
            Интересно почему?
            Разбираться в исходных текстах чужой программы тяжело даже для программиста, проще написать свою программу. А пользователи, даже появись у них желание разобраться с вывертами алгоритмов, конструкциями классов, наследованием, виртуальными процедурами, ссылками и указателями, потратят на это уйму времени и усилий, причем результатов для пользовательских навыков не поимеют.

            Теперь немного из математического подхода...
            Рассмотрим множество команд, которые могут встречаться в исполняемых (напимер ехе, dll) файлах - обзовем его множество А,
            и множество команд доступных в языках программирования - обзовем его множество Б.
            Заметим, что оба этих множества конечны:
            В множестве А количество элементов ограничивается производителем операционной системы и производителями оборудования, скажем процессоров.
            В множестве Б количество элементов ограничивается производителями языков программирования.
            Исполняемый файл будем рассматривать как последовательность комманд, или другими словами последовательность элементов множества А.
            Множество всех возможных исполняемых файлов (назовем его АА) является множеством всевозможных последовательностей элементов множества А.
            Из математики известно, что множество, состоящее из всевозможных последовательностей элементов конечного множества является бесконечным и счетным (счетное множество это то, элементы которого можно занумеровать, например все рациональные числа можно занумеровать, т.е создать взаимнооднозначное отображение между натуральными и рациональными числами).
            На основании множества Б программист, определяя свои классы, функции и процедуры (которые в свою очередь являются последовательностями комманд - элементов множества Б), создает множество ББ, которое также является счетным.
            Далее программист создает программы, которые являются последовательностями элементов множества ББ.
            Множество всех программ, создаваемых программистами (назовем его БББ), является множеством всех последовательностей элементов множества ББ.
            Опять же, из математики известно что множество, состоящее из всевозможных последовательностей элементов счетного множества является бесконечным множеством мощности континум.
            например все действительные числа - рациональные и иррациональные - множество мощности континум, занумеровать его невозможно.
            Итак, БББ - множество мощности континум.
            Таким образом компилирование - отображение элементов множества БББ в элементы множества АА, а из математики известно, что взаимооднозначных отображений из множества мощности континум и счетным множеством не существует!
            И дело тут не в разных буквах, а уже в разных кодах.
            Таким образом компиляция программы - билет в один конец. Из АА можно получить только ББ, т.е. из машинного кода можно получить только что-то похожее на код, написанный на асемблере, а среди современных программистов врятли найдется тот, кто сможет просто по асемблеровскому коду в пару мегабайт понять что же вобще должна делать эта программа.
            Ответить
            • 131s > Bon | 03.04.2007 | 14:29 Ответить
              Блин как замудренно.
              упростим...
              есть множество А с которым работает компютер и понемает его.
              и множество множеств В с которыми работает человек на вскидку пару (С+,С++,С#,паскаль,бейсик и т.д.) у каждого языка прогромирования свои особенности, НО все это преобразуется в понятное множество А.
              Из конечного множества А делается конечное множество В и не в какую бесконечность решение не уходит.

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

              Вывод: если это делают люди высокой квалификации, то это может делать машина пока частично, для человека низкой квалификации.
              Ответить
              • Bon > 131s | 04.04.2007 | 12:13 Ответить
                Похоже вы сами не понимаете чего хотите.
                Приведу пример С#:
                множество В - DataAdapter1.Fill(DataSet1);
                поясню, что делает эта комманда
                С помощью класса Connection, ипользуя строку подключения, создается соединение с сервером базы данных, причем при создании этого соединения ипользуется множество процедур и свойств экземпляра класса Connection.
                Далее открывается транзакция на чтение данных в соответствии с запросом и параметрами запрса, заданными в экземпляре класса DataAdapter. В DataSet1 создается или заново заполняется таблица DataTable, соответствующие экземпляры классов Column и Row в том числе.
                Закрываются (а может и нет) транзакция и соединение с сервером.
                При этом во всех классах происходт обработка всевозможных событий.
                Причем многие методы, учавствующие в исполнении данной команды могуит вызываться непосредственно програмистом, а не этой командой.
                Результатом компиляции такой на вид простенькой команды будет файл в десятки килобайт. И никакие люди "высокой квалефикации" по этому файлу не восстановят строку "DataAdapter1.Fill(DataSet1);", и уж тем более если эта строка в программе не одна! И даже если бы из файла удалось получить более менее читабельный код, полученные сотни килобайт или даже мегабайты исходных текстов всех классов, участвующих в исполнении этой команды даже отдаленно не приблизят к пониманию того, что весь алгоритм программы - это одна команда.
                Воюсь, вы от программирования еще дальше, чем я, по этому у вас и возникают подобные идеи.
                Взлом программ, кстати, не имеет ничего общего с программированием. Достаточно опытный пользователь, умеющий работать с дампом памяти и дизасемблером может отловить адрес переменной или вызов функции, влияющей на включение ограничений взламываемой программы, не зная ни один из языков программирования.
                Ответить
                • 131s > Bon | 07.04.2007 | 17:51 Ответить
                  > Приведу пример С#:
                  > множество В - DataAdapter1.Fill(DataSet1);
                  А кто сказал что при переводе например на русский язык это будет звучать так
                  же и в том же объеме?
                  смотри пост про константы.
                  Главное понять смысл, а тупое повторение не кому не нужно. если конечно не
                  обязать программистов делать обратные преобразования.

                  А про хакеров могу сказать что сними боряца целые индустрии программистов
                  (не понятно зачем возможно из за $) и до сих пор нет существенных результатов,
                  по тому что все гениальное просто. Кстати Достаточно опытный пользователь,
                  умеющий работать с дампом памяти работает не за $, а за идею.
                  Вы наверное сторонник Micro$oft они заявили что "ассемблер это мертвый
                  язык",
                  по крайней мере им так хочется теперь, когда все под ихним контролем.

                  Моя идея поднять ассемблер на более высокий уровень, отстает от сегодняшней
                  жизни,
                  хотя 15-17 лет назад был самым правильным и востребованным языком
                  Ответить
                  • MaZa > 131s | 24.04.2007 | 18:56 Ответить
                    > Главное понять смысл , а тупое повторение не кому не нужно.
                    а что значит понять смысл строчки DataAdapter1.Fill(DataSet1);?

                    Вот скажите мне, какие числа я сложил что бы получить 32?
                    31+1? или 15+16?
                    Вот и ваш декомпилятор не скажет какой смысл вкладывал автор строки DataAdapter1.Fill(DataSet1);

                    >Моя идея поднять ассемблер на более высокий уровень, отстает от сегодняшней жизни
                    вот именно так ассемблер и умер. после попытки поднять его на высокий уровень получились С, С++, С# и т.д. Другими словами высокоуровневый ассемблер будет уже не ассемблер

                    Вы, на мой взгляд, не понимаете какой смысл Майкрософт вкладывает в свои слова и смотрите на Майкрософ исключительно через призму всемирного заговора.

                    А с хакерами боряться так же как и со всем что приносит вред. Почему боряться с воровством? И чот гениального в том чтобы сламать результат труда какого-то человека?
                    Ламать не строить, как говорят...
                    Ответить
                    • 131s > MaZa | 26.04.2007 | 13:08 Ответить
                      >какие числа я сложил что бы получить 32
                      назови любое одно и я найду недостоющее :(
                      Приметивный пример криптографии(ключ,шифр,алгаритм=зашифрованое число),
                      обратное (зашифрованое число,ключ,обратный алгоритм=шифр)
                      не чего общего с програмированием.
                      DataAdapter1.Fill(DataSet1) этим все сказано... просто на другом языке это звучит по другому.
                      для вас по всей видимости например слово "привет" не возможно перевисти например на английский язык т.к. "hello" на 1 букву короче, и самое ужасное звучит по другому.

                      >И чот гениального в том чтобы сламать результат труда какого-то человека?
                      сам то с лицинзионного виндоса шлешь сообщения? или со "сломаного" за 100 рублей.
                      Если вам очень хочется доказать необратимость процесов пишите в почту 131s@newmail.ru
                      Ответить
                      • MaZa > 131s | 26.04.2007 | 15:54 Ответить
                        > не чего общего с програмированием
                        не понятно? объясняю

                        допустим создаю в коде константу которая содержит размер памяти содержащейся в некой структуре.
                        в коде я напишу:
                        const byte someStructSize = 4 * 8
                        я не зря пишу так, а не просто результат. Для меня, лично, очень наглядно и даже важно для понимания то, что размер равен четырём байтам.
                        после декомпиляции исполняемого файла вы получите:
                        const byte a1 = 32
                        что абсолютно лишено первоначального смысла.
                        пример слишком частный, но не хочеться голову ламать и выдумывать что-то нагляднее, надеюсь и так понятно

                        > "привет" не возможно перевисти например на английский язык т.к. "hello" на 1 букву короче

                        а почему собственно hello? если я, допустим, говорил слово привет, при этом крутил указательным пальцем у виска, то это совсем, другим словом переводится.
                        но если учесть что вы этого не видели, а допустим записали аудио запись, то правильно вы уже не переведёте.
                        точно, то же происходит и при компиляции, дополнительная информация (необходимая для понимания СМЫСЛА, теряеться)

                        > сам то с лицинзионного виндоса шлешь сообщения?
                        да. и совсем не для того что бы повысить доходы MS

                        > Если вам очень хочется доказать необратимость процесо
                        я говорю конкретно о декомпиляции, восстановлении исходного кода, или, по вашему, смысла.
                        Ответить
                        • 131s > MaZa | 02.05.2007 | 18:09 Ответить
                          const byte someStructSize = 4 * 8 мне обсалютно фиолетого как ты будеш объявлять какой ширины например река.
                          главное как ты будешь этой рекой пользоватся 1 раз по 32 или 4раза по 8 это вылезет в коде.
                          (если компютер, допустим, говорит слово привет, при этом крутит указательным пальцем у виска) у вас проблемы со здоровем где у компютера висок и указательный палец??? впринципе ваши идеи скоро сбудутся.
                          дополнительная информация (необходимая для понимания СМЫСЛА, теряеться)- конечно процесор как и ты может крутить у виска и додумывать нехватающию информацию... (он же не работает по жескому алгаритму который задал интел и впослетствии разветвил микрософт.)
                          а про лицензионный MS ты просто лжец, либо тебе его просто красиво впарили с дорогим компютером.

                          Советую познакомится слегка с криптографией и тогда возможно многие вопросы пропадут. ссылка http://www.ssl.stu.neva.ru/psw/crypto/appl_rus/ac_11_14.pdf

                          >я говорю конкретно о декомпиляции
                          (согласен) процесор умнее в связи с этим обратной дороги нет.
                          прения окончены прощайте.
                          Ответить
                      • eking > 131s | 28.09.2007 | 17:59 Ответить
                        Вмешаюсь в ваше обсуждение ... :)

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

                        про односторонние функции знаете? это к вопросу о криптологии...
                        Ответить
                        • 131s > eking | 01.10.2007 | 12:33 Ответить
                          криптография и языки это разные вещи!
                          К вопросу о криптографии: единственный необратимый криптографический алгоритм, это когда уникальный ключ длиннее самого сообщения.
                          в этом случае гарантируется 100% невозможность расшифровки при условии, ключ неизвестен.
                          во всех остальных случаях сообщение теоретически расшифровать можно.(вопрос времени).
                          При известном алгоритме работы процессора и других периферийных устройств легко можно инструкции перевести в читабельный язык.
                          Ответить
                          • eking > 131s | 01.10.2007 | 15:43 Ответить
                            "криптография и языки это разные вещи!" - знаю... :)

                            "единственный необратимый криптографический алгоритм..." - называется одноразовым блокнотом... :) только "во всех остальных случаях сообщение теоретически расшифровать можно.(вопрос времени)" - вообще-то еще вопрос затраченной на вычисления ЭНЕРГИИ (в той-же книжке Шнайдера есть об этом)... и если для подбора ключа нужно энергии больше, чем есть во вселенной вообще, ну, или хотя-бы в принципе доступно нашей цивилизации... будем считать что расшифровать так-же невозможно... На самом деле, современная криптография строиться не по принципу "расшифровать теоретически невозможно", а по принципу "ожидаемое время расшифровки превышает срок актуальности информации или стоимость расшифровки превышает стоимость самой информации или стоимость расшифровки превышает стоимость других методов ее получения".

                            "При известном алгоритме работы процессора и других периферийных устройств легко можно инструкции перевести в читабельный язык." - далеко не всегда. во-первых, нужно определить, какой язык мы примем как читабельный. Во-вторых, перевести, в самом общем случае, можно только на язык ассемблера, а он для каждой архитектуры свой... И я-бы не назвал его читабельным... В-третьих, современные компиляторы оптимизируют код, что в большинстве случаев есть процесс необратимый - таким образом код может быть читабельным только в смысле "понятно, какие байтики и при каких условиях куда копируются/преобразовываются", а вот понять общую идею и логику работы программы, если она больше некоторого размера, уже практически невозможно...
                            Ответить
                            • 131s > eking | 02.10.2007 | 07:00 Ответить
                              Нет не чего хуже догонять и ждать!
                              только на язык ассемблера переводят сегодня достаточно успешно и качественно (причем эти программы бесплатные либо крякнутые)
                              если вас интересует вопрос времени то возьмите например Aida и декомпелируйте как вы считаете большую программу (уйдет 5-15 секунд)
                              прибавите 20-40% если вы хотите перевести на один из 8500 языков http://www.xakep.ru/post/39418/default.asp
                              а вообще это пустой треп. я так понимаю вам просто интересно.
                              если есть дельные предложения пишите в почту.
                              PS.
                              ИИ (искусственный интеллект) уже создан, вопрос ставится о
                              ИР (искусственный разум) если у вас нету моральных предубеждений к этому, пишите в почту предварительно ознакомившись вот с этими ссылками:
                              http://www.nkj.ru/forum/read.php?FID=14&TID=7957
                              http://www.nkj.ru/forum/read.php?FID=14&TID=1783
                              http://www.linux.org.ru/view-message.jsp?msgid=1972998
                              http://community.livejournal.com/ai_ru
                              Ответить
                              • vw > 131s | 14.01.2008 | 20:25 Ответить
                                Прочитал Вашу ранее поднимаемую проблему и предыдущую полемику.

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

                                Касательно дизассемблирования. Процессор оперирует солгласно сложным логическим схемам. Но схемы эти не содержат никаких механизмов порождения новых операций или чего-то подобного. Так что можно считать, что множество всевозможных инструкций процессора - K, и оно конечно. Теперь представьте себе множество всех возможных переходов, осуществимых в программе на языке программирования (хотя бы тот же C#), каждая из которых отображается на некоторое Ni число инструкций процессора. В скомпилированном (но еще не оптимизированном) коде подобные блоки машинных инструкций идут подряд. Теперь предпринимается какая-нибудь простейшая оптимизация, в следствии которой часть инструкций соседних блоков просто меняются местами. Без применения каких-либо обоснованных выработанных эвристик, Вам потребуется по-крайней мере ni^nj операций для нахождения оригинальных блоков (ni - размер первого блока, nj - второго). При этом, на самом деле оптимизацию работаю не так, а перемещают огромное количество интсрукций из разных блоков, добавляют/удаляют некоторые инструкции и так далее (например, развертка циклов + удаление неиспользуемых переменных). Так что восстановление исходного кода, реализующего тот же _высокоуровневый_ алгоритм (не тот, который в конечном счете определяет программу в машинных инструкциях), задача по-крайней мере экспоненциально сложная и по-крайней мере попадающая в класс NP задач. Так что решать ее компьютер будет долго.

                                В Вашем случае языка, основанного на естественном, ситуация еще более драмматична, по-скольку одна и та же конструкция языка может в различных контекстах интерпретироваться по-разному, и в то же время для выражения одного и того же вы можете использовать раизличные словесные конструкции. Например, слово "привет" действительно может быть интерпретировано как "здравствуйте" и как "с ума сошел". Тогда, если у вас есть нечто подобное "Привет А!" (до или после в контексте ясно, что речь идет о приветствии) и "Привет В!" (в контексте ясно, что у B не все в порядке с головой), то не удивляйтесь, если после дизассемблирования Вы получите "Здравствуйте А" и "С ума сошел B". В некоторых случаях это может привести в контексте к различию между изначальной смысловой нагружкой программы и конечной. В случае же, если из контекста не ясно, о каком "Привет" идет речь, то у Вас есть все шансы получить две принципиально по-разному работающие программы.

                                Насчет хакеров и Microsoft - есть очень различные моральные причины, почему люди занимаются взломом или разработкой коммерческого софта. Некоторые взламывают чужую собственность ради идеи или удовлетворения своей жажды поиска (и это хакеры), но большинство это делают либо для самоутверждения и разрушения чего-нибудь или все тех же денег (и таких кракеров, к сожалению, большинство). То, что касается коммерческого софта - вообще-то, программистам тоже надо платить. И профессия, поверьте, далеко не самая простая. А то, что компания пытается получить деньги за использование программ - Вас не возмущает, что за мебель, которую Вы покупаете в магазине, или за бытовую технику нужно платить? А чем програмы хуже?
                                В любом случае, каждому свое. Да и не такие уж монополисты Microsoft. Хотите комерческую ось - пожалуйста, используйте Apple Mac OS X или Microsoft Windows, хотите бесплатную - используйте Linux или Free/Open-BSD.

                                И еще. Если Вы действительно хотите что-то сделать в области ИИ - подумайте сначала о своем интеллекте. Уверяю Вас, что оскорбления и хмаство, а также отсутствие какой-либо попытки принять точку зрения оппонента явно не свидетельствуют о желании задуматься, прежде чем что-то сказать. Что, кстати, несколько напоминает китайскую комнату. И совершенно точно прежде чем начинать какие-то работы в данной сфере, имеет смысл получить какое-то представление о ней самому, причем не только романтическое, которое читается у Вас. Точнее, стоит ознакомиться с математикой и логикой, которая уже стоит за данным предметом, работами по анализу естественных языков. Ссылки здесь приводить не буду так как их не сложно нйти самому при желании, но изучить работы и учебники по теорям (начиная с классичесокй логики, интуиционного исчисления, исчисления высказываний, исчисления предикатов, теории множеств, общей алгебры, дискретной математике, математической кибернетике, теории формальных грамматик, генетическим алгоритмам и нейронным сетям) абсолютно точно стоит. И, кстати, вряд ли xakep.ru является достаточно надежным источником для получения информации, особенно если речь идет об обучении.
                                Ответить
                                • 131s > vw | 27.06.2008 | 19:32 Ответить
                                  >...Сама по себе идея о создании языка программирования, основанного на естесственном языке не очень нова...

                                  Это уже реализовано на разных уровнях, и пытаться догнать разгоняющейся паровоз бесполезно.

                                  Идея заключается в создании языка и антиязыка (дизассемблера) понятному группе лиц заинтересованных в этом, с возможностью обучения этому машины, которая будет делится результатами своей работы с группой лиц заинтересованных в этом.
                                  Ответить
                                  • Grumbler > 131s | 21.07.2008 | 16:35 Ответить
                                    Будучи человеком очень далеким от программирования могу сказать с уверенностью только одно: для того, чтобы машина понимала "естественный" язык (или то, что вкладывается в это понятие) - ее тоже надо программировать.
                                    И еще. Когда у декана Бакинского мат. института (198090 гг) спросили какие языки понимает компьютер, он с уверенностью ответил "Русский и азербайджанский". Так что проблема решена давно :)

                                    SPECIAL TO: 131s
                                    ДО того как начинать решать такие темы надо ДОСКОНАЛЬНО выучить хотя бы один язык. Русский, например, с синтетическим порядком слов. А потом сравнить с языком где традиционный порядок слов - аналитический. Вот тогда возникнут новые горизонты для свершений.

                                    Я удивился и очень благодарен терпению и педагогической грамотности всех, кто взял на себя труд и доступно разъяснил принципы ассемблирования. Зачитался. :)
                                    Ответить
                              • Real Alien > 131s | 03.05.2009 | 16:19 Ответить
                                Уважаемый Коллега,
                                у меня нет моральных предубеждений к данному вопросу. Похоже, мы мыслим в одном направлении. Был бы рад оказать содействие. Единственное = у меня ограничена операционная система, т.к. я юрист.
                                Ответить
                        • P.Donda > eking | 09.05.2014 | 00:28 Ответить
                          Вы то как попали в эту палату №6!?
                          Ответить
    • P.Donda > 131s | 09.05.2014 | 00:25 Ответить
      Извините,уважаемый(ая) комп(а), но искусственный интеллект невозможен!
      Нет, ну можете еще подучиться...
      Ответить
  • eking  | 01.10.2007 | 15:50 Ответить
    А знаете, что самое интересное? вот вроде-бы как мы все считаем человека разумным... споров этот вопрос не вызывает... А так ли это? где критерий разумности? Вы спросите у знакомых психологов... :) Да и тесты на уровень интеллекта (IQ) на самом деле ОЧЕНЬ привязаны к нашей культуре и нашему, человеческому опыту жизни в нашем челевеческом обществе... Если некоторое существо имеет другие органы чувств, и, соответственно, будет жить в другом обществе - оно не пройдет наши тесты на уровень интеллекта - так что, оно неразумно?

    С этой точки зрения - тест Тьюринга всего лишь тест на подобие человечекому интеллекту...
    Ответить
    • P.Donda > eking | 09.05.2014 | 00:42 Ответить
      А Вам не смешны все эти потуги программистов в свете "верхнего" вопроса?
      Ответить
  • 131s  | 11.02.2008 | 13:32 Ответить
    Сегодня для выводов об эмоциональном состоянии компьютер использует не так уж много параметров: пульс, влажность и электрическое сопротивление кожи, напряжение лицевых мышц, выражение лица в целом и ряд других. С каждым годом количество параметров анализа увеличивается (из новых отметим появление сенсора запахов) - повышается и точность результатов. Через десять лет (по самым пессимистичным прогнозам) мы получим компьютерную программу, способную распознавать эмоции человека с вероятностью 98 %. Данный показатель позволит программе генерировать эмоции самостоятельно. Искусственная эмоция окажется по качеству изготовления выше оригинала. Не это ли будет последним, гениальным решением теста Тьюринга в обход всех современных методик?

    взято с http://www.xakep.ru/post/42070/default.asp?page=3
    Ответить
  • amshf  | 14.08.2008 | 12:49 Ответить
    "«Если вы получили такой-то набор символов, напишите на листке бумаги такой-то (отличный от исходного) набор символов и передайте его обратно через другую щель»"

    - а подумать об оценке количества инструкций - слабо? Сколько вариантов написания одного и того же вопроса мы можем придумать? Сколько всего вопросов может задать один человек, используя словарь из 5000 слов, хотя бы? Сколько вопросов разрешено задать по тесту Тюринга? Сколько времени потребуется для поиска правильного ответа? Как вы отнесетесь к разумной тумбочке, которая на примитивный вопрос "как дела"? начнет искать ответ по инструкциям в течение 3-х лет?

    Что бы вы сами написали в инструкцию по вопросу "как тебя зовут"?

    Бред, бред и бред!!! А Тюринг - умница!

    "Ясно, что если книги с инструкциями достаточно полны," - ясно, что "доказательство" сродни алгоритму выведения всех до единого тараканов в квартире при помощи шкафа и ножовки... ( кто не знает: заманить всех тараканов под шкаф и мгновенно отпилить все ножки одновременно!)
    Ответить
  • huge_n_terrible  | 12.10.2008 | 05:40 Ответить
    Если компьютер может работать так, что человек не в состоянии определить, с кем он общается - с другим человеком или с машиной, - считается, что он прошел тест Тьюринга.
    Он - это кто? )) Компьютер? Или человек?
    Чтобы создать ИИ - нужно вначале разобраться,что же такое просто И (интеллект,то есть). Я знаю людей, которые часами способны общаться с примитивнейшим ботом, не замечая подвоха. Иногда и сам ломаешь голову над заковыристой CAPTCHA :)
    Так что не только в компьютере дело, но и в человеке,который этот самый компьютер тестирует.
    Ответить
  • Kostja  | 01.12.2008 | 01:17 Ответить
    Сирл неверно интерпретировал свою умозрительную конструкцию, удивительно что о ней все еще кто то упоминает, поскольку его вывод не основан на логичном размышлении. Хех, можно подумать он сам понимал больше чем эта комната, не в обиду ему будет сказано :)
    Ответить
  • angellore  | 28.05.2009 | 01:54 Ответить
    Как-то попалась мне одна интересная книга, в которой описывались действия, когда был создан ИР Тьюринга, так вот там, вся система управлялась искусственным разумом (ИР) созданном по Тьюрингу. Вроде бы книга, если не удалили лежит на сайте http://moivopros.ru/, а называется Кремниевое небо И. Шапошникова. Что самое интересное, герои книги и не представляли, что все управляется ИР.
    Ответить
  • cannelle  | 14.12.2009 | 11:58 Ответить
    Я лингвист-переводчик и работаю над проблемой формализации знаний. В основе когнитивной лингвистики лежит идея восприятия мозга человека в виде ченой коробки, а также поиск объяснений феномену восприятия, стуктуризации и порождения знаний.
    Чтобы построить умную машину, необходимо разобраться для начала как работает наша с вами черная коробка!
    Если кому-то это интересно - пишите!!
    Ответить
    • P.Donda > cannelle | 09.05.2014 | 00:45 Ответить
      Куда!?
      Ответить
  • eugene140782  | 29.01.2010 | 10:21 Ответить
    "Если компьютер может работать так, что человек не в состоянии определить, с кем он общается — с другим человеком или с машиной, — считается, что он прошел тест Тьюринга."

    - А если компьютер может работать так, что человек не в состоянии определить, с кем он играет в шахматы — с другим человеком или с машиной, — считается, что он прошел тест Каспарова.

    - А если компьютер может работать так, что человек не в состоянии определить, машина ли написала стихотворение или человек, — считается, что он прошел тест Пушкина.

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

    - А если компьютер может работать так, что человек не в состоянии определить, машина ли написала картину или человек, — считается, что он прошел тест Репина.

    И так во всех областях искусства, науки и техники - если компьютер(робот) может работать так, что человек не в состоянии определить продуктом чьей деятельности является предмет, — пусть будет считаться, что компьютер(робот) прошёл тест на Искусственного Человека!
    Ответить
  • stochastic  | 02.04.2013 | 01:37 Ответить
    "можно ли построить машину, которая могла бы в чем-то заменить человека"

    Ответ положительный, только не одну машину, а сеть машин. Если современный интернет станет самоподдерживающейся (то есть не зависимой от человека) системой, то он станет искусственным разумом.
    А на счёт "Китайской комнаты" высказывание "При этом очевидно, что вам совсем не обязательно понимать, что вы делаете." не уместно, потому, что это не так, потому, что человек, который делает перевод отлично понимает чем он занимается вне зависимости от чьего-либо (даже собственного) желания.
    Ответить
    • P.Donda > stochastic | 09.05.2014 | 00:57 Ответить
      Ув.Stochastic, "можно ли построить машину, заменяющую человека" - МОЖНО!
      Экскаватор - копает!
      Калькулятор - считает!
      Граммофон - поёт!
      Как много умных!..
      Ответить
  • Max Brown  | 07.05.2013 | 16:07 Ответить
    Строго говоря, этот тест компьютерами давным-давно уже пройден. Но не столько за счёт усложнения программ, имитирующих человека в общении, сколько за счёт упрощения "экспертов". Тьюринг ведь не определил этот термин, дав возможность толковать условие своего теста, как "...те, кто заведомо являются людьми, не смогут определить, общались ли они тоже с человеком или же с машиной".
    Знаете, я не ахти какой веб-программист, я не разбираюсь в нейросетях и те "веб-роботы", которых я пишу, занимаются банальной тупой перекачкой информации с одних сайтов на другие. И вот, как-то раз я соединил таким образом два разных русскоязычных "интеллектуальных собеседника" с чатом на некой службе знакомств.
    Результат оказался неожиданным даже для меня. Лишь около 1/10 собеседников поняли, что их разводят и что они общаются не с человеком, а с программой. А самое убийственное для моего самолюбия заключалось в том, что общаясь с девушками, программа, в отличие от меня самого, либо разводила их на номер телефона в течение первых 10-20 сообщений, либо общение завершалось примерно на таком же количестве месагов. Никакой многодневной переписки.
    Ответить
    • P.Donda > Max Brown | 09.05.2014 | 01:04 Ответить
      Ув. Max Brown, "каки проблемы!?" - вот в ком не сомневаюсь, так это в Вас: 100% человек, а не компьютер!
      Ответить
      • ОлегОранжевый > P.Donda | 30.06.2016 | 19:46 Ответить
        Вообще-то говоря, одно из следствий теоремы Пригожина - тест Тьюринга непременно будет пройден. А некто Курцвейл предрек, что это произойдет примерно 2020 г.
        Ответить
Написать комментарий

1950
Тест Тьюринга
Элементы

© 2005-2017 «Элементы»