LINUX.ORG.RU

Может ли существовать алгоритм распознавания закономерностей?

 


1

2

Вот, допустим, если человеку сунуть лист бумаги с текстом содержащим произвольный набор символов, а среди этих символов будет несколько раз встречаться, например aaa, то человек это распознает. Или, например, осмысленный текст, где часто встречаются 2 подряд идущие слова. Или то, что каждую пятницу идет какая-то телепередача. Фишка в том, что закономерности распознаются не на основе какого-то конкретно заданного предусловия, а просто так, «по природе».

Как мог бы выглядеть алгоритм, реализующий нечто подобное. То есть, программа распознающая произвольные закономерности. Хотя бы, допустим, в узкой области, допустим, только в анализе текста. Возможно ли это вообще? Предпринимались ли попытки такой реализации?

Особенно интересует, как, примерно должен выглядеть такой алгоритм или подход?



Последнее исправление: newKingOfTheBlock (всего исправлений: 1)
Ответ на: комментарий от anonymous

Это отжим Крыма «взвешенная» внешняя политика?

Да. И ты бы это понимал, если бы понимал, что такое вообще есть внешняя политика

</thread>

anonymous
()
Ответ на: комментарий от anonymous

Ну взяли Россию санкциями за яйца, дальше что? Китай и Турция — пшик. На этом фокусы закончились. Жрите говно, лет через сто может и с нимут санкции.

anonymous
()
Ответ на: комментарий от anonymous

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

Великое достижение, да. Правильно выбранная точка отсчета решает.

tailgunner ★★★★★
()
Ответ на: комментарий от newKingOfTheBlock

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

Эти ребята вообще не о том разговаривают, не от тех точек отталкиваются

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

ему достаточно задать достаточно общий процесс, по которому ты будешь синхронизировать время. и заморачиваться над шестерёнками.

а как ты там часики собрал — уже твои личные заморочки. достаточно общий процесс ведь этого не требует.

anonymous
()
Ответ на: комментарий от newKingOfTheBlock

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

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

т.е.: было время, когда времени не было, и аптайм был -бесконечность (ибо комп выключен). потом после бутстрапа и загрузки системы возникло время, даже несколько : user time, system time, io time, и прочие.

случился бутстрап, коэволюция, самораскрутка друг другом — а не последовательная иерархическая сборка. как компилятор переписали на себе самом — самобутстрап.

anonymous
()
Ответ на: комментарий от newKingOfTheBlock

Система — это категория человеческого мышления.

праально, это модель. то есть: «система мира» это и есть модель мира, достаточно полная и полезная для.

моделей может быть несколько, и систем тоже. не путай карту и территорию.

Для небес не существует ни сложности ни систем.

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

Что имеется в виду под сложностью?

сложность.

anonymous
()
Ответ на: комментарий от anonymous

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

просто этот богослов ниасилил транзитивное замыкание.

anonymous
()
Ответ на: комментарий от ovk48

То есть если есть один Абсолют, то второй гипотетический Абсолют равен первому.

равен с точностью до изоморфизма.

anonymous
()
Ответ на: комментарий от anonymous

Утверждается, что творимое не может быть без творца.

там помимо теоремы о существовании надо ещё и единственность доказать.

man стигмергия, stigmergy, теория клубов.

anonymous
()
Ответ на: комментарий от ovk48

Я спорю с самой идеей того, что Творцу всего может быть нужен творец.

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

anonymous
()
Ответ на: комментарий от anonymous

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

гностики с тобой несогласны и смотрят как на агностика.

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

у некоторых эта сфера 0-мерная и сворачивается в точку зрения.

anonymous
()
Ответ на: комментарий от anonymous

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

«что вверху, то и внизу». если внизу познаваемо, значит вверху тоже.

Если что-либо познаваемо, значит оно ниже божественного и является лишь отблеском.

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

anonymous
()
Ответ на: комментарий от anonymous

Пимернр то же самое что вывод expression -->> mayby C && maybe not C.

