Lomelind (lomelind) wrote,
Lomelind
lomelind

Category:

К вопросу об инструкциях и алгоритмах

Далеко не любой рассказ как что-то сделать является годной инструкцией.

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

Разберём.

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

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

Последовательность - ну, тут понятно:) надеюсь:)

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

Посильных исполнителю. На смысловом уровне здесь всё понятно - нужно, чтобы исполнитель был в состоянии выполнить то, что написано. Желательно ещё и не убиться об это. А если инструкция для живых разумных, то ещё и потратить на это не слишком много ресурса (потому что вряд ли вся его жизнь ограничивается выполнением данной инструкции).
Здесь частый ляп типа сепульки. Пишем инструкцию "как получить то-то" - но в неё включаем пункты, подразумевающие, что "то-то" у исполнителя уже есть. Неважно, что это - навык, вещь, деньги. Но ведь скорей всего задачей выполнить эту инструкцию задастся как раз тот, у кого этой штуки нет. Так что инструкция "как заработать многаденег" не должна включать пункты, требующие купить дорогую штуку, а инструкция "как понравиться мужчине" не должна предполагать наличие положительного опыта общения с мужчинами. Сюда же все высокие материи про "соответствовать". Годная инструкция как раз и помогает получить то, чему ты _не_ соответствуешь, что ты _не_ заслужил.

Что такое действие, надеюсь, тоже понятно:)

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

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

Ну и если автор инструкции чего-то не знает - то честнее и правильнее будет написать в этом месте "я не знаю", а не оставлять его умолчанием. Да, может быть это уже будет не совсем инструкция, но по крайней мере будет видно, как имеющийся текст доработать напильником, чтобы инструкцию таки получить.
Tags: пси, флайледи
Subscribe

  • как сохранить состав для ванны

    Я не знаю как эту фигню правильно назвать. То ли недогидролат, то ли экстракт, то ли что. Берётся кастрюля, в неё складывается материал (в данном…

  • Достали!!!

    Комары достали и закусали! Ррррр!!!! Вдруг кто знает - какая есть долгоиграющая защита от комаров, работающая в условно открытом пространстве? Ну то…

  • удивления пост

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

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments