Справка - Поиск - Участники - Войти - Регистрация
Полная версия: Вычислительная мощность человеческого мозга
Частный клуб Алекса Экслера > Наука и техника
Страницы: 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, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43
alexia_f
16 августа 2012, 19:16

sintez написал:
В 90-ые годы этим очень активно занимались, только последние 5-6 лет тему стали забывать.

См. ЗАДАЧА СОСТАВЛЕНИЯ ШКОЛЬНОГО РАСПИСАНИЯ (статья на русском, очень много букв, в конце статьи — ссылки на сайты по теме).
cruizer
16 августа 2012, 19:17

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

Математическая модель нейрона работает похожим образом - нейрон имеет память в виде коэффициентов на входах.
cruizer
16 августа 2012, 19:21

PG написал: Пока ты не дашь слову "интеллект" внятного определения, ты можешь использовать это слово каким угодно способом и смысл всех предложений, в которых оно будет встречаться, будет одинаковым. Я хочу сказать что его не будет. Будет бессмысленная демагогия. smile.gif Потому что и ты и каждый, кто будет читать этот текст, будет понимать под словом "интеллект" что-то своё.

Так и есть smile.gif Тем не менее, лучше заниматься делом а не спорить о смысле слов. Пусть понятие интеллекта не определено, ну и фиг с ним. Обычно, когда говорят об искусственном интеллекте, имеют в виду конкретные задачи, которые вполне себе определены.
cruizer
16 августа 2012, 19:28

sintez написал:
Если говорить про алгоритмы, то алгоритм должен, как минимум, удовлетворять условию: исполнитель может точно (т.е. в пределах погрешности) выполнить каждое из указанных действий за конечное время.

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

sintez написал: Алгоритм как заработать деньги:
1. Открыть фирму.
2. Купить товар.
3. Продать товар дороже, чем купил.
Конец алгоритма.

Другое дело, что не все попытки реализации окажутся удачными smile.gif
Более того, именно по таким несложным алгоритмам люди и строют жизнь, называя это стратегией, планированием или как-нибудь еще.
cruizer
16 августа 2012, 19:33

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

А что тут заниматься, садись и программируй smile.gif Имхо, классическая задача для генетического алгоритма. Уверен, что подходящие варианты расписаний найдутся очень быстро.
alexia_f
16 августа 2012, 19:38

cruizer написал:
Математическая модель нейрона работает похожим образом - нейрон имеет память в виде коэффициентов на входах.

Если ты про нейросети прямого распространения, то их память (=значения весовых коэффициентов) формируется при прохождении однотипных сигналов и "помнит" только о них. Интересно иметь систему, обрабатывающую разнородную информацию, где "воспоминания" об одних сигналах влияли бы на результат обработки сигналов других типов.
Vladimir_Y
16 августа 2012, 20:02

alexia_f написала: См. ЗАДАЧА СОСТАВЛЕНИЯ ШКОЛЬНОГО РАСПИСАНИЯ

Честно говоря, читая текст, настолько густо насыщенный грамматическими ошибками, трудно проникнуться доверием к автору.
sintez
16 августа 2012, 23:13

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

Формально описать требования - это отдельная проблема, допустим, разрешимая с разными допущениями.
Ты уверен, что программа быстро переберет все варианты? Тебе надо позаниматься комбинаторикой, порешать задачи на число вариантов.

cruizer написал: А человек не может выдать плохой вариант, который другим будет очевидно как улучшить?

Может. Не очевидно, но можно, подумав некоторое время, догадаться. Вот только это, опять же, задача для человека. При этом человек, в отличие от эвристических алгоритмов, не выдает варианты, пути улучшения которых видны сразу.

cruizer написал: Так вопрос в том, что умеет делать исполнитель?
Тогда для некоего абстрактного дельца это - нормальный алгоритм, каждый шаг предельно понятен.

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

cruizer написал: Более того, именно по таким несложным алгоритмам люди и строют жизнь, называя это стратегией, планированием или как-нибудь еще.

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

cruizer написал: А что тут заниматься, садись и программируй smile.gif Имхо, классическая задача для генетического алгоритма. Уверен, что подходящие варианты расписаний найдутся очень быстро.

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

Vladimir_Y написал: Честно говоря, читая текст, настолько густо насыщенный грамматическими ошибками, трудно проникнуться доверием к автору.

Подробно не вчитывался, но общую ситуацию человек начал описывать примерно правильно. Диссертаций на эту тему было сделано не одна, а много. Все, по сути, выглядели примерно так же. Просто были более наукообразны: с теоретизированием, формулами и бОльшим количеством результатов.
cruizer
17 августа 2012, 00:37

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

Это да, сети прямого распространения слишком просты и никаких особенно интересных результатов от них ждать не стоит.
Было бы интересно попробовать комбинировать нейронную сеть с различными структурами для хранения данных. По-моему, это поможет более эффективно использовать ресурсы. Огромную нейронную сеть сложной структуры не получится обучить с нуля. Можно попробовать стоить ее поэтапно, как бы повторяя процесс эволюции. Сначала обучить достаточно простые сети, которые умеют решать простые частные задачи - принимать сигналы с сенсоров например, как-то их кластеризировать. Эти обученные мелкие сети можно сжать в более компактные структуры, которые можно моделировать намного быстрее чем множество нейронов. Затем добавляем еще одну сеть, которая работает с входами/выходами этих мелких, и так далее. Сама структура связей тоже может быть не фиксированной, а подстраиваться в ходе обучения. Как мне кажется, таким образом можно создать пусть не интеллект, но модель которая будет передавать какие-то свойства живых огранизмов. Например, сделать электронный мозг для несложного робота.
cruizer
17 августа 2012, 01:02

