ko4evnik>> Это немного очень упрощённое описание дихотомии между алгоритмом и программой. которая является ключом к фразе "этими этапами занимаются разные люди и разные подразделения". которая поимела свое развитие в:
Mishka> Не должнжо быть дихотомии. Плохо это. Проходил.
не должно быть. а она есть. плохо это. да.
ko4evnik>> не достаточно точно на мой взгляд. мне видны такие роли:
ko4evnik>>1) прикладной математик - описывает модели и обобщенные алгоритмы;
ko4evnik>>2) конструктор (инженер-железячник) - предоставляет "железо";
ko4evnik>>3) программист - переводит "модели" через "алгоритмы" в "программу" работающую в "железе";
Mishka> Поскольку по по образованию я прикладник с выбросом в "программисты", то эти две области мне знакомы. Проработал, как первый 10 лет. Но у меня тесно переплеталось первое и второе.
а я вот начинал как третий нумер. изучал Инструменты Перевода. не могу сказать что исчерпал все сложности, но хотя бы могу сказать что вроде бы нашел подходящий. к Специальности Номер Раз имею непосредсвенный интерес. но работа то как раз предполагала мутацию в сторону слияния со Специальностью Номер Два - к чему я тяги не имел. железки - это все таки "другое"...
ko4evnik>> в одном человеке обычно совмещаются только одна-две роли и практически никогда - все три. слишком разные подходы и методы - практически невозможно быть достаточно "глубоким" во всех трех областях.
Mishka> С этим соглашусь. Но любой из них должен понимать в областях других. Не на уровне эксперта, но достаточно, чтобы представлять сложности.
ага. только сильно желательно чтобы была взаимность.
чтобы не испытывать когнитивный диссонанс, объясняя "нумеру первому", что в условиях микроконтроллера - флоат может быть и двухбайтным - что дает 4-5 надежных знаков после запятой, и потому в модели не имеет смысла задавать коэффициенты с точностью в 7-8 знаков.
или что рассчитывать синус можно и целочисленно...
ko4evnik>> потому организационно и существуют отделы "математиков", "конструкторов" и "программистов"...
Mishka> Не-а, не поэтому. Это скорее деление, придуманное дятьками с властью. Легче так. Я бы организовывал сквозные бригады. Так удобнее и лучше результаты.
"дядьки с властью" не с луны свалились - они такие же как мы, только дополнительно им вменены некоторые "обязанности", за которые они несут "отвественность". но в награду дополнительно выдана конфетка в виде "привилегий". так что резоны у них есть и они существенные - к примеру сделать процесс разработки непрерывным, устойчивым к катаклизмам, с опорой на имеющиеся ресурсы.
сквозные бригады - это хорошо. но они возможны когда есть достаточное количество опытных взаимозаменяемых хорошо притертых специалистов. и если не возникает "эффекта перетягивания одеяла".
потому что если возникает такой эффект - тут же начинается интриги и византийщина...
ko4evnik>> определение оно как алгебра (не в смыле "наука" а в смысле "совокупность 1)входных элементов, 2)производимых над ними операций, и 3)получаемых с их помощью выходных элементов") - можно на выходе получить чего душе годно путем манипуляций.
ko4evnik>> т.е. берем "целые положительные числа" и вводим над ними "сумму" и "умножение"- получаем на выходе те же "целые положительные";
Mishka> В качестве придиризма — ты не путаешь алгебру (как математическое понятие) с её объектами? То, что называешь следует рассматривать как группы, кольца, поля и т.д. И в последнем случае у тебя поля (или даже кольца) не получиться.
нет. по крайней мере то чему меня учили вполне соответсвует Википедийному (
http://ru.wikipedia.org/wiki/Алгебра): "Алгебра — упорядоченная пара множеств A(R,E). Первое множество (R) — элементы какой либо природы (числа, понятия, буквы). Второе множество (E) — операции над первым множеством (сложение, умножение, возведение в степень)."
с маааленькой оговоркой что это более частный вариант другого, в котором множество R является композиций множества R-входных-элементов и R-выходных-элементов, в общем случае не равных между собой.
и больше используется более сильный вариант (где Rвх==Rвых), не потому что другой "не верен", а потому что "для математика удобней".
я же использую дырки в одних определениях как метафору к критике дырок другого определения. и не более того. ведь, скажем чтобы получить кольцо - я должен задать абелеву группу, на ней операции аддитивности и мультипликативности и обеспечить чтобы между ними соблюдались дистибутивные законы.
но нас всеж таки читают мирные и ни в чем не повинные люди...
ko4evnik>> вводим дополнительно "разность" - получим на выходе уже просто "целые числа"(не обязательно положительные);
Mishka> Ы? Ты не перепутал натуральные или неотрицательные числа с целыми?
я их не путал просто потому что строго не вводил
"иногда два брата-помидора, которые тащат пьяного друга-огурца, это всего лишь два брата-помидора, которые тащат пьяного друга-огурца..."
ko4evnik>> введение "деления" уже порождает веер вариантов - можно получить на выходе "рациональные дроби" а можно оставаться в парадигме "целых" - если наплевать на остаток.
Mishka> Смотря что ты хочешь получить. Скажем в рамках поля не удасться остаться.
итак, ты хочешь получить нечто - и таким способом вводишь граничные условия чтобы внутри этих границ определение было "гладким, непрерывным и без точек разрыва". и абстрагируешься от других областей где обеспечить такой красоты не можешь...
...поле ему подавай. минное, ага. чтоб супротивник сам на него залез и каким нибудь неизящным но поучительным способом самоликвидировался...
ko4evnik>> было сказано:
ko4evnik>> чего тут введено в качестве "элементов/операций":
Mishka> Это не важно. С точки зрения математики. Но, поскольку доказана равномощьность машины Тьринга с Марковскими вещами и т.д., то можно сказать, классическое определение МТ.
можно сказать, а можно и не.
потому что таких "классических определений" полна Википедия (
http://ru.wikipedia.org/wiki/Алгоритм) - и все в деталях чуток отличаются. т.е. граничные условия каждого из очерчивают чуть-чуть отличающиеся области.
так что как минимум следует доопределять "классическое определение МТ по учебнику такому-то"...
ko4evnik>> 1) "дискретность алгоритма" - можно согласиться, а можно и углУбить : чего считать "шагом" например в случае нейронных сетей? или в случае параллельных вычислений? там сложность "единичного шага" может быть настолько высокой, что делает их трудноразличимыми.
Mishka> Дискретность алгоритма его неотделяемый атрибут. И сложность тут не важна. Сложность важна в оценке сложностей. Это вполне нормальная область математики. Но сюда её привлекать не надо. Пока. Это будет позже, когда договоримся про алгоритм.
я сделал акцент не на "сложность", а на "трудноразличимость". т.е. трудность не во внутренней сложности шага, а в способе исчисления шагов. саму "дискретность" можно мыслить очень по разному.
возвращаясь к примеру с движками Союза: там имеются все признаки исполнения алгоритма, если принять что количество шагов ==1.
ko4evnik>> 2) "конечность" - опять же можно зацепиться. вот к примеру летит ракета к цели - а в гсн у нее крутится программа исполняющая алгоритм минимизации промаха. сам по себе он вполне себе "бесконечен" и ограничен не собственными особанностями, а временем жизни системы.
Mishka> Конечность — это по определению. Как предел ряда. Алгоритм минимизации — конечен. Метод — нет. Не надо путать это дело.
опять же "по определению". то что это чистая математическая абстракция и на реальный мир она натягивается как сова на глобус - это как бы остается за кадром...
ko4evnik>> 3) и при этом "не ограниченное время" как бы даже рассматривать грешно, "ибо не бывает"...
Mishka> Ты, ИМХО, путаешь время жизни системы и определение алгоритма. Это разные вещи.
опять же "определение"...
ko4evnik>> "прикопаться можно и к столбу"...
Mishka> Не выйдет. Потому как надо будет строить свою теорию, а не пользоваться той, которую разработали. Есть много последствий, когда меняешь условия и всё надо передоказывать.
ага. слова не мальчика, но мужа.
когда меняешь условия с "разработки компиляторов" на "разработку военной железки" таки "всё надо передоказывать"
Mishka> Ага, Никита прав. Вопрос — а что считать мы будем на микроконтроллере или на ПЛИСе. А то Серокой уже высказывался про эмуляцию процов на ПЛИСах.
ну дык. если все равно программа, которая исполняется процессором, прошивается в ПЗУ - следующий щаг в том чтобы программа "исполняла сама себя" без использования процессора. вернее это такой виток эволюции интегральных схем...
ko4evnik>> "прикладной математик".
Mishka> Дык, это и есть начало разработки алгоритма. Но должен был всё-таки не совсем математик, скорее уж аэродинамики с математиками и другими вместе.
ну да. цепочка должна где то начинаться - и начинается она на
железе...
ko4evnik>> ну это совершенно непродуктивный спор из серии "что первично - курица или яйцо"...
Mishka> Не, не так. Вот была такая книжечка Громова "Феномен персональных вычислений". Много там говорилось, как эти самые персональные вычисления ускорили прогресс, т.к. каждый смог писать программки. Пару лет назад на Базе был уже спор на эту тему. ИМХО, которое я сказал тогда и повторюсь — этот феномен отбросил программирование, как науку, лет на 20-25 назад. Та самая знаменитая присказка про физиков, которые раньше обменивались идеями, а теперь программами с ошибками — растёт отсюда.
чего в этом удивительного? читая классиков:
" ...переход от чистой магии через алхимию к технологии...
маг - каждый! - был уникальным и избранным;
алхимик - нечеловечески упорным;
технологов можно было печь как блины, не слишком заботясь о качестве каждого..."
та железка на Союзе - уровень мышления ее создателя был как минимум доктор наук. нынче аналогичные по функции задачи доверяют вчерашним студентам...
Mishka> Дык, именно это я имел в виду. Как только доля софта вырастет — вырастет количество отказов. Печальная такая статистика по другим проектам.
ну так и урок - следует препятствовать неконтролируемому росту доли софтовых решений и не допускать деградации руководства процессом.
Mishka> Надо Тико звать.
Mishka> Тико, вылезай!
да, Тико, вылезай