Блог им. sortarray

Об алгоритмах и машинах.

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

Вот, в очередной раз натыкаюсь на это
smart-lab.ru/blog/470649.php

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

 От материала то может и не зависит, да и то спорно, но напрямую зависит от архитектуры человеческой машины, уж коль скоро мы рассматриваем человека чисто механистически.
Алгоритмом можно считать лишь некоторые детали, такие как последовательности ДНК/РНК в геноме клетки или вируса, и не более того. Работает все в совокупности, и не представляет из себя «алгоритм»

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

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

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

Алгоритмом является только часть машины, изменяемая часть, которая подается на вход, в виде инструкции, при этом, принимает алгоритм именно эта машина, если подать его на вход другой машине, она просто его «прожует»

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

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

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

★2
20 комментариев
А почему тело не может быть машиной? Машина которая имеет кучу алгоритмов. Заводит ее душа, то есть мы…
avatar
GAURANGA, тело и есть машина в этом смысле, я против того, чтобы его называли «набором алгоритмов»
sortarray sortarray, ну а почему нет? в теле все под каким то законом, нету такого же чтоб начали дышать через попу хах))) сорри за такой пример. Алгоритмы конечно. Законы правил. Стопаки часто срабатывают и даже маржинколлы каждую минуту. Тело раз и сломалось, человек умер.
avatar
Kapral, пожалуй, эвристика, это понятие, более широкое чем алгоритм, так как не всегда предполагает строгую последовательность шагов.
Но, можно свести к алгоритму, да. Попробовал, скорректировал, перешел к началу — вот алгоритм эвристики
Kapral, Он самообучается эвристически, а повседневно живет алгоритмически:)
Kapral, в человеческой повседневности много алгоритмического. Сначала зажги газ, потом разогрей еду, потом поешь. Сначала испражнись, потом подотрись, потом смой(но не наоборот!).
Вначале, человеческая система либо эвристически вырабатывает алгоритм, либо получает его с учителем, затем исполняет непосредственно. Эвристика в человеческом поведении служит для выработки алгоритма
в рамках приведенной аргументации вы правы. лет двадцать назад, когда компы работали не так стабильно, часто сталкивался с таким явлением: включает машину один человек, система работает. стоит сесть другому- начинает постоянно виснуть. поговоришь с компьютером, скажешь «ну давай, не капризничай, ты же хороший» и висяки отпускает. это работает с любой техникой. машина работает по алгоритму, согласен. а когда будет написан алгоритм написания алгоритмов?
avatar
Андрей Косыгин, алгоритм написания алгоритмов и так есть, например кодогенерация — самая наглядная реализация этого принципа
sortarray sortarray, криво выразился. когда машина сможет сама поставить задачу и написать под нее алгоритм.
avatar
Андрей Косыгин, Да, Вы затронули интересную тему, это уже вплотную подходит к «настоящему» ИИ.
Тут, сейчас, в принципе невозможного ничего нет, нужно чтобы была мотивация. Из этой мотивации должна проистекать и задача.
Например, у примитивного животного организма всегда присутствует мотивация избегать боли, соответственно, он ставит на своем уровне такие задачи, в своем смысле. Память животного служит для фиксации алгоритма, который он нашел, решая эту задачу. Его поведение начинает подчиняться этому алгоритму. В этом и состоит его обучение. Хорошей иллюстрацией тут может служить условный рефлекс
Андрей Косыгин, уже написан. природа создает тысячи видов компьютеров, которые работают по определенному сценарию.
avatar
Kapral, Как я уже и сказал, на мой взгляд, эвристика в общем случае, предшествует алгоритму. Невозможно на рынке вечно экспериментировать, это в конечном счете, должно привести к обобщениям, и составлению некоторого плана с инвариантами, который и будет по сути, алгоритмом действий. Это не обязательно должна быть жесткая последовательность, но какой то вектор должен быть, он и будет алгоритмом, сопровождаемым, возможно, условиями и выходами в различных точках(что не противоречит понятию алгоритма)
Понятие алгоритма неотделимо от машины исполняющей его. Одна и та же инструкция может исполняться на разных машинах по разному.

придумали кучу способов абстрагировать машину испольнителя на разных уровнях: fortran, c99, lvm, jvm, verilog, ..., не говоря уже про всякую эмуляцию, при таком разнообразии проблемы машины исполнителя нет. В старые времена когда машиное время было дорого, машины разные и «писали» на перфокартах — с терминологий было лучше (из за того что машины были разные, и это было видно даже физически), но разве кто то хочет вернутся в те времена из за такой мелочи?..
avatar
My Shadow, Вы тут говорите лишь о том, что одни реализуют машину, реальную или виртуальную, а другие пишут под нее код.
Хорошо ли то, что программист перестал не только писать машины, но и осознавать, что он пишет код для машины? Я думаю, это не очень хорошо. Это плодит дебилов в IT, которые думают, что батоны на деревьях растут
sortarray sortarray, 

кому важно «сблизится» с машиной теперь развлекается со всякого рода микроконтроллерами и ПЛИС-ами, кому всеравно — есть 1C и подобное. Это не ИТ-шники тупыми становятся, это входной порог в ИТ сильно упал совместно с ростом потребности в количестве. Ну разделение труда в ИТ произошло, как и во многих отраслях, не то что раньше купил компьютер-набор, спаял и запрограммировал :)
Вы же не хаете нынешних водятлов, за то что подавляющие большинство не то что движек теперь перебрать не может, дак еще просто не представляет как оно работает. А раньше вкладышы меняли на полуторках на обочине запросто.

avatar
Не особо понял смысл посыла. Развитие идет в сторону внедрения уровней абстракции просто. Раньше писали под машину или под конкретный cpu или архитектуру. Сейчас пишут под некую абстракцию, например на джаве. То же самое с интерфейсами происходит, да вообще со всем.
avatar

теги блога sortarray sortarray

....все тэги



UPDONW
Новый дизайн