sintez написал:
Формально описать требования - это отдельная проблема, допустим, разрешимая с разными допущениями.
Ты уверен, что программа быстро переберет все варианты? Тебе надо позаниматься комбинаторикой, порешать задачи на число вариантов.

А зачем перебирать все? Метод локального спуска, в частности, генетический алгоритм, даст нормальные решения, я уверен. Не думаю, что с учетом всех требований существует действительно много различных вариантов расписания. В смысле, разных вариантов конечно очень много, но лишь немногие будут значительно отличаться друг от друга по качеству.

sintez написал:  Может. Не очевидно, но можно, подумав некоторое время, догадаться. Вот только это, опять же, задача для человека. При этом человек, в отличие от эвристических алгоритмов, не выдает варианты, пути улучшения которых видны сразу.

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

Между тем, ты сам только что предложил универсальный алгоритм решения любой задачи:
1. Получить "компьютерное" решение
2. Немного подумать
3. Улучшить полученное решение
biggrin.gif
Смех смехом, но именно так мы и думаем.

sintez написал: С этим "алгоритмом", кстати, можно сходить в банк за заявкой на кредит. Там тоже дадут справедливую и понятную оценку.

Если ты уже нашел где купить и кому продать и подписал договор о намерениях или вроде того, то в банке с большой вероятностью действительно оценят.

sintez написал: У "генетического алгоритма" нет классических задач, а есть задачи для которых его применяли. При этом есть задачи, для которых удачное решение нашлось и тут же задачи с немного другими условиями, для которых оно никак не находится. Чем отличаются первые задачи от вторых, почему он перестает работать - непонятно (тут просто используют всякие модификации типа "отжига", "муравьиных куч" -  в надежде, что заработает).

Ты рассматриваешь разные частные методы, которые работают для своего класса задач. Но представь себе такой мега-алгоритм, который будет в себя включать все что ты перечислил плюс огромное количество других известных методов решения и их комбинации, плюс возможность какого-то обучения в процессе. Такой алгоритм будет еще лучше и универсальнее (поскольку он просто включает в себя разные частные методы), но реализовывать все это для конкретной задачи нецелесообразно. Но именно так работает наш мозг.
Rendom
17 августа 2012, 05:54

sintez написал: Что значит использовать тезис?

Проще говоря, непонятно зачем ты это сказал:

sintez написал: Если говорить про алгоритмы, то алгоритм должен, как минимум, удовлетворять условию: исполнитель может точно (т.е. в пределах погрешности) выполнить каждое из указанных действий за конечное время.

Как твои слова затрагивают тему разговора? Какой вывод из твоих слов можно сделать в контексте разговора про человеческий мозг? Ты хотел акцентировать внимание на какой-то мысли или, наоборот, завуалировать? И, конечно, никак не хочется допускать мысль, что ты просто забыл о чем речь. Такое тоже бывает...
Rendom
17 августа 2012, 06:09

cruizer написал: Было бы интересно попробовать комбинировать нейронную сеть с различными структурами для хранения данных.

Я не уверен, но похоже, в человеческом мозге данные определяют "логику" работы и конечный результат. Если данные положить отдельно, они не смогут оказывать влияния на функционирование нейронной сети.
sintez
17 августа 2012, 10:53

cruizer написал: А зачем перебирать все? Метод локального спуска, в частности, генетический алгоритм, даст нормальные решения, я уверен.

Опять начинается: "- вы на скрипке играть умеете? - не пробовал, но уверен, что смогу".

cruizer написал: В смысле, разных вариантов конечно очень много, но лишь немногие будут значительно отличаться друг от друга по качеству.

Это не уменьшает объем перебора. Человек может догадаться, что какие-то варианты не имеет смысла проверять, алгоритм должен будет проверить все.

cruizer написал: Точно как и генетический алгоритм, который кстати подсмотрен у природы.

Этот несомненно романтический факт ни как не влияет ни на надежность, ни на качество ГА, и не приближает ГА к естественному интеллекту.

cruizer написал:
Если этот метод выдает решения, которые очевидным образом можно улучшить - значит он плохо реализован. Ведь ГА как раз и основан на предположении, что решение можно найти постепенным улучшением.

Очевидно для человека не значит "очевидно" для алгоритма.
На этом предположении основаны жадные алгоритмы. ГА как раз пытается выйти из локальных экстремумов.

cruizer написал: Смех смехом, но именно так мы и думаем.

Это не алгоритм (в математическом смысле).

cruizer написал: Если ты уже нашел где купить и кому продать и подписал договор о намерениях или вроде того, то в банке с большой вероятностью действительно оценят.

Нужен бизнес-план, а не алгоритм.

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

Наш мозг крайне редко использует алгоритмы.

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

Меня пытались убедить, что человек думает, используя алгоритмы. Я попросил примеры. Оказалось, что многие не знают что такое алгоритм. Под алгоритмами они понимают все им хочется, например, любой последовательный список глаголов. Когда человек называет вещи как ему хочется, он может приходить к любым выводам.
Rendom
17 августа 2012, 11:16

sintez написал: Меня пытались убедить, что человек думает, используя алгоритмы. Я попросил примеры. Оказалось, что многие не знают что такое алгоритм. Под алгоритмами они понимают все им хочется, например, любой последовательный список глаголов. Когда человек называет вещи как ему хочется, он может приходить к любым выводам.

Ну не знаю... в общем случае, алгоритм - это действительно последовательность действий, которые обозначаются словами-глаголами. В конкретном случае, описание алгоритма может сильно зависеть от уровня детализации, условий применения... сам понимаешь, тонкостей масса и все они также сильно зависят от конкретной реализации. В том числе и принятая терминология, которой оперируют для построения алгоритмов. Но само существование алгоритмов вряд ли можно подвергнуть сомнению. Или не так?
Vladimir_Y
17 августа 2012, 11:18

sintez написал: Человек может догадаться, что какие-то варианты не имеет смысла проверять, алгоритм должен будет проверить все.

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

sintez написал: Наш мозг крайне редко использует алгоритмы.

haha.gif Опять это заявление без каких-либо следов обоснования. Чувак, так дела не делаются. Давай, доказывай эту свою сентенцию.

sintez написал: Меня пытались убедить, что человек думает, используя алгоритмы.

Ты лжёшь.
Vladimir_Y
17 августа 2012, 11:27

Rendom написал: Ну не знаю...

Чего тут знать. Демагогия обыкновенная. Человек сподобился посмотреть про алгоритм в википедии (я даже ссылочку приведу, а то он "забыл"), увидел, что под это определение вполне подходит и человеческий образ мышления, и теперь рассматривает только "алгоритмы в математическом смысле". Определения "алгоритма в математическом смысле" не даёт, думай что хочешь. Я, к примеру, не знаю, что он имеет в виду. Потому что не знаю, что такое алгоритм в математическом, физическом, химическом, синтетическом или каком ином смысле
cruizer
17 августа 2012, 11:38

sintez написал: Это не уменьшает объем перебора. Человек может догадаться, что какие-то варианты не имеет смысла проверять, алгоритм должен будет проверить все.

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

sintez написал: Это не алгоритм (в математическом смысле).

Почему? Твои слова:

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

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

sintez написал: Нужен бизнес-план, а не алгоритм.

А бизнес-план чем не алгоритм? smile.gif

sintez написал: Меня пытались убедить, что человек думает, используя алгоритмы. Я попросил примеры. Оказалось, что многие не знают что такое алгоритм. Под алгоритмами они понимают все им хочется, например, любой последовательный список глаголов. Когда человек называет вещи как ему хочется, он может приходить к любым выводам.

Я пользуюсь строгим определением, которое ты привел. Можешь показать где несоответствие?
cruizer
17 августа 2012, 12:07

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

Логика работы нейронной сети меняется лишь в некоторых пределах, определяемых данными, в мат модели это коэфициенты либо другие параметры. Иными словами, разделение логики и данных есть и в живом мозге.
Я предлагаю комбинировать модели, например можно использовать семантические сети для того чтобы хранить большие объемы данных, а нейронная сеть будет их обрабатывать. Как здесь уже писали - глаз например сам умеет предварительно обрабатывать сигналы, выделять движуюшиеся и освещенные объекты и т.д. Почему бы не реализовать это иным спобосом чем нейронная сеть, так будет эффективнее. Например обучить нейронную сеть, затем транслировать ее в оптимизированный исполняемый код, который реализует то же самое только быстрее.
В мозге все реализовано на нейронах, но это кажется совсем не экономичным для программной модели.
sintez
17 августа 2012, 14:23

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

"В общем случае" - означает другое.
Заметь, формула - это не любой набор символов в котором есть знак "=", научное определение это не любой набор слов, в котором трудно разобраться. Классический пример: если у кошек есть усы, это не значит, что любое животное с усами называется кошкой.
Соответственно, не любая последовательность глаголов может быть названа алгоритмом.
Странно, что приходится объяснять базовые логические вещи, будто и не НиТ.

Vladimir_Y написал: Это если алгоритм разработчик тупой. В нормальном алгоритме предусмотрено отбрасывание заведомо негодных вариантов. Но для этого надо мальца поднапрячь моск, формализовать критерии годности.

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

Vladimir_Y написал: Опять это заявление без каких-либо следов обоснования. Чувак, так дела не делаются. Давай, доказывай эту свою сентенцию.

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

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

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

Vladimir_Y написал: Определения "алгоритма в математическом смысле" не даёт, думай что хочешь. Я, к примеру, не знаю, что он имеет в виду. Потому что не знаю, что такое алгоритм в математическом, физическом, химическом, синтетическом или каком ином смысле

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

cruizer написал:
Снова все аналогично. ГА не будет размножать и оценивать целые классы плохих вариантов, как и человек.

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

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

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

cruizer написал: А бизнес-план чем не алгоритм?

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

cruizer написал: Я пользуюсь строгим определением, которое ты привел. Можешь показать где несоответствие?

Ты этот текст имеешь ввиду?

1. Получить "компьютерное" решение
2. Немного подумать
3. Улучшить полученное решение

Сразу не так:
"Немного подумать" - неопределенное действие. Что значит "немного"? Где критерий окончания действия? Можно написать "подумать 5 минут", но далее надо предусмотреть, минимум, 2 выхода: что-то придумалось, ничего не придумалось.
"Улучшить полученное решение" - та же неопределенность. Что делать если способ улучшить не известен?
cruizer
17 августа 2012, 16:02

sintez написал: Еще как будет. Самое неприятное, когда он, со всеми своими мутациями, закапывается именно в плохих вариантах. Причем, хорошее решение есть, но нужной мутации не происходит, а вариантов так много, что маловероятно, что она вдруг произойдет.

А параметры подкрутить не получается? Больше мутаций, меньше локального спуска.


sintez написал: А ты посмотри на бизнес-план и посмотри на требования к алгоритмам. Бизнес-план сделан в произвольной форме. Он не требует строгого выполнения последовательности действий (там она вообще очень произвольно обозначена), не гарантирует результата, в бизнес-плане не определено состояние системы в каждый момент (это просто бесполезно), не предусмотрены действия в каждой из возможных ситуации (там их слишком много), не требует четкого определения всего набора исходных данных, ну и т.д.


sintez написал: Сразу не так:
"Немного подумать" - неопределенное действие. Что значит "немного"? Где критерий окончания действия? Можно написать "подумать 5 минут", но далее надо предусмотреть, минимум, 2 выхода: что-то придумалось, ничего не придумалось.
"Улучшить полученное решение" - та же неопределенность. Что делать если способ улучшить не известен?

Другой пример - пишу в скрипте команду для скачивания веб-страницы, например
CODE

wget http://google.com/ | grep "search"

(если не понятно - скачивает веб-страницу и выводит строки в которых есть слово "search")
По твоему, это алгоритм?

Я ведь не указал, как именно скачать страницу, как транслировать адрес google.com в IP, какой сервер гугла выбрать, сколько миллисекунд ожидать соединения, что делать в случае ошибки, куда именно выводить результат - на экран или пересылать мне по сети, и так далее. Что есть состояние системы в каждый момент времени тоже непонятно, наверное весь интернет и все пользователи сети. Полнейшая неопределенность smile.gif
Это я к тому, что любой алгоритм подразумевает, что исполнитель сам разберется в деталях исполнения. Алгоритм для человека подразумевает один уровень детализации и набор инструкций, для компьютера - совершенно другой.
sintez
17 августа 2012, 16:38

cruizer написал: А параметры подкрутить не получается? Больше мутаций, меньше локального спуска.

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

cruizer написал: По твоему, это алгоритм?

Это команда, которая, естественно, запускает алгоритм. В нем все четко определено: куда обращаться, что выбирать, сколько ждать. Если ты всего этого не знаешь, это не значит, что всего этого нет. Есть люди, которые это все определили и запрограммировали.

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

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

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

Теперь мне напиши кто программирует в мозгу человека, например, понятия "немного" и понятие "подумать". Какие механизмы запускаются при этом? Кто это определил? Другими словами, почему два ореха это не куча, а десять уже куча? А шесть?
cruizer
17 августа 2012, 17:50

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

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

sintez написал: Это команда, которая, естественно, запускает алгоритм. В нем все четко определено: куда обращаться, что выбирать, сколько ждать. Если ты всего этого не знаешь, это не значит, что всего этого нет. Есть люди, которые это все определили и запрограммировали.

Определено где-то, но не в самом алгоритме. Точно так же как и для "человеческих" алгоритмов, против которых ты выступаешь.

sintez написал: Ты слишком одушевляешь компьютеры. Если ты не знаешь как написаны программы, это еще не значит, что их никто не писал. Нет понятия "исполнитель сам разберется". Вместо этого "сам" есть конкретные проектировщики, инженеры, программисты, которые не просто разобрались, а все это реализовали, вплоть до каждой операции.

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

sintez написал: Теперь мне напиши кто программирует в мозгу человека, например, понятия "немного" и понятие "подумать". Какие механизмы запускаются при этом? Кто это определил?

Если ты не понимаешь какие механизмы при этом работают, это не значит что их нет smile.gif
Martin
17 августа 2012, 18:22

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

Вот определение алгоритма в математическом смысле из Википедии:

Основная идея, лежащая в основе машины Тьюринга, очень проста. Машина Тьюринга — это абстрактная машина (автомат), работающая с лентой отдельных ячеек, в которых записаны символы. Машина также имеет головку для записи и чтения символов из ячеек, которая может двигаться вдоль ленты. На каждом шагу машина считывает символ из ячейки, на которую указывает головка, и, на основе считанного символа и внутреннего состояния, делает следующий шаг. При этом, машина может изменить свое состояние, записать другой символ в ячейку или передвинуть головку на одну ячейку вправо или влево.[4]

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

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

Vladimir_Y
17 августа 2012, 20:13

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

С минимумом и зачатками — возможно и так. Я уже, признаться, не могу спуститься на такой низкий уровень, так что извини. Но странно, когда о человеческом образе мышления берётся рассуждать человек с минимумом и зачатками.
Vladimir_Y
17 августа 2012, 20:14

Martin написал: Вот определение алгоритма в математическом смысле из Википедии

Это не определение алгоритма вообще.
v-groove
17 августа 2012, 21:01

Vladimir_Y написал:
Это не определение алгоритма вообще.

Это ты уже придираешься. Машина Тьюринга - это таки формализация понятия алгоритма в математике. Или, если хочешь - вспомогательное понятие для формализации понятия алгоритма. А алгоритм в математическом смысле - это любой набор алфавита, начального состояния и правил перехода, которые могут быть в принципе исполнены Машиной Тьюринга. А конкретный алгоритм - это конкретный алфавит, набор правил и начальное состояние. Есть еще несколько определений алгоритма, эквивалентных этому, но этот вроде как самый наглядный. Возможно есть еще какие-то попытки как-то расширить понятие алгоритма в математике, но мне таких с ходу что-то не припоминается.
Vladimir_Y
17 августа 2012, 21:32

v-groove написал: Это ты уже придираешься. Машина Тьюринга - это таки формализация понятия алгоритма в математике. Или, если хочешь - вспомогательное понятие для формализации понятия алгоритма.

Вспомогательное понятие — сколько угодно. Никаких возражений. Но формализация понятия алгоритма с помощью машины Тьюринга видится мне настолько сильным упрощением, что отрывает от реальности и вызывает к жизни странные взгляды типа тех, что нам демонстрирует sintez.

v-groove написал: А конкретный алгоритм - это конкретный алфавит, набор правил и начальное состояние.

А правила, расширяющие алфавит, могут входить в алгоритм? Как к этому относится машина Тьюринга?
v-groove
17 августа 2012, 21:50

Vladimir_Y написал:
Но формализация понятия алгоритма с помощью машины Тьюринга видится мне настолько сильным упрощением, что отрывает от реальности ...

Ну собственно всё так и есть. То понятие алгоритма, которым оперирует математика, оно такое и есть. Абстракция. Более привычное понимание алгоритма - оно естественно шире и ближе к реальности.

Vladimir_Y написал:
А правила, расширяющие алфавит, могут входить в алгоритм? Как к этому относится машина Тьюринга?

Если брать формальное определение машины Тьюринга - то нет, не может. Только это на самом деле не принципиально. Машина Тьюринга с конечным алфавитом может моделировать любую другую машину Тьюринга (формально называется Универсальной Машиной Тьюринга), даже модифицированную, в том числе и с возможностью в процессе работы расширять или изменять любым образом по любым правилам свой алфавит. Тем самым такая новая машина просто сводиться к первоначальному более узкому определению. Це ж математика. Там все так.
Vladimir_Y
17 августа 2012, 22:20

v-groove написал: То понятие алгоритма, которым оперирует математика, оно такое и есть.

Не знал. Ну что ж, теперь многое становится понятно. Спасибо за пояснение.
Buzuka
18 августа 2012, 00:16

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

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

sintez написал: Локальный спуск выполняется всегда, если он возможен.

Я, возможно, не совсем внимательно прочитал, в чём состоит твоё возражение, но человек, отбрасывая заведомо плохие варианты, как раз и делает локальный спуск. Вполне себе машина Тьюринга smile.gif
Rendom
18 августа 2012, 04:56

Buzuka написал: Скажем, бизнес план вида "открыть фирму - купить товар - продать дороже" назвать алгоритмом нельзя, так как ты будешь яблоки продавать, а я - апельсины, что даст разные результаты даже при одинаковом начальном капитале.

Это смотря с какой стороны посмотреть, потому что с моей, результаты одинаковые: оба получили прибыль. Таким образом, для меня это алгоритм или нет?
Хомса
18 августа 2012, 07:12

PG написал:
Для начала дай определение слову "разум". smile.gif Знаменитый тест тьюринга хорош только одним - уходом от ответа.

Давай ограничимся не разумом, а отдельной клеткой. Дай ей определение, и смоделируй опять же ее же. А там уже посмотрим.
Хомса
18 августа 2012, 07:15
Народ, который алгоритмы обсуждает, а вы вообще программы писали чтоб семью типа прокормить?

А какие-нить алгоритмы создали, которые навроде вороного-делоне?

Я вас читаю и малость охреневаю. Тут народ годами складской учет пишет, а вы типа фундаментальные проблемы разума в форуме решаете, в перерывах между кофеем.
sintez
18 августа 2012, 09:02

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

Да, что-то такое приходится делать. Вот только простое увеличение размера мутаций приводит к комбинаторному (а это огромные числа) росту перебора. Чтобы это обойти, придумывают всякие модификации ГА. Их очень много. Где Мартин работает, на эту тему десятки диссертаций защитили.

cruizer написал: Определено где-то, но не в самом алгоритме. Точно так же как и для "человеческих" алгоритмов, против которых ты выступаешь.

Именно в алгоритме. Там, например, обязательно проверяется определенная величина, которая хранится в определенной ячейке. Без этого не бывает.

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

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

cruizer написал: Если ты не понимаешь какие механизмы при этом работают, это не значит что их нет

Механизмы есть, но они не алгоритмические.

Vladimir_Y написал: С минимумом и зачатками — возможно и так. Я уже, признаться, не могу спуститься на такой низкий уровень, так что извини. Но странно, когда о человеческом образе мышления берётся рассуждать человек с минимумом и зачатками.

Математика такая вот коварная наука. Сперва нужно научиться оперировать простыми определениями и логическими конструкциями, а только потом бросаться в "высшие сферы".

v-groove написал: Не знал. Ну что ж, теперь многое становится понятно. Спасибо за пояснение.

Я тебе с самого начала это и объяснял. Ты можешь иметь собственные личные представления о любых математических терминах. Это вполне характерно для гуманитариев. И это - прекрасно! Как писал Блок: "Стальных машин, где дышит интеграл, С монгольской дикою ордою!". Это очень красиво и достойно самого серьезного обсуждения.
Вот только у нас же НиТ, вроде как? Как я понимаю, мы тут не можем обсуждать как "дышат интегралы", как "думают алгоритмы" и прочие представления о математических терминах, кроме собственно математических. Для этого другие подфорумы должны быть.

Buzuka написал: Я, возможно, не совсем внимательно прочитал, в чём состоит твоё возражение, но человек, отбрасывая заведомо плохие варианты, как раз и делает локальный спуск. Вполне себе машина Тьюринга

Мы там, вроде, не человека обсуждали, а алгоритмы. Что же касается человека, то локального спуска в строгом смысле он обычно не делает. Локальный спуск всегда предусматривает некоторые параметры, для которых вычисляется градиент или направление спуска, потом по определенным правилам делается шаг - изменение этих параметров. Для человека это все и излишняя работа, и он, каким то чудом (это как раз то, что так и не удается заалгоритмизировать), сам "видит" что и в каком направлении изменять (лишний расчет ему только мешает).

Rendom написал: Это смотря с какой стороны посмотреть, потому что с моей, результаты одинаковые: оба получили прибыль. Таким образом, для меня это алгоритм или нет?

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

Хомса написал: А какие-нить алгоритмы создали, которые навроде вороного-делоне?

Я могу дать ссылки на статьи, но как-то не хотелось бы себя сравнивать с такими фигурами.
Vladimir_Y
18 августа 2012, 11:23

sintez написал: Я тебе с самого начала это и объяснял.

Да ты шо? И даже термин определил, как я тебя просил? Нет? А почему? Мы же в НиТ, вроде как?

sintez написал: Математика такая вот коварная наука.

Только при чём здесь математика?

sintez написал: Для человека это все и излишняя работа, и он, каким то чудом (это как раз то, что так и не удается заалгоритмизировать), сам "видит" что и в каком направлении изменять

Мы же в НиТ, вроде как? Мы тут не можем обсуждать, как "дышат интегралы", и каким чудом происходят события, которые с минимумом математического образования и зачатками логики нам постичь не удаётся. Для этого другие подфорумы должны быть.
Vladimir_Y
18 августа 2012, 11:42

Хомса написал: Я вас читаю и малость охреневаю. Тут народ годами складской учет пишет, а вы...

Вообще-то, во-первых, никто тут фундаментальных проблем не решает, это тебе привиделось что-то. Во-вторых, правильный подход к разработке софта годится и для складского учёта, и для фундаментальных проблем. В-третьих, складской учёт пишут годами, потому что обстоятельства меняются. Нутро-то алгоритмическое как было, так и осталось, а внешних рюшечек требуется больше. Реализация, скажем, устойчивости к выходу какого-нибудь компьютера из строя в определённый момент развития системы становится труднее собственно учёта.
Solmir
18 августа 2012, 12:10
Вставлю свои 5 копеек про задачу о составлении расписания. Почему тетка его может составить, а компьютер — нет. Компьютер имеет дело с четко поставленными задачами. Если расписание должно быть оптимальным, то оно должно удовлетворять всем условиям в виде неравенства и минимизировать некую функцию ("норму"). С неравенствами понятно, а вот формализовать норму не удается. Точнее формализовывали и не раз, но результаты оказываются печальными.
Тетка понимает, что все пожелания от всех реализовать нельзя. Да и пожелания часто высказываются достаточно обще. Но тетка прекрасно знает, чьи пожелания исполнять в первую очередь. Декана или аспиранта, например. А если аспирант — сын ректора? Да, можно ввести весовую функцию, характеризующую "важность" человека. Но его требования имеют разную степень важности, от некоторых он может отказаться, другие обязательны.
Тетка умеет учиться (поэтому ее первое самостоятельное расписание обычно плохо). Если требование А не выполнили, а он смирился, это учитывается. Если пришел и поскандалил с теткой, то это почти то же. Если пожаловался теткиному начальству и то отругало тетку, то надо уважить в следующий раз. Если отругало и велело переделать — уважить сегодня. Если условие ставит незаменимый совместитель и оно имеет вид "пишу заявление только если будет нужное мне расписание", то это очень серьезно. И т.д.
Вы готовы это алгоритмизировать? Удачи!
Vladimir_Y
18 августа 2012, 12:18

Solmir написал: Вы готовы это алгоритмизировать?

Алгоритмизировать — фигня вопрос. Вот только весовые коэффициенты пусть тётка сама вводит biggrin.gif
Solmir
18 августа 2012, 12:40

