GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (6)След. > >>   Поиск:  
 Автор Тема: Ограничения нашего мышления\сознания
гость
209.88.186.*
Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 7:52
В ряде постов рассматривались типичные ошибки нашего сознания.
При работе над моделями процесса программирования встал вопрос "Почему программисты допускают ошибки?". Причем они считают себя вправе их совершать. Не так много профессий, которые себе это позволяют. И в рамках "Психологической модели" я попытался рассмотреть этот вопрос.
В самом начале утверждается, что наш мозг\сознание\мышление\размышления объективно ограничены в своих возможностях, и, похоже, программирование выходит за эти пределы.

Затем рассматриваются 3 аспекта этих ограничений:
1. Проблема сложности.
2. Проклятье одномерности.
3. Феномен тривиальности.

1. Проблему сложности надо рассматривать с нескольких т.зр.
а) С т.з. человека - субъективность
б) С т.з. цели - достижимость
в) С т.з. неопределенности - многовариантность
г) С т.з. главной стороны сложности - размерности

2. Проклятье одномерности
а) Структурная одномерность - в каждый конкретный момент времени человек может думать\обдумывать только ОДНУ мысль.
б) Динамическая дискретность - мы плохо осознаем неприрывность - для осознания того, что человек увидел\услышал\почувствовал\подумал требуется некоторое время.

3. Феномен тривиальности - эмоциональные проблемы мышления.

Я не психолог, я - программист. Поэтому мне сложно было оценить осмысленность этих построений. Мои попытки найти в литературе подтверждения или опровержения оказались тщетными(правда, это было 20 лет назад). Хотя с практической т.зр. эта модель оказалась очень полезной и конструктивной.

На вашем форуме много интересных, знающих людей. И я вспомнил про свою модель.
С благодарностью приму любые комментарии, критику и дополнения.
Если возникнет интерес, постараюсь раскрыть любой потребный пункт.
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13070
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 8:56
- Какие могут быть формальности между друзьями! Вася, сделай мне программу сортировки.
- А что такое сортировка?
- Мне надо, чтобы я вводил любые числа, а программа выдавала УПОРЯДОЧЕННЫЕ числа.

(через неделю)
- Ты что, Вася! Я ввожу 5 4 7 6, а твоя программа выдает 1 2 8 9.
- Так бы и сказал, что она должна использовать ВВЕДЕННЫЕ числа.

(через неделю)
- Ты что, Вася! Я ввожу 5 4 7 6, а она выдает 4 5 6.
- Так бы и сказал, что ВСЕ числа должны присутствовать.

(через неделю)
- Ты что, Вася! Я ввожу 5 4 7 6, а она выдает 4 5 6 7 и 8 и 9.
- Я выдал все, а от себя ДОБАВИЛ, по дружбе, чтобы ты от меня отстал, наконец.

(через неделю)
- Ты что, Вася! Я ввожу 5.4 и 7.6, а она даже два числа отказывается сортировать.
- А откуда я знал, что тебе НЕ ТОЛЬКО целые надо сортировать?
Может тебе завтра взбредет комплексные сортировать?! Последний раз!!!

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

(С) Соловьев, Ишкушштвенный интеллект
[Ответ][Цитата]
гость
5.29.115.*
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 9:40
Ну, что ж, чтото подобное я ожидал, особенно от егг.
Я надеялся, что мне зададут вопросы, а колотить 4-х часовую лекцию во всех подробностях не хотелось, особенно, если с самого начала мне скажут, что такая классификация ограничений нашего мышления, приводящая к ошибкам, бредовая и не имеет большого смысла.

Хотя из этой модели естественно вытекает, например, объснение преимущеста структурного программирования или отдельные недостатки ООП.
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13070
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 9:43
Цитата:
Автор: гость

Хотя из этой модели естественно вытекает, например, объснение преимущеста структурного программирования или отдельные недостатки ООП.

Есть два типа ошибок: 1) идиот заказчик, 2) идиот программист. Как правило к 28-32 годам и тот и другой тип ошибок благополучно изживаются с опытом.

Если постановка кривая, ее не исправить прямыми руками.
Если руки кривые, их не выпрямить хорошей постановкой.

Других проблем в решении задач нет. А мозг - да, нужен во всех вариантах. Чем более дисциплинированный и креативный, тем лучше.
[Ответ][Цитата]
гость
85.174.208.*
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 10:45
***При работе над моделями процесса программирования встал вопрос "Почему программисты допускают ошибки?

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

