Лекция. Алгоритмы




Скачать 195.92 Kb.
НазваниеЛекция. Алгоритмы
Дата публикации25.07.2013
Размер195.92 Kb.
ТипЛекция
zadocs.ru > Информатика > Лекция
ЛЕКЦИЯ. АЛГОРИТМЫ
1. ОБЩЕЕ ПОНЯТИЕ АЛГОРИТМА

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

С изобретением ЭВМ и началом их широкого использования в самых различных областях деятельности понятия "алгоритм" и производное от него –"алгоритмизация" приобрели статус обще­научных. Во многом этому способствовало и то, что к тому вре­мени сформировалась теория алгоритмов, которая из ветви мате­матической логики развилась в самостоятельное научное направ­ление, ныне тесно связанное с кибернетикой, информатикой и вычислительной математикой.

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

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

Алгоритмэто последовательность действий со строго опре­деленными правилами выполнения.

Алгоритмы делятся на вычислительные и невычислительные.

Например, правила решения уравнения, построение графика функций, вычисление / = (ах+ву) • d –это вычислительные ал­горитмы. Расписание лекций, режим дня, процессуальный поря­док ведения допроса – это невычислительные алгоритмы.

Алгоритм состоит из команд.

Командаэто отдельное указание исполнителю выполнить некоторое законченное действие.

Команды алгоритма выполняются одна за другой. Последова­тельное выполнение команд алгоритма приводит к решению зада­чи.

Основные свойства алгоритма – это детерминированность (определенность), дис­кретность, массовость, результативность и инвариантность по от­ношению к вычислителю.

1. Определенностьэто однознач­ность предписываемой последовательности действий, не допускающая произвольного ее толкования. Именно в силу определенности предписания алгоритмический процесс является детерминированным: каждая стадия процесса однозначно определяет следующую стадию. Таким образом, алгоритм не должен содержать указаний, смысл которых может пониматься неоднозначно.

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

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

3. Массовость означает, что алгоритм можно применять для решения любых задач одного и того же типа, которые отличают только исходными данными.

4. Результативность означает, что при точном выполнении всех команд алгоритма процесс заканчивается получением опре­деленного результата за конечное число шагов. Если задача реше­ния не имеет, – это тоже результат.

^ 5. Инвариантность по отношению к вычислителю – это независимость от конкретного типа вычислителя (исполнителя). Данное свойство не означает, что при разработке алгоритма можно полностью игнорировать характер вычислительных средств, с помощью которых он будет реализован. Однако это относится не к принципиальной возможности, а лишь к удобству реализации алгоритма тем или иным средством.
^ 2. ПОНЯТИЕ АЛГОРИТМА ДЛЯ ПРИКЛАДНЫХ ЗАДАЧ
Сферой приложения "прикладного" уровня понятия "алгоритм" являются нематематические области знания и практической дея­тельности, в частности связанные с анализом человеческого пове­дения, способов переработки человеком воспринимаемой им ин­формации.

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

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

Типы задач, решаемых на прикладном уровне:

1. Одни из них по своей сути являются определен­ными, ибо вывод по ним однозначно обусловлен исходными дан­ными.

2. В других такой однозначности нет. Здесь исходные данные и связь их с решением носят вероятностный характер. Решение зависит от вероятностно-статистической оценки результатов опе­раций, проведенных над исходными данными. Вот почему эти задачи и алгоритмы их решения часто называют расплывчатыми, или стохастическими. Решение таких задач может содержать несколь­ко значений, что определяется характером тех ограничений, кото­рые задаются исходными данными (информацией).

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

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

Это значит, что, решая проблему оптимизации юридической деятельности и повышения ее эффективности на базе алгоритмизации и автоматизации ин­формационных процессов, надо ориентироваться на использование не одного какого-либо универсального алгоритма, а серии различ­ных алгоритмов. При этом необходимо учитывать специфику как правовых задач в целом, так и специфику задач в рамках их конк­ретных классов, например, криминалистических задач.

Из сказанного вытекает вывод: принципиально невозможно раз­работать единый алгоритм, пригодный для решения задач любого класса. Отсюда – нельзя дать универсальное и достаточно стро­гое определение и самого понятия "алгоритм решения правовой задачи".

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

^ 3. СПОСОБЫ ЗАДАНИЯ АЛГОРИТМОВ

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

Наиболее распространенные способы задания алгоритмов следующие:

Словесный способ – отражает содержание выполняемых действий средствами естественного языка. К достоинствам этого способа описания следует отнести его общедоступность, а также возможность описывать алгоритм с любой степенью детализации. Однако словесное описание алгоритмов на любом естественном языке обладает некоторыми недостатками, а именно: возможность неоднозначного понимания предписаний и утверждений; громоздкость, связанная с избыточностью разговорных языков (наличие в предложениях слов, без которых можно обойтись); отсутствие наглядности логических связей между частями алгоритма.

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

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

^ 4. Алгоритмические языки. Трансляторы.
Алгоритмический языкэто язык записи алгоритма.

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

1. Класс машинно-зависимых языков. Центральный процессор ЭВМ предназначен для выполнения команд, которые представляются в виде групп двоичных цифр (би­тов), т.е. в виде последовательностей из нулей и единиц. Коман­ды, представленные в таком виде, считаются записанными в ма­шинном коде или на машинном языке.

Двоичный код очень удобен для использования в ЭВМ, но чрез­вычайно не удобен для человека и поэтому в наши дни почти не применяется. Цифровая форма записи команд, необходимость раз­бивать алгоритм на мелкие операции делают программу ненагляд­ной и громоздкой, затрудняют ее отладку. "Индивидуальный харак­тер" языков ЭВМ исключает прямой перенос программы с маши­ны одного типа на машину другого типа. Процесс программиро­вания на машинном языке сложен и трудоемок, требует тщатель­ности, большого внимания, хорошего знания особенностей ЭВМ, на которых предстоит производить расчеты.

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

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

2. Класс машинно-ориентированных языков. Данный класс представляют языки группы С, С++, Турбо С. Разработчики данных языков попытались объединить возможности ассемблера со встроенными структурами данных.

3. Класс универсальных языков. Важным шагом в развитии языков программирования было по­явление машинно-независимых языков. Разработчики этих языков стреми­лись: во-первых, создать языки, воспринимаемые любым компьютером; во-вторых, максимально учесть специфику класса задач, для решения которых данный язык предполагалось использовать. Например, для многих научно-технических задач характерны большие расчеты по сложным формулам, поэтому в ориентированные на такие задачи языки вводят удобные средства для их записи. Использование по­нятий, терминов, символов, привычных для специалистов соответ­ствующей области знаний, облегчает им изучение языка, упроща­ет процесс составления и отладки программ.

К настоящему времени разработано большое количество машин­но-независимых языков программи­рования: Бейсик, Паскаль, Фортран и др. Машино-независимые языки обычно называют языками высо­кого уровня.

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

Важным преимуществом алгоритмических языков высокого уровня по сравнению с машинным языком является их универсаль­ность, независимость от конкретного типа ЭВМ. Программа, на­писанная на таком языке, может выполняться на разных машинах, при переходе на другую ЭВМ не требуется никаких переработок.

Чтобы программы на языках высокого уровня работали, необ­ходимы специальные программы-переводчики. Программа-пере­водчик называется транслятором. Транслятор переводит исход­ную программу (на языке высокого уровня) в объектную програм­му, т.е. программу на машинном языке. Трансляторы делятся на компиляторы и интерпретаторы.

Компилятор переводит исходную программу в объектную цели­ком. Интерпретатор транслирует и выполняет команды исходной про­граммы по одной.

4. Класс проблемно-ориентированных языков представлен языками Лого, РПГ, системой программирования GPSS и др. Язык Лого был создан с целью обучения школьников осно­вам алгоритмического мышления и программирования. Лого – диа­логовый процедурный язык, реализованный на основе интерпрета­тора с возможностью работы со списками и на их основе с текста­ми, оснащенный развитыми графическими средствами.

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

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

5. Класс функциональных языков программирования представлен языками Лисп, Пролог и др. Лисп является инструментальным средством для построения программ с использованием методов ис­кусственного интеллекта. Особенность этого языка заключается в удобстве динамического создания новых объектов. В качестве объек­тов могут выступать и сами исходные объекты. В настоящее время для Лиспа определились две сферы активного применения: проектирование систем искусственного интеллекта и анализ текстов на естественном языке.
В последние годы развивается объектно-ориентированный подход к программированию. Наиболее полно он реализован в языках Форт, СМОЛТОК, Delphi и т.п. Например, Форт сочетает в себе свойства операционной системы, интерпретатора и компилятора одновременно. Основной чертой языка является его открытость. Программист может легко добавлять новые операции, типы данных и определения основного языка. Форт позволяет поддерживать многозадачный режим рабо­ты, использует принцип одновременного доступа программ.

^ 5. ВИДЫ АЛГОРИТМИЧЕСКИХ (ВЫЧИСЛИТЕЛЬНЫХ) ПРОЦЕССОВ
Реализация алгоритма называется алгоритмическим процес­сом (вычислительным процессом).

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

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

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

Каждое направление вычислений в таком процессе называется ветвью вычислений. Проверка выполнения логического условия определяет ветвь вычисления. Вычислительный процесс выполня­ется только по одной ветви. Количество условий определяет коли­чество точек ветвления.

^ Циклический процесс–это процесс, в котором группа команд многократно повторяется до тех пор, пока выполняется заданное

условие.

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

Например, алгоритм вычисления Х = А20 можно записать как АА, A'-A, ..., А^А, тогда вычислительный процесс будет линейным. Алгоритм можно записать короче, для этого надо оформить цикл и контролировать его окончание.

^ Критерии качества алгоритмов
Основными критериями качества алгоритмов признаются следующие:

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

2. Объем алгоритма - количество операций (шагов), которые необходимо выполнить для получения конечного результата.

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

Уменьшение количества шагов экономит не только время составителя алгоритма, но и время исполнителя, сокращает длительность решения задачи.

3. Длительность решения определяется количеством шагов алгоритма, а также сложностью этих шагов. Если все операции достаточно просты и наглядны, длительность решения сокращается, и наоборот. Конечно, время выполнения любой операции определяется прежде всего быстродействием самого исполнителя, но для одной и той же операции время выполнения условно можно считать равным некоторой константе. Тогда алгоритм тем лучше, чем быстрее он выполняется.

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

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

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

1. Что же может быть общего между этими двумя явлениями: правом и алгоритмом? Ответ на этот вопрос дает сравнительный анализ теории права и теории алгоритмов, а также те возможности, которые этот анализ предоставляет.

Во многих работах по теории права реализация права определяется как претворение (воплощение) установленных правовых норм в деятельности субъектов права. Одним из условий эффективности правового регулирования называют последовательную реализацию правовых норм.

Формами реализации права являются: соблюдение - воздерживание от совершения запрещенных нормами права действий; исполнение - обязательное совершение предусмотренных нормами права действий; использование - осуществление субъектами своих прав.

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

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

И в этом понимании правоприменительный процесс имеет много общего с алгоритмом. Любой правовед без труда выявит совпадение в понимании алгоритма и нормы права. Их общие черты сводятся к следующему:

- общеобязательность правил поведения, составляющих содержание алгоритма или нормы права;

- последовательность реализации предписанных действий (правил поведения);

- формализация процесса реализации правил поведения;

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

Перенос представления алгоритмического процесса на механизм реализации правовых норм позволяет провести следующие аналогии.

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

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

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

Нормы права в своей совокупности нацелены на достижение единой цели, Т.е. действуют непрерывно.

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

Соответственно те права и обязанности, запреты, ограничения, которые ранее существовали как бы потенциально (предоставительно­ обязывающий характер правовой нормы), превращаются в конкретную реальность для конкрет­ных субъектов".

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

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

И в понятие нормы права, и в определение алгоритма включается термин "предписание". С точки зрения теории алгоритмов он указывает на "наличие некоторого адресата - субъекта, о котором предполагается, что он будет выполнять это предписание. В частности, это может быть человек. Выполняя предписание, его адресат будет осуществлять некоторый процесс, однозначно определенный этим предписанием. Этот процесс будет идти в некоторой системе, состояние которой будет в ходе процесса изменяться. Все эти изменения должны полностью определяться предписанием и осуществляться адресатом-исполнителем, который, разумеется, должен понимать предписание".

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

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

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

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

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

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

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

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

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

В качестве таких условий в литературе обычно указывают:

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

2) стремление следователя при расследовании действовать по общим методическим правилам, разработанной криминалистикой, но с учетом особенностей конкретных преступлений и складывающихся следственных ситуациях;

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

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

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

Добавить документ в свой блог или на сайт

Похожие:

Лекция. Алгоритмы iconАлгоритмы понимать базовые алгоритмы (пару сортировок сложностью n*log(n))
Это очень важно знать (особенно по поводу String) как с точки зрения использования памяти, так и с точки зрения безопасности

Лекция. Алгоритмы iconСтруктуры и алгоритмы обработки данных
Структуры и алгоритмы обработки данных: учебно-метод пособие для студ спец. «Программное обеспечение информационных технологий» всех...

Лекция. Алгоритмы iconКурс лекций (под редакцией профессора В. Ф. Беркова) 2-е издание...
Авторский коллектив: Н. С. Щекин (лекция 8); Г. И. Касперович (лекция 9); В. Ф. Берков (лекция 10); И. Г. Подпорин (лекция 11); В....

Лекция. Алгоритмы iconКризис в созависимых отношениях. Принципы и алгоритмы консультирования речь
Е60 Кризис в созависимых отношениях. Принципы и алгоритмы консультирования. — Спб.: Речь, 2004. — 368 с

Лекция. Алгоритмы iconКризис в созависимых отношениях. Принципы и алгоритмы консультирования речь
Е60 Кризис в созависимых отношениях. Принципы и алгоритмы консультирования. — Спб.: Речь, 2004. — 368 с

Лекция. Алгоритмы iconЛекция I и проблема языка и сознания лекция II 31 слово и его семантическое...
Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного...

Лекция. Алгоритмы iconЛекция I и проблема языка и сознания лекция II 31 слово и его семантическое...
Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного...

Лекция. Алгоритмы iconМетодические рекомендации вводная лекция введение в курс лекция 2
Лекция 15. Финансирование государственной службы. Контроль и надзор за соблюдением законодательства о государственной службе

Лекция. Алгоритмы iconЛекция религии современных неписьменных народов: человек и его мир...
Редактор Т. Липкина Художник Л. Чинёное Корректор Г. Казакова Компьютерная верстка М. Егоровой

Лекция. Алгоритмы iconПрограмма CollTest08. Инструкция
Имитация лабораторного эксперимента, алгоритмы обработки результатов и оформления отчетов

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
zadocs.ru
Главная страница

Разработка сайта — Веб студия Адаманов