Vladimir_Y написал:
Алгоритмизировать — фигня вопрос. Вот только весовые коэффициенты пусть тётка сама вводит biggrin.gif

Для тетки есть разница между "обязательно 2-я пара в четверг" и "где-то с утра в конце недели". В том числе и по степени важности. А еще есть невысказанные пожелания студентов. В расписании не должно быть "окон", соседние пары не должны быть в корпусах, отстоящих на 20 минут ходьбы и т.п.
У преподавателей есть "нежелательно" и "невозможно". Но некоторые "невозможно" все-таки возможны.
Еще тетка может позвонить преподавателю и уточнить, подойдет ли ему вариант, отличный от требуемого, поискать компромисс.
Solmir
18 августа 2012, 12:43

Vladimir_Y написал:
Вот только весовые коэффициенты пусть тётка сама вводит biggrin.gif

То есть творческую часть поручим человеку? Тогда компьютер просто перебиратель вариантов.
Vladimir_Y
18 августа 2012, 12:50

Solmir написал: Для тетки есть разница между...

Вот пусть эту разницу и компу сообщит. В виде честных весовых коэффициентов. Только она не сообщит.

Solmir написал: Еще тетка может позвонить преподавателю и уточнить

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

Solmir написал: То есть творческую часть поручим человеку?

Мы всё ещё в НиТ? Что такое "творческая часть"? Речь, с которой нужно подойти к преподавателю и уговорить его на неудобные часы?
Rendom
18 августа 2012, 13:33

sintez написал: Ты прибыль получил и только после этого решил, что это алгоритм. Надо наоборот.

Вот это совсем уже непонятно. Откуда взялся запрет на использование жизненного опыта при написании алгоритма?
Rendom
18 августа 2012, 13:37

Vladimir_Y написал: Алгоритмизировать — фигня вопрос. Вот только весовые коэффициенты пусть тётка сама вводит

Есть еще второй вариант: ругаться и дружить с преподавателями и студентами должен тоже компьютер.
cruizer
18 августа 2012, 21:06

sintez написал: Именно в алгоритме. Там, например, обязательно проверяется определенная величина, которая хранится в определенной ячейке. Без этого не бывает.
CODE
wget http://google.com/ | grep "search"

И где здесь проверяются величины в ячейках? Я вижу только две команды: wget и grep, и оператор "|" который перенаправляет результат первой команды на вход второй.
Конечно когда ты это запустишь на компьютере, программа транслируется в последовательность элементарных операций. Но в самой программе способ ее выполнения не определен. Еще веселее в функциональных языках программирования, где разработчик может не определять даже последовательность выполнения всех операторов. В общем, похоже что тебе придется признать, что программы на языках высокого уровня не являются алгоритмами.

sintez написал: Наличие исполнителей и проектировщиков это только один из критериев, который помогает понять что такое алгоритм. Другой критерий: детерминированность или определенность реакции. Зная входные параметры и исполняемое действие мы можем однозначно сказать, что произойдет в результате. Если этого не произошло, значит алгоритм не работает (исполнитель сломался).

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

Как видишь, формализация вычислительной системы как машины Тьюринга "напрямую" работает не слишком хорошо. Чтобы соблюсти формальности, можно сказать, что МТ может моделировать вероятности сбоев и дискретные порты ввода-вывода, тогда все ок. Но толку от такой формальной модели немного, поскольку она окажется на порядки сложнее самой вычислительной системы.
Buzuka
18 августа 2012, 22:44

Rendom написал: Это смотря с какой стороны посмотреть, потому что с моей, результаты одинаковые: оба получили прибыль. Таким образом, для меня это алгоритм или нет?

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

sintez написал: Что же касается человека, то локального спуска в строгом смысле он обычно не делает.

Локальный спуск - это способ выбора относительно неплохого решения. У человека есть очень похожий инструмент, который ты почему-то называешь чудом smile.gif

sintez написал: Локальный спуск всегда предусматривает некоторые параметры, для которых вычисляется градиент или направление спуска, потом по определенным правилам делается шаг - изменение этих параметров.

И с чем из перечисленного не справляется человек?

sintez написал: Для человека это все и излишняя работа, и он, каким то чудом (это как раз то, что так и не удается заалгоритмизировать), сам "видит" что и в каком направлении изменять (лишний расчет ему только мешает).

Ты уже определись: либо человек в курсе про градиент и параметры, а, следовательно, никакой "излишней работы" не наблюдается, либо ничего он не "видит", а берёт решение с потолка.
Buzuka
18 августа 2012, 22:51

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

Эээ...
Именно так и обстоит дело. Алгоритм может быть записан на языке высокого уровня, но программа в общем случае алгоритмом не является.
Rendom
19 августа 2012, 04:40

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

Рассматривай алгоритм совместно с формулировкой задачи. Всякий алгоритм пишется в терминах выполняемого задания. Это разные задачи: продемонстрировать простейший алгоритм в качестве примера, и натурально разбогатеть.
sintez
19 августа 2012, 12:57

Vladimir_Y написал: Да ты шо? И даже термин определил, как я тебя просил? Нет? А почему? Мы же в НиТ, вроде как?

Описание из википедии вполне доступно.