***В самом начале утверждается, что наш мозг\сознание\мышление\размышления объективно ограничены в своих возможностях, и, похоже, программирование выходит за эти пределы.

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

***Проблема сложности

Нет того что не может осознать человек, если это осознал другой человек.

***мы плохо осознаем

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

***Проклятье одномерности

На самом деле мыслей ~300 млрд и все разные, а их совокупность - мышление. Само слово мысль не очень подходит с моей точки зрения. Может концепция(смесь представлений)?

***Феномен тривиальности

Ну в принципе соглашусь,когда хочется жрать и трахаться, становится не до правильного кода.
[Ответ][Цитата]
гость
5.29.115.*
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:12
Цитата:
Автор: Egg


Есть два типа ошибок: 1) идиот заказчик, 2) идиот программист.


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

Цитата:
Других проблем в решении задач нет. А мозг - да, нужен во всех вариантах. Чем более дисциплинированный и креативный, тем лучше.


В моем понимании разработка программ состаит не только из работа с заказчиком и постановкой, но и разработка алгоритма и написание кода. И в конце отладка.

Но и работа на первом этапе может вызывать проблемы, если нет единого языка общения.

Я так понял, что ни в алгоритмах ни в коде вы ошибок не допускаете, ну разве что описки?
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13070
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:22
Цитата:
Автор: гость
Вы счастливый человек, если затраты на отладку программ у вас равны нулю. Просто уникальный человек. Наверно единственный в своем роде.

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

Цитата:
Автор: гость
Я так понял, что ни в алгоритмах ни в коде вы ошибок не допускаете, ну разве что описки?

Конечно, допускаю. Я как раз думал, что мы говорим не о них, с ними всё понятно.
Ошибки при организации проекта и ошибки проектирования архитектуры намного более фатальные и проявляются часто тогда, когда очень много времени прошло, много средств и ресурсов освоено/затрачено и очень мало, что можно изменить.
[Ответ][Цитата]
гость
5.29.115.*
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:30
Цитата:
Автор: гость
Гибкость ЯП всему виной, многие ЯП позволяют стрелять себе в ногу, а раз это ещё и не больно, значит можно повторять неоднократно.

А кто говорит о ЯП? Нужны специальные средства. А вот какие? Какими свойствами они должны обладать?

Цитата:
***В самом начале утверждается, что наш мозг\сознание\мышление\размышления объективно ограничены в своих возможностях, и, похоже, программирование выходит за эти пределы.

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

Только дело в том, что эти приделы объективны и очень узкие, и на порядки их не увеличишь ни какими тренировками.

Цитата:
***Проблема сложности

Нет того что не может осознать человек, если это осознал другой человек.

Вы уверены, что ЛЮБОЙ человек может осознать любые Ваши осознания, а Вы сможете осознать любые выкладки Эйнштейна, Пелермана и других из этой кагорты? Про себя могу сказать однозначно - нет.

Цитата:
***Проклятье одномерности

На самом деле мыслей ~300 млрд и все разные, а их совокупность - мышление. Само слово мысль не очень подходит с моей точки зрения. Может концепция(смесь представлений)?


То, что в голове мечется мморе всяких мыслей - сомнений нет.
Вопрос в другом: Вы действительно можете думать о 2 различных кусках кода одномоментно, если Вы программист? Если нет, то можите ли вы думеть одномоментно о аннотации к статье и, например, детальном описании эксперименте? Я все-таки думаю, что тоже нет. Перескакивать с одного на другое - это возможно.

Для программистов есть хороший пример - это оператор IF. Там есть две ветки: ДА и НЕТ. Так вот над каждой веткой приходится думать отдельно, сначало об одной, потом о другой, но ни как не вместе.
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13070
На: Ограничения нашего мышления\сознания
+1
Добавлено: 18 авг 14 12:31
Изменено: 18 авг 14 12:31
Что касается "в конце отладка", это применимо (на мой вкус) только к небольшим задачам. Для крупных проектов я обычно применяю другую методику: переходить из одного работоспособного состояние в другое работоспособное с изменением функциональности. Если грубо, то это выглядит примерно так: есть задача, для нее делается декомпозиция, определяются библиотеки, модули, форматы, интерфейсы и прочее. Делается первый макет, который представляет собой решение задачи, только вместо данных по модулям ходят "болванки", а функции задекларированы, но не написаны, в лучшем случае они конвертят объекты, если речь идет о преобразованиях типов. И старт проекта считается тогда, когда это всё хозяйство начинает жить и можно совокупность входа довести до совокупности выхода.