man интуиционистская логика. там может быть C и не С одновременно.

anonymous
()
Ответ на: комментарий от ovk48

Комплексные числа тоже наверно кто-то называл волюнтаризмом.

катющик, же ну. а

когда иррациональные открыли, так вообще с корабля выкинули. вот что разрыв шаблона делает.

anonymous
()
Ответ на: комментарий от slackwarrior

ещё можно сократова человека вспомнить: «Человек - это плосконогтее двуногое без перьев».

anonymous
()

Тред не читал, но такой алгоритм есть, называется AIXI.

Xenius ★★★★★
()

Думаю, тебе стоит копать в сторону нейронных сетей. Однако в любом случае понятие «закономерности» следует уточнить - в любых данных, какими бы они не были случайными, можно найти огромное количество «закономерностей», только имеют ли они смысл - вопрос? И то что ты видишь закономерность «повторяются три раза буквы А» это лишь следствие твоего ограниченного человеческого мышления, которое цепляется за простые объяснения. А то что в этом тексте, скажем, закодировано число Пи заменой цифр на последовательности букв - ты никогда не заметишь.

И вообще, можно определить алгоритм преобразования любой последовательности букв в любую. В том числе некую математическую функцию, преобразующую «Войну и мир» в «Мёртвые души». Самый банальный вариант - преобразуем все символы в их коды, склеиваем в огромное число. Делаем то же самое со вторым текстом. Находим отношение этих чисел. И говорим «если взять и склеить числовое представление всех символов этого текста и поделить на N, то получится новое литературное произведение! Это явная закономерность! Гоголь сплагиатил у Толстого!». А если придумать более сложную функцию, а не простое деление, то будет ещё эффектнее.

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

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

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

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 4)
Ответ на: комментарий от KivApple

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

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

anonymous
()
Ответ на: комментарий от anonymous

алгоритм преобразования программы Х в программу минимального размера из эквивалентных Х

архиватор :-)

monk ★★★★★
()
Ответ на: комментарий от monk

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

anonymous
()
Ответ на: комментарий от anonymous

Но он не гарантирует, что размер минимальный.

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

Да и программой это после обработки архиватором уже не будет.

Будет. http://bellard.org/lzexe.html

monk ★★★★★
()
Ответ на: комментарий от anonymous

программы Х в программу минимального размера из эквивалентных Х

Или ты имеешь в виду именно программу, а не «текст без потерь»? Тогда смотри оптимизатор в компиляторе (тот же gcc).

monk ★★★★★
()
Ответ на: комментарий от monk

Среднестатистически гарантирует.

А нам по условию надо наверняка, а не среднестатистически.

Будет. http://bellard.org/lzexe.html

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

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

anonymous
()
Ответ на: комментарий от monk

Или ты имеешь в виду именно программу, а не «текст без потерь»? Тогда смотри оптимизатор в компиляторе (тот же gcc).

Он умеет решать алгоритмически неразрешимые задачи? :)

anonymous
()
Ответ на: комментарий от anonymous

В квантовой механике присутствует понятие абсолютного недетерминизма.

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

anonymous
()
Ответ на: комментарий от anonymous

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

Можно пример?

monk ★★★★★
()
Ответ на: комментарий от anonymous

На самом деле даже такая задача (написать эквивалентную программу меньше заданной) - уже неразрешима.

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

Но в вопросе было «вернуть программу минимального размера». Если она уже минимального размера, то вернётся сама программа.

monk ★★★★★
()
Ответ на: комментарий от anonymous

алгоритмически неразрешимые задачи

Программа оптимизации алгоритмически разрешима.

Или ты имеешь в виду, что gcc должен уметь менять алгоритм при оптимизации, а в вырожденном случае (если программа является чистой функцией), то компилировать сразу в ответ? Это можно сделать, если не ограничивать время компиляции.

monk ★★★★★
()
Ответ на: комментарий от monk

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

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

anonymous
()
Ответ на: комментарий от monk

Программа оптимизации алгоритмически разрешима.

программа оптимизации разрешима. но какое она имеет отношение к тому, о чем мы говорим?

anonymous
()
Ответ на: комментарий от monk

Можно пример?

Эта задача сводится к доказательству эквивалентности двух произвольных программ. А это очевидно неразрешимо.

anonymous
()
Ответ на: комментарий от anonymous

это очевидно неразрешимо.

В том смысле, что для любую незавершающуюся чистую программу можно соптимизировать в «int main() { for(;;); }», но невозможно вычислить, является ли программа завершающейся?

Повторю ещё раз: «должен уметь менять алгоритм при оптимизации, а в вырожденном случае (если программа является чистой функцией), то компилировать сразу в ответ? Это можно сделать, если не ограничивать время компиляции». Для проверки на завершимость компиляция не закончится и таким образом можно будет сделать вывод, что программа незавершима. :-)

monk ★★★★★
()
Ответ на: комментарий от monk

В том смысле, что для любую незавершающуюся чистую программу можно соптимизировать в «int main() { for(;;); }», но невозможно вычислить, является ли программа завершающейся?

В том числе. Но даже если ограничиться завершающимися программами то не все так просто :)

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

Отличное решение проблемы останова :)

anonymous
()
Ответ на: комментарий от monk

Программа оптимизации алгоритмически разрешима.

Что такое «программа оптимизации»? По заданной программе написать эквивалентную ей, но минимального размера — неразрешимая задача.

Или ты имеешь в виду, что gcc должен уметь менять алгоритм при оптимизации, а в вырожденном случае (если программа является чистой функцией), то компилировать сразу в ответ? Это можно сделать, если не ограничивать время компиляции.

Это нельзя сделать.

Waterlaz ★★★★★
()
Ответ на: комментарий от monk

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

Алгоритм по определению работает за конечное время.

Waterlaz ★★★★★
()
Ответ на: комментарий от anonymous

На самом деле даже такая задача (написать эквивалентную программу меньше заданной) - уже неразрешима.

казалось бы, причём тут суперкомпиляция В. Турчина.

anonymous
()
Ответ на: комментарий от Waterlaz

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

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

anonymous
()
Ответ на: комментарий от annulen

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

anonymous
()

man кластерный анализ, например, для начала.

Shadow ★★★★★
()
Ответ на: комментарий от Waterlaz

На самом деле даже такая задача (написать эквивалентную программу меньше заданной) - уже неразрешима.

казалось бы, причём тут суперкомпиляция В. Турчина.

Ни при чем.

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

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

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

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

и эта вот задача вполне разрешима на метамашине В. Турчина, заметьте: выполняется прогонка, строится граф остаточной программы, граф сворачивается — получается процесс, эквивалентный исходному, но более оптимальный за счёт того, что вычисления были свёрнуты при прогонке (часть рантайм вычислений теперь можно захадркодить в CTFE).

никакой неразрешимости не возникает — на тех данных, когда свёртка вычислений и построение остаточной программы получилось, и принесло эффект от оптимизированной в CTFE модели.

anonymous
()
Ответ на: комментарий от anonymous

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

парадокc?

цитата:

Ну, а переход от ситуации, когда есть только основная система, к ситуации, когда возникает метасистема, как и следует ожидать, называется «метасистемным переходом».

Имеем ли мы дело с метасистемными переходами в программировании? Не знаю, как там насчёт теоретиков, но программисты-практики сталкиваются с ними каждый день. Ну, например, что представляет из себя процесс отладки? Отладчик исполняет программу + данные по-шагам, а над ними тяжело дышит программист, который тщетно пытается понять, что происходит. Этот программист и находится на «метауровне» и, стало быть, является «метасистемой» (или её частью). Однако же, идея «автоматизации программирования» (жалко, что про этот изящный термин ныне почти забыли), подразумевает, что было бы хорошо, если бы всех программистов можно было повыгонять и заменить из на бездушные машины и/или программы.

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.