Vladimir_Y написал: Мы же в НиТ, вроде как? Мы тут не можем обсуждать, как "дышат интегралы", и каким чудом происходят события, которые с минимумом математического образования и зачатками логики нам постичь не удаётся. Для этого другие подфорумы должны быть.

У меня были претензии к тебе по поводу терминологии, прежде всего. Ты придумал, вообразил что такое алгоритм и пытался строить рассуждения на основе собственных фантазии, придавая известному термину выдуманные тобой свойства.
"Чудо" - не математический термин. Кроме того, обрати внимания на вывод. Мы не знаем как человек делает решения (назвать это можно как угодно), значит принятие таких же решений технически нам не доступно. На таком уровне обсуждать вполне можно.

Solmir написал: Тетка понимает, что все пожелания от всех реализовать нельзя. Да и пожелания часто высказываются достаточно обще. Но тетка прекрасно знает, чьи пожелания исполнять в первую очередь. Декана или аспиранта, например. А если аспирант — сын ректора? Да, можно ввести весовую функцию, характеризующую "важность" человека. Но его требования имеют разную степень важности, от некоторых он может отказаться, другие обязательны.

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

Solmir написал: Для тетки есть разница между "обязательно 2-я пара в четверг" и "где-то с утра в конце недели". В том числе и по степени важности. А еще есть невысказанные пожелания студентов. В расписании не должно быть "окон", соседние пары не должны быть в корпусах, отстоящих на 20 минут ходьбы и т.п.
У преподавателей есть "нежелательно" и "невозможно". Но некоторые "невозможно" все-таки возможны.
Еще тетка может позвонить преподавателю и уточнить, подойдет ли ему вариант, отличный от требуемого, поискать компромисс.

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

Solmir написал: То есть творческую часть поручим человеку? Тогда компьютер просто перебиратель вариантов.

Вот как раз с перебором начинаются сюрпризы. Сделаем оценку.
У нас в шахматке 6х8=48 вариантов пар для занятий в неделю, пусть это с вечерниками-заочниками, упростим до 6х6=36 свободных месть. У группы в неделю около 15 пар.
Сколько способов расставить эти 15 пар по 36 полям? Около 7*10^21. Да там есть запреты (на окна, например), но они не уменьшают число вариантов кардинально. При этом я еще не учитываю всякие четные/нечетные недели, занятия по подгруппам.
Если у нас есть хотя бы 10 независимых от аудиторий и преподавателей групп (у нас их сильно больше, но допустим), то мы уже получаем больше чем 10^210 вариантов для перебора.
У нас в вузе больше 100 групп. Количество вариантов, конечно, будет не 10^2100, а сильно уменьшено (может, до 10^500) за счет того, что преподаватели и аудитории пересекаются, а также разных запретов, которые мы ввели. Вот только даже эти числа исключают всяческую возможность перебора. Несложно прикинуть, что даже для самых совершенных компьютеров, время перебора будет больше чем время жизни вселенной.

Rendom написал: Вот это совсем уже непонятно. Откуда взялся запрет на использование жизненного опыта при написании алгоритма?

Жизненный опыт всегда нужен. Вот он как раз и подсказывает бизнесменам что-то вроде: "хочешь насмешить бога, расскажи ему о своих планах". Другими словами, жизнь - не алгоритм, рассчитывать на однозначную реакцию от выполнения пунктов плана довольно глупо.
Rendom
19 августа 2012, 13:12

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

"Довольно глупо" - это пытаться рассказывать другим, что такое жизнь, когда сам не особо разобрался.
Vladimir_Y
19 августа 2012, 13:23

sintez написал: У меня были претензии к тебе по поводу терминологии, прежде всего. Ты придумал, вообразил что такое алгоритм и пытался строить рассуждения на основе собственных фантазии, придавая известному термину выдуманные тобой свойства.

Ты опять лжёшь.
1) Всё началось с того, что ты заявил, будто человек почти никогда не пользуется алгоритмами. Без доказательства.
2) Тогда я попросил у тебя определение алгоритма.
3) Ты привёл определение из Википедии, из которого совершенно ясно, что алгоритмами человек пользуется, и очень часто.
4) Теперь при упоминании алгоритма ты начал всякий раз подчёркивать, что имеешь в виду алгоритм "в математическом смысле".
5) Когда я попросил тебя привести определение вот этого самого "в математическом смысле", в отличие от общепринятого, ты не привёл. Привёл Мартин.
6) Я уж не говорю о том, что возможность перехода от "алгоритмов вообще" к "алгоритмам в математическом смысле", применительно к мышлению человека, тоже должна быть обоснована. И этого обоснования я тоже не вижу.

Таким образом выходит, что произвольную терминологию в произвольные моменты времени вводишь как раз ты. Ты подменяешь предмет обсуждения, маскируешь главную проблему и концентрируешься на мелочах, которые в рамках обсуждения (глядя на тему) вычислительной мощности человеческого мозга несущественны.
Дальше >>
Эта версия форума - с пониженной функциональностью. Для просмотра полной версии со всеми функциями, форматированием, картинками и т. п. нажмите сюда.
Invision Power Board © 2001-2016 Invision Power Services, Inc.
модификация - Яро & Серёга
Хостинг от «Зенон»Сервера компании «ETegro»