А дальше начинается работа над проектом, когда происходит разработка или имплементация каких-то функций, частей, отдельных модулей и прочая. То есть ни на одном из этапов реализации нет ситуации, когда проект как система не был бы работоспособен на уровне форматов и процессов. А некоторые функции могут быть очень сложными и писаться годами и адаптироваться под новую фактуру данных.
[Ответ][Цитата]
ЭСГТР
Сообщений: 8449
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:33
Возможности человеческого мышления есть редукция генотипа... генотип ограничен в отражающей способности количеством своих элементов - аминокислот (четыре аминокислоты - три разряда - четверичная система). Чем сложнее генотип тем выше его отражающие возможности. Поэтому нам и нужен ИИ с более сложным генотипом - базирующимся на 4-х разрядах (как минимум пятеричная система) и соответственно более широкими возможностями. Т.е. пять и более различных элементов используемых в генотипе.
ЗЫ. Это будит уже не органика....
[Ответ][Цитата]
гость
5.29.115.*
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:38
Цитата:
Автор: Egg
Ну что Вы, отладка и рефакторинг - это отдельная песня.
Я говорил о тех ошибках, которые невозможно исправить. Об организационных ошибках.

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


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

Я не думаю, что ваш код по стилю напоминает коды середины 60-ых. А почему? Что явилось причиной этих изменений? Меня как профессионала(я надеюсь) этот вопрос очень интересовал. Да, и сейчас интересует.
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13070
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:46
Цитата:
Автор: гость
Я не думаю, что ваш код по стилю напоминает коды середины 60-ых. А почему? Что явилось причиной этих изменений? Меня как профессионала(я надеюсь) этот вопрос очень интересовал. Да, и сейчас интересует.

В середине 60-х я еще не писал, про код той поры мало что знаю.
Если Вы намекаете на переход от процедурного типа к объектному, то это дело вкуса и требований. Например, серьезная математика почти всегда требует оголенного ANSI C (я не беру распределенные вычислиния, а типичные средне-серверные задачи), а морды очень уместно делать на VB. Единственное, что, запретил я у нас пользоваться дельфями, но это решение было больше из-за среды, чем языка. В конечном итоге, всё определяет задача. И стиль кода и внутренние технологические правила, которые позволяют не делать дурацких ошибок, а делать только "умные" ошибки.
[Ответ][Цитата]
гость
5.29.115.*
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:47
Цитата:
Автор: Egg

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

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

Вы прекрасно описали философиэ проектирования сверху-вниз. Везде, где только возможно, я тоже стараюсь ее придерживаться. Но я о другом - зачем вы разбиваете пронрамму на модули, функции и тп. Раньше писали без всех этих излишеств. Причем писали большие системы и даже операционные системы
[Ответ][Цитата]
гость
5.29.115.*
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:52
2 ЭГТР
Я понимаю, что мой пост не совсем по теме ИИ. Но возможно понимание ограничений нашей мыслительной деятельности тоже может оказаться полезным?
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13070
На: Ограничения нашего мышления\сознания
Добавлено: 18 авг 14 12:52
Изменено: 18 авг 14 13:03
Цитата:
Автор: гость
Но я о другом - зачем вы разбиваете пронрамму на модули, функции и тп. Раньше писали без всех этих излишеств. Причем писали большие системы и даже операционные системы

Во-первых, область видимости. Глобальные объекты и даже переменные - это источник как раз глупых ошибок. Во-вторых, повторное использование кода. В процедурном стиле это возможно, но менее удобно. Писать спагетти-код, где система состоит из одного main, мне кажется не очень удобным и эффективным. Особенно, если работа идет несколько лет и ты пишешь не один, а в команде и часть этой команды не только в другом месте земного шарика, но и говорит на другом языке. В-третьих, модульность очень часто определяется задачей. Есть полевые задачи, есть камеральная обработка.
И много еще других резонов, в том числе и ООП.
[Ответ][Цитата]
 Стр.1 (6): [1]  2  3  4  5  6След. > >>