andrzejn: (Curious)
[personal profile] andrzejn
Всякий мало-мальски опытный программист интуитивно чует, способен ли компьютер в принципе справиться с поставленной перед программистом задачей. Я сейчас говорю не об искусственном интеллекте, а о простых повседневных программах.

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

Да, иногда ошибаются (какой хомо не эррарум эст?), но обычно чуют правильно.

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

Date: Friday, 26 December 2008 17:06 (UTC)
From: [identity profile] gds.livejournal.com
да это понятно, обычная "алгоритмизуемость". Определяется даже без интуиции, посредством попытки построения алгоритма. Получилось -- хорошо, не получилось -- смотрим на затык. Если затык принципиальный или требуется слишком много работы -- значит нельзя. (под работой подразумеваю в том числе разработку средств для чтения мыслей или распознавания хитрых изображений)

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

Date: Friday, 26 December 2008 19:50 (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Категорически не соглашусь!

Хотя, может, я не так понял, конечно.

Но, во-первых: программисты _постоянно_ делают крайне фиговые юзеринтерфейсы, которые заставляют юзеров делать то, что на самом деле должна делать сама программа. Может, это от лени в основном конечно, но тем не менее. От какой-то дико злокачественной лени, мешающей даже в софте, написанном для себя лично, сделать правильно. Сравните интеллисенс вижуалстудии и... ну, и всё остальное, по сути.

Во-вторых, хотя это может быть и из субъективного опыта выведено и не относится напрямую к делу, многие программисты крайне фигово понимают, какие вещи на самом деле следует оставить людям. Например, представляя суд как эдакий алгоритм, исходящий из презумции невиновности и принимающий исключительно строгие (в математическом смысле) доказательства, такой воображаемый суд должен был бы оправдать и Ханса Рейзера, и гипотетического чувака, использующего Monolith (http://monolith.sourceforge.net/) (вот весьма поучительная ссылка (http://ansuz.sooke.bc.ca/lawpoli/colour/2004061001.php), объясняющая, в чём проблема, и даже я первый раз читая этот текст был настроен крайне скептически, пока автор не использовал свой Последний Довод).

А что вы имели в виду на самом деле, если я не так понял?

Date: Saturday, 27 December 2008 11:04 (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Хм, но если вы говорите именно о формальной алгоритмизуемости, то есть грубо говоря о наличии у программиста в голове детектора тьюринг-полных языков (точнее, языков с undecidable проблемой останова, не уверен, что это одно и то же), то это тоже в общем-то кажется правдой только пока имеешь дело с простыми алгоритмизируемыми задачами =)

Вот у Аввы недавно было (http://avva.livejournal.com/1994683.html), в комменты не смотрите, там есть решения. Переформулирую для краткости, есть три типа машин тьюринга:
1) Либо останавливается, либо входит в цикл (состояние ленты и машины повторяется периодически).
2) Либо останавливается, либо входит в цикл (состояние машины и текущий символ повторяются периодически).
3) Либо останавливается, либо входит в цикл (состояние машины повторяется периодически).
Определить, какой класс языков распознают каждый из девайсов.

Первые две довольно тривиальны, над третьей я думал несколько дней (урывками), получая удовольствие в том числе и от того, что почти до самого конца совершенно непонятно, какой будет ответ.

Да, более практический пример: decidablility of java type system is currently unknown. То есть пока непонятно, можно ли написать компилятор, который для любых двух сложных типов корректно ответит, является ли один сабтайпом другого.

Date: Saturday, 27 December 2008 09:25 (UTC)
From: [identity profile] plakhov.livejournal.com
Когда вы сделаете этот вывод, не забудьте проверить его об реальность, поискав что-нибудь в интернете.

Date: Thursday, 1 January 2009 08:39 (UTC)
netch: (Default)
From: [personal profile] netch
А про работу пользователем ничего не говорилось;)

Profile

andrzejn: (Default)
Андрій Новосьолов

June 2025

M T W T F S S
      1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Monday, 30 June 2025 03:26
Powered by Dreamwidth Studios