Оффтоп Daria Khokhlova
4 314

Почему компьютеры не могут писать программы самостоятельно — обсуждение на Quora

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

На самом деле компьютеры могут программировать самостоятельно, просто не очень хорошо

Пользователь Quora Тихон Джелвис считает: для того, чтобы машины научились программировать, нужно больше данных, чем есть у учёных на сегодняшний момент, и, на самом деле, это лишь вопрос времени.

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

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

Как объяснить компьютеру, что вам нужно

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

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

Другой подход — примерное описание алгоритма. Таким образом можно дать машине понять, чего от неё ждут. Компьютер сможет проанализировать полученные данные, «осознать», как должен работать алгоритм, и оптимизировать полученный код. Кроме того, текст, который пользователь отдаёт системе на обработку, совсем не обязательно должен быть правильный. Достаточно лишь приблизительно описать, что именно хочется получить человеку. Этот вариант гораздо сложнее реализовать, и пользователю всё равно будет нелегко сформулировать задачу — например, когда вообще неясно, как её решать.

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

В общем случае довольно сложно проверить написанный компьютером код на соответствие заданным условиям

На самом деле, слишком сложно, поясняет пользователь Quora Мариса Кирисаме. Задача разрешимости булевой функции NP-полна. Единственный на данный момент известный науке способ решить такую задачу — перебрать все возможные варианты.

Этот порог можно будет преодолеть — если математикам удастся доказать, что классы задач P и NP равны, однако наука занимается проблемой равенства классов уже много лет, и пока ответа на этот вопрос дать не удалось.

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

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

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

Всё это значит, что компьютер может писать эффективные программы лишь для небольших задач. Для более глубоких вопросов это просто не имеет смысла — потому что проверить оптимальность, эффективность и правильность кода будет очень сложно.

Компьютеры не умеют программировать, потому что люди не хотят быть уничтоженными

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

Если искусственный интеллект будет создан, совсем не факт, отмечает один из комментаторов по имени Сичу Лу, что люди продолжат своё существование на земле. Возможно, они будут уже не нужны компьютерам, которые смогут всем заниматься сами.

#quora #искусственный_интеллект #логика #почему_компьютеры_не_умеют_программировать #когда_компьютеры_научатся_программировать

Статьи по теме
Обсуждение на Quora: Почему люди ненавидят Windows
Какими сервисами пользуются продакт-менеджеры для эффективного управления проектами — обсуждение на Quora
Обсуждение на Quora: Можно ли работать в ИТ после 35 лет
{ "author_name": "Daria Khokhlova", "author_type": "editor", "tags": ["\u043f\u043e\u0447\u0435\u043c\u0443_\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b_\u043d\u0435_\u0443\u043c\u0435\u044e\u0442_\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c","\u043b\u043e\u0433\u0438\u043a\u0430","\u043a\u043e\u0433\u0434\u0430_\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b_\u043d\u0430\u0443\u0447\u0430\u0442\u0441\u044f_\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c","\u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439_\u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442","quora"], "comments": 12, "likes": 13, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 6010, "is_wide": true }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15395' + '50799') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 6010, "author_id": 5723, "diff_limit": 1000, "urls": {"diff":"\/comments\/6010\/get","add":"\/comments\/6010\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/6010"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

12 комментариев 12 комм.

Популярные

По порядку

Написать комментарий...
4

мне вот в фотошопе не хватает кнопки "сделать пиздато!" Кто ее придумает и заставит работать- обогатится!

Идея для стартапа чо)

Ответить
3

Такую тему спалил! Украдут же идею

Ответить
0

Мне не жалко :D

Ответить
4

Представил реакцию комьютера на фразу "поиграйтесь со шрифтами"

Ответить
2

Странный вопрос. Как будто его задал человек, только что включивший компьютер.
Почитайте книги 60-70-х годов прошлого века. Учёные мужи доооолго эту тему обсуждали, а сейчас такое впечатление, что никто об этом и не знает.

Ответить
1

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

Ответить
1

А почему бы просто не создавать программы из случайного набора операторов и функций. Как в опыте про эволюцию и часы. Рано или поздно что-то дельное то получится. Подумаешь пару сотен миллионов операций ради получения 3-4 строк адекватного кода.

Ответить

Комментарий удален

Комментарий удален

Комментарий удален

0

Так а мы не в матрице чтоль живем? Ну вот :(

Ответить
0

Что я только что прочитал

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

вроде высшее-техническое...

Ответить
0

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

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

"Аксиома фрагментации капитализма."

Ответить

Комментарий удален

0

Ну зачем ему писать самому, натаскать модулей с гитхаба и скомпоновать. Делов то.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Хакеры смогли обойти двухфакторную
авторизацию с помощью уговоров
Подписаться на push-уведомления