Что такое алгоритм?

Как ответить на этот вопрос и не попасть пальцем в небо.

Удивительное дело. Люди, стоявшие у истоков того, что мы сейчас называем computer science, считали "алгоритм" понятием в принципе неопределяемым. Таким же, как, например, "множество". Но, в отличие от "множества"… Кстати, вы много видели определений множества? Кроме совсем смешного, типа: "множество — это совокупность чего-либо" (ага, ага, а совокупность — это множество чего-либо)? В отличие от "множества", в определениях "алгорима" недостатка нет. Вы без труда найдете штук пять или шесть.

Алгоритмом называется точное и понятное предписаниe исполнителю совершить последовательность действий, направленных на решение поставленной задачи. 

Алгоритм — это последовательность действий для исполнителя, записанная на формальном языке и приводящая к заданной цели за конечное время.

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

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

Алгоритм — это всякая система вычислений, выполняемых по строго определённым правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи. 

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

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

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

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

Дональд Кнут давал такое определение алгоритму:

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

Здесь мы опять видим "задачу", а также целых пять свойств. Наверняка здесь что-то лишнее. 

 

Первое свойство — "конечность". Кнут определял его так:

Алгоритм всегда должен заканчиваться после конечного числа шагов.

Ха-ха-ха. "Всех впускать, никого не выпускать" через сколько ходов должно закончиться? А ведь это — алгоритм.

Видимо, количество тех, кому приходилось писать:

пока истина цикл

в наше время достигло некоторой критической точки, поэтому статья в википедии https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC, например, вводит разделение на вычислительные и управляющие алгоритмы и утверждает, что управляющие могут работать бесконечно. И на том спасибо, но есть еще один немаловажный момент. Один из "отцов-основателей" Алан Тьюринг не только прямо утверждал, что некоторые алгоритмы могут работать бесконечно. Он еще и доказал, что у нас в общем случае нет никакого способа заранее узнать — остановиться ли когда-нибудь вот этот конкретный алгоритм в этом конкретном случае или нет. Т.е. пишешь ты пишешь циклы там, условия. И может быть это и есть самый настоящий алгоритм, а может и нет. Никто ж не знает. Как вы понимаете, это свойство можно смело выкидывать.

Второе свойство — определенность.

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

Для кого, простите, должны быть определены шаги алгоритма? Для исполнителя? Да, некоторые перефразируют этот момент у Кнута во что-то типа: "Алгоритм должен быть понятен исполнителю". Вообще, слово "должен" меня всегда настораживает. Я слишком хорошо знаю, что в этом мире никто никому ничего не должен. Но, допустим, что алгоритм именно должен, именно исполнителю и именно быть понятным. Вам понятно вот это?

Аааааааааа[>Ааааааа>Аааааааааа>Ааа>A<<<<я]>
Аа*>А*Ааааааа**Ааа*>Аа*<<Ааааааааааааааа*>*
Ааа*яяяяяЯ*яяяяяяяЯ*>А*>*

А это — алгоритм из почтенного семейства алгоритмов Hello World! Он написан на некоторой разновидности брейнфака, которую я только что придумал. Понятен ли он исполнителю? А какому? Нет никакого исполнителя. Возможно он появится, если я напишу примерно шестьдесят строчек кода на C, Java или 1С. Но, скорее всего, я не стану этим заниматься. Видите в чем дело? Нам стоит признать, что алгоритм существует независимо от исполнителя. А как иначе? Алгоритм существует, пока его исполняют? А когда перестают исполнять, он исчезает?

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

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

Третье свойство — ввод.

Алгоритм имее некоторое (возможно, равное нулю) число входных данных…

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

Самое интересное четвертое свойство — вывод.

У алгоритма есть одно или несколько выходных данных…

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

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

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

Можно ли описать такие действия? Ну, а какие проблемы!

"Задача", "результат", "цель" — все это лишнее, не приближает нас ни на шаг к пониманию сущности алгоритма.

Да, осталось еще пятое свойство. Но его никто, кроме автора, не воспринимал всерьез (возможно, что и автор тоже).

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

Итак у нас нет никаких пяти свойств. А также нет ни "задач", ни "результатов". Может показаться, что теперь у нас вообще ничего нет. Но это не так. Представьте себе лестницу из трех ступенек и робота с двумя ногами. Все что он может — это поставить правую или левую ногу на ступеньку под номером 1,2 или 3. Можно сказать что у нас есть всего шесть возможных команд: П1,П2,П3,Л1,Л2,Л3. Попробуйте написать алгоритм подъема снизу на самый верх этой коротенькой лестницы. У вас должно получиться что-то типа:

Л1
П2
Л3
П3

или

П1
Л2
П3
Л3

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

В этом мире все имеет последствия, но не все имеет причину. Что-то когда-то начинается. У всякой цепочки причин-следствий есть первое звено. Способность создавать такое первое звено, давать начало называется волей.

 

Безусловно, алгоритм — это проявление воли. Но не только. Для того, чтобы создать алгоритм, мы должны сделать еще кое-что. Мы дожны дать нашей воле свободу. Освободить ее от себя. Обеспечить ее независимое существование от нас, ее родителя. В сущности, алгоритм и есть такая освобожденая от родителя воля. Освобождение от родителя (или опекуна) называетя словом "эмансипация". Поэтому окончательное определение алгоритма выглядит так:

Алгоритм — это эмансипированная воля.

Как я и обещал, здесь у нас одно существительное и одно прилагательное. Кроме того, "эмансипация" и "воля" — понятия более простые, чем определяемое. Поэтому, я нахожу это определение идеальным. Алгоритм — эмансипированная воля. Создание алгоритма — эмансипация. А человек, который занимается созданием алгоритма — эмансипатор. Мне, кстати, никогда не нравилось слово "программист". Оно мне всегда казалось каким-то ругательным. В самом деле. Если есть "ПРОграммист", значит должен быть и "ЭПИграммист". И я бы предпочел, чтобы меня называли вторым словом. Потому что я сначала думаю и только ПОТОМ ("ЭПИ") пишу ("грамма"). А "ПРОграммист" сначала ("ПРО") пишет ("грамма") и только потом думает. Чтобы никому не было обидно, следует всех, кто занимается созданием алгоритмов называть эмансипаторами. Тем более, что это слово в точности отражает то, чем они занимаются.

98 Comments

  1. vadim1011985

    Как по мне так это странная статья . Вы ребёнку тоже будете объяснять что Алгоритм это эмансипированная воля ?

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

    На счёт независимости — тоже спорно,

    И ещё как рождаются алгоритмы ? Без задачи ? А для чего они тогда ?

    Reply
  2. Boneman

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

    Reply
  3. mkalimulin

    (1) А почему нет?

    Речь шла о конечности шагов алгоритма. Некоторые алгоритмы останавливаются, а некоторые нет.

    Но Кнут, например, говорит:

    «Алгоритм всегда должен заканчиваться после конечного числа шагов.»

    Именно это свойство я и отбрасываю.

    Алгоритм существует независимо от исполнителя и независимо от создателя. Что вы хотите здесь оспорить?

    Конечно, почти всегда алгоритм создают для решения какой-то задачи. Но задача сама по себе, а алгоритм, как таковой, сам по себе. Бессмысленный алгоритм не перестает быть алгоритмом.

    Reply
  4. genayo

    Какой великолепный пример софистики! Аплодирую стоя.

    Reply
  5. mkalimulin

    (4) Как эмансипатор эмансипатору, хочу сказать вам спасибо!

    Reply
  6. vadim1011985

    (3) Еще раз бесконечный алгоритм можно представить графически конечным числом блоков … Следовательно алгоритм конечен в плане решения задачи , пример : мы должны получать значения с датчиков температуры каждую секунду и так 24 ч / 7 д — и они опрашиваются в бесконечном цикле. Конечностью алгоритма является получение значения с датчиков в текущую секунду. и получаем мы это за конечное количество шагов.

    Reply
  7. mkalimulin

    (6) Но есть алгоритмы, которые ничего не получают за конечное число шагов.

    Reply
  8. vadim1011985

    (7) например ?

    Reply
  9. mkalimulin

    (8)

    пока истина цикл

    конеццикла;

    Reply
  10. vadim1011985

    (9)

    А вы уверены что это алгоритм ?

    Reply
  11. mkalimulin

    (10) Абсолютно.

    Reply
  12. vadim1011985

    (11) Ок и где тут ваша воля ?

    Reply
  13. vadim1011985

    Даже в этом случае ваш алгоритм рисуется за конечное число шагов , и конечная его цель бесконечно ничего не делать

    Reply
  14. genayo

    (13) Повелеваю: Алгоритм свободен, и может ничего не делать.

    Reply
  15. mkalimulin

    (14) …но пусть шагает.

    Reply
  16. genayo

    (16) Но ведь он же может прекратить крутиться без вашей воли?

    Reply
  17. mkalimulin

    (17) Только если исполнитель прекратит крутить.

    Reply
  18. genayo

    (18) Если исполнитель перестанет крутить, алгоритм, получается, исчезнет?

    Reply
  19. vadim1011985

    (18) т.е. все таки зависит от исполнителя ?

    Reply
  20. mkalimulin

    (19) Нет, конечно, просто перестанет выполняться.

    Reply
  21. mkalimulin

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

    Reply
  22. genayo

    (21) А где он в этот момент будет существовать?

    Reply
  23. mkalimulin

    (23) В записи.

    Reply
  24. genayo

    (24) В какой записи? Он же уже эмансипирован?

    Reply
  25. mkalimulin

    (25) Запись и есть эмансипация воли.

    Reply
  26. spacecraft

    Можно придумать бесчисленное множество «своих» определений Алгоритму. Только единственно правильным оно от этого не будет.

    Наиболее полное определение озвучено в википедии:

    Алгори́тм (лат. algorithmi — от арабского имени математика Аль-Хорезми[1]) — конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи.

    Алгоритм без исполнителя не существует. Или это уже не алгоритм.

    Алгоритм это не чисто компьютерная терминология.

    А про «Эмансипация воли»… что-то мне это современную Украину напомнило.

    Reply
  27. pm74

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

    Reply
  28. mkalimulin

    (27) Алгоритм без исполнителя прекрасно существует.

    Reply
  29. spacecraft

    (29) пример?

    Reply
  30. mkalimulin

    (30) В статье.

    Reply
  31. spacecraft

    (31) давайте конкретный пример.

    Reply
  32. mkalimulin

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

    Reply
  33. vadim1011985

    (26) а если записи нет ?

    Reply
  34. pm74

    (33)воля и эмансипация измеряются в чем нибудь?

    Reply
  35. mkalimulin

    (35) Волю можно измерять в битах и байтах. Эмансипация — это освобождение. Понятие безразмерное.

    Reply
  36. vadim1011985

    (36) Эээээммммм … это как ? И как измерить мою волю в байтах

    Reply
  37. mkalimulin

    (37) Выбор из право-лево или верх-низ — это один бит. Самая элементарная воля. Она есть у всех, начиная с фотона. Выбор из четырех возможных вариантов — это два бита. И т.д.

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

    Reply
  38. pm74

    (36) ну мы ведь можем сравнить 2 алгоритма верно ? В терминах воли и эмансипации.

    Reply
  39. mkalimulin

    (39) В смысле?

    Reply
  40. vadim1011985

    (38) На сколько я знаю у фотона нет воли, а есть эффект наблюдателя , то что вы проводили описание спора Бора и эйнштейна как раз касалось этого , а эксперимент Белла опроверг теорию Эйнштейна. Так какая воля у фотона ? точнее у двух запутанных частиц ?

    Reply
  41. dsfix

    Допустим, изъявляю я волю отказа от деятельности. Как водится, эмансипированную — ну то есть изъявил, а затем и исполнил. В чём алгоритм?

    Reply
  42. genayo

    (26) А, я понял, он записан в мозге автора. Ловко.

    Reply
  43. genayo

    (43) И, получается, алгоритм перестаёт существовать, если не осталось ни одной его записи.

    Reply
  44. pm74

    (40) можно ли сказать , что некоторый алгоритм равен. X байт воли помноженной на эмансипацию или как либо ещё?

    Reply
  45. Vovan1975

    походу весна начинается

    Reply
  46. herfis

    Как тебе такое, Дональд Кнут?

    Reply
  47. mkalimulin

    (44) Точно.

    Reply
  48. mkalimulin

    (41) Элементарная. Фотон принимает тот или иной спин по своему собственному решению.

    Reply
  49. mkalimulin

    (42) Не делать ничего. Вполне себе алгоритм.

    Reply
  50. user856012

    Тут еще МАБ никто не вспоминал?

    «Вы, профессор, воля ваша, что-то нескладное придумали! Оно, может, и умно, но больно непонятно. Над вами потешаться будут»
    Reply
  51. genayo

    (48) Ладно, не смотря на практическую бесполезность, продолжим. Чем тогда является квайн в вашей философии алгоритмов? Аналог вещи в себе?

    Reply
  52. TODD22

    (49)

    Фотон принимает тот или иной спин по своему собственному решению.

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

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

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

    Reply
  53. mkalimulin

    (52) Алгоритмом. Кстати, отлично напомнили. А то постоянно просят привести пример алгоритма, который не решает никакой задачи. Отличный пример.

    Reply
  54. mkalimulin

    (53) Элементарной. В чем вопрос?

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

    Reply
  55. user856012

    (55)

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

    Угу, а кот Шрёдингера в момент открывания коробки «принимает решение» — жив он или давно помер?

    М-да, Булгаков тут явно не подходит, придется опустить планку: «Штирлиц порол чушь. Чушь визжала и хрюкала от удовольствия»

    Reply
  56. vadim1011985

    (55) Как раза частица находится в 2 -х позициях одновременно и как волна и как частица , и пока мы не измерим данная частица будет находится в суперпозиции.

    Reply
  57. genayo

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

    Reply
  58. Axe

    Развели тут философию…

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

    Да и абсент я не пью.

    Как говориться — здравствуйте и досвиданья!

    Reply
  59. МимохожийОднако

    ИМХО, статья-графоманство.

    Цель, видимо, в заветных стартмани )

    Reply
  60. mkalimulin

    (57) А когда измерим, она примет решение какую позицию принять. Какая разница?

    Суть в том, что нет «скрытых параметров» и нет причины, по которой частица принимает ту или иную позицию. Нет причины — значит есть начало. Есть начало — есть воля.

    Reply
  61. mkalimulin

    (58) Репликация. Квайн размножается.

    Reply
  62. genayo

    (62) Это почему? Вывод может происходить в dev/null… Хм. Но тогда, если вывод последовательный, не будет существовать ни одной записи алгоритма, но он будет работать?

    Reply
  63. mkalimulin

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

    пока истина цикл

    конеццикла

    здесь ничем не будет отличаться.

    Reply
  64. genayo

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

    Reply
  65. user623969_dusa

    Мишуня, твоя ошибка в написании статей, что ты сразу в начале ставишь высказывание очень спорное — и из-за этого дальше твою статью читать не хочется, раз в начале бред (Люди, стоявшие у истоков того, что мы сейчас называем computer science, считали «алгоритм» понятием в принципе неопределяемым) то и дальше бред. Основной термин зарождавшейся науки считать неопределяемым это игра в софистику. Одно дело когда деятельность пока не знаем как назвать и она не имеет четких контуров, но утверждать что не было определений и установки этих самих контуров это нигилизм чистой воды

    Reply
  66. mkalimulin

    (66) Слово «алгоритмм» было в ходу задолго до Тьюринга. Хоть и не среди широких масс.

    Reply
  67. AndreyCh75

    (31)Статья забавная. Но в примере алгоритма без исполнителя вы перепутали алгоритм и запись алгоритма. Исходя из примера, алгоритм Евклида, записанный китайскими иероглифами, уже новый алгоритм ).

    Reply
  68. user623969_dusa

    (67) важно определить его, многие слова были в ходу, но со временем значение слов естественным образом меняется, лучше было бы начать статью — в свое время алгоритм определяли так и я хочу вам показать какое из определений в настоящее время актуально и актуально ли само понятие алгоритм — сейчас алгоритм это уже рудимент, программы пишут без алгоритмов, имхо и тенденция идет на то что не надо знать алгоритмов сортировки массива а просто знать название библиотеки, которая выполняет алгоритм… но утверждать что раз мы не можем определить алгоритм значит его нет это неестественно науке)

    Reply
  69. vadim1011985

    (61) ещё раз — есть эффект наблюдателя (измерения) , и этот эффект как-то влият на фотон .

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

    Reply
  70. mkalimulin

    (70) Есть отсутствие скрытых параметров. В данном случае, именно это важно.

    Reply
  71. dsfix

    (50) Когда Вы в своей жизни в последний раз ничего не делали? Это возможно? Однако, сознание сообщает нам, что под «ничего» подразумевается чёткий перечень действий, выходящий за рамки предлагаемого волеизъявления.

    Reply
  72. genayo

    (71) И всё-таки, тождествен ли алгоритм и набор команд для его исполнения на конкретном исполнителе?

    Reply
  73. borodatii

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

    Reply
  74. YannikAlx

    (74) очень просто — очень много программистов 1С именно так и пишут.

    Без алгоритма — это когда не знаешь заранее , а что твоя программа выдаст и самое главное не знаешь заранее , а оно тебе вообще надо…

    Вот выдаст потом и будем решать что с этой хренью делать…

    Reply
  75. user623969_dusa

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

    Reply
  76. mkalimulin

    (76) Алгоритм это не действия. Плохое у вас определение.

    Reply
  77. mkalimulin

    (65) В памяти будет алгоритм. Но он же может быть и не в памяти. Или в какой-нибудь другой памяти. На бумажке. На камне. Какая разница?

    Reply
  78. genayo

    (78) Почему алгоритм? Набор машинных команд (инструкция для КОНКРЕТНОГО исполнителя) — это алгоритм?

    Reply
  79. mkalimulin

    (79) Да.

    Reply
  80. vadim1011985

    (77) Опишите алгоритм сортировки по вашей концепции

    Reply
  81. spacecraft

    (81) судя по бреду из статьи, у сортировки есть воля: «хочу сортирую, хочу не сортирую». Вот и весь «алгоритм»

    Reply
  82. mkalimulin

    (81) Я даю не концепцию, а определение. Берете любой текст, на любом языке программирования. Хотите — пузырек, хотите — слияние.

    Reply
  83. genayo

    (80) Но откуда создатель может знать, что это тот-же самый алгоритм, порождённые его волей, если не он писал тот алгоритм, который из алгоритма делает инструкции для конкретного исполнителя?

    Reply
  84. vadim1011985

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

    Reply
  85. herfis

    Вполне может быть, что алгоритм — это «эмансипированная воля». И что угодно еще.

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

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

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

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

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

    Определение алгоритма как «эмансипированной воли» полезно только в качестве демагогического упражнения.

    «Эмансипированной волей» можно обозвать любое произведение.

    Reply
  86. mkalimulin

    (85) Вы только что описали, как оно работает.

    Reply
  87. mkalimulin

    (86) С математической точки зрения алгоритм — в принципе не определяемое понятие.

    Reply
  88. vadim1011985

    (87) Так и скажите что не можете ответить на вопрос. Вы не можете привести пример под свое же определение . Я например не увидел там никакой воли — а увидел задачу и порядок действий для ее решения. И говорю что ваше определение Алгоритма в корне не верно ,

    Reply
  89. profiprog1c

    Конечно без обид, но данная статья намекает, что профессору Калимулину явно не дает покоя слава магистра каллиграфии синьора Белокаменцева. Так тот хоть вначале что-то нормальное писал, а потом уже скатился к туалетным корпоративам и ускорениям 4х. Данная статья очень сильно мне напоминает басню Крылова «Мартышка и очки». А вот мораль басни:

    «К несчастью, то ж бывает у людей:

    Как ни полезна вещь, — цены не зная ей,

    Невежда про нее свой толк все к худу клонит;

    А ежели невежда познатней,

    Так он ее еще и гонит.»

    Reply
  90. vadim1011985

    (90)

    что профессору Калимулину явно не дает покоя слава магистра каллиграфии синьора Белокаменцева

    У меня тоже такая мысль возникла

    Reply
  91. TODD22

    (90)

    Конечно без обид, но данная статья намекает, что профессору Калимулину явно не дает покоя слава магистра каллиграфии синьора Белокаменцева.

    Всё же мне кажется что должно быть какое то фармакологическое объяснение такому энтузиазму. Автор даже обещал «отсыпать», но потом сказал что это может даже убить…

    Reply
  92. rwn_driver

    В принципе любой алгоритм — это граф, где ребро — действие, а узел — либо вход, либо выход. С зацикленностью тоже проблем нет — из входа в выход, затем из выхода — во вход. А «эмансипированная воля» — это как загазованный вакуум. Понятие столь же нелепое, сколь и бессмысленное. Воля (в русском языке) — слово, имеющее много понятий, в т.ч. и синоним свободы. А как свободу отпускать? Эмансипипированная (в понятиях автора) свобода — это анархия. Анархия — первый шаг к энтропии. Итак, алгоритм — движение к энтропии?

    Reply
  93. mkalimulin

    (93) Воля, освобожденная от своего источника. Так понятнее?

    Reply
  94. herfis

    (94) Воля свободная от своего источника — это оксюморон.

    Reply
  95. mkalimulin

    (95) Отдыхающие трудящиеся — вот это оксюморон. А освобожденная воля — это программа.

    Reply
  96. herfis

    (98) Угу. А литературное произведение — это освобожденная душа.

    Очень полезные и точные определения. Всем сразу стало легче.

    Reply
  97. mkalimulin

    (100) Литературное произведение может отправить отчет в налоговую?

    Reply
  98. herfis

    (101) Алгоритм тоже не может. Даже если это алгоритм отправки отчета в налоговую.

    Но я решительно не понимаю, к чему был этот вопрос. Простите, Учитель.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *