- •Основные методы представления знаний в экспертных системах. Этапы (прототипы) разработки экспертной системы. Коллектив разработчиков экспертной системы.
- •Математический нейрон. Его графическое изображение, формулы по которым он работает, виды активационных функций. Моделирование основных логических функций с помощью математического нейрона
- •Персептрон Розенблатта, его принцип действия на примере распознавания букв.
- •Сравнительный анализ процедурной, функциональной, объектно-ориентированной и логической парадигм программирования.
- •Этапы и методологии проектирования баз данных.
- •Программное обеспечение для проектирования, реализации проектов информационных систем. (case-технологии, субд и пр.)
- •Представление числовых величин в эвм: позиционные системы счисления; форматы чисел с фиксированной и плавающей точкой; представление в прямом, обратном и дополнительном кодах.
- •Принципы организации машины фон Неймана.
- •6) Представительский уровень
- •7) Прикладной уровень
- •Основы теории моделирования информационных систем и протекающих в них процессов.
- •Аналитические методы моделирования (ам)
- •Имитационные методы моделирования (им)
- •Функциональные методы моделирования (фм)
- •Статическое моделирование (см)
- •Криптография как наука. Основные понятия и определения
- •Электронная цифровая подпись. Гост р 34.10-2001
- •Управление оперативной памятью в современных операционных системах: управление физической и виртуальной памятью, способы организация виртуальной памяти, организация подкачки.
- •Управление хранением данных: система накопителей информации, система драйверов накопителей информации, современные файловые системы.
- •Обходы графов, эйлеровы и гамильтоновы графы, алгоритм Флери. Укладки графов, изоморфизм, гомеоморфизм, планарность, критерий планарности, формула Эйлера.
- •Двудольные графы, критерий двудольности, деревья, остовные деревья
- •Экстремальные задачи теории графов, «жадные» алгоритмы, алгоритм Дейкстры
- •Раскраски графов, «жадный» алгоритм. Хроматическое число, хроматический многочлен, его нахождение и свойства.
- •Элементарные булевы функции и способы их задания, существенные и фиктивные переменные. Разложение булевых функций по переменным, сднф, скнф, полиномы Жегалкина.
- •Повторные выборки, сочетания и размещения (с возвращением и без возвращения элементов). Комбинаторные принципы.
- •Биномиальные и полиномиальные коэффициенты, бином Ньютона, треугольник Паскаля. Полиномиальная формула.
- •Алфавитное кодирование: необходимое и достаточные условия однозначности декодирования, теорема Маркова, алгоритм Маркова.
- •Коды с минимальной избыточностью (коды Хаффмана), метод построения. Самокорректирующиеся коды (коды Хэмминга), метод построения.
- •Недетерминированные двухполюсные источники, замкнутые множества состояний. Задача синтеза автоматов-распознавателей.
- •Эквивалентные состояния, эквивалентные автоматы, минимизация автоматов, алгоритм Мили.
- •Особенности организации операционной системы Unix. Цели создания и структура операционной системы.
- •Понятие сложности алгоритма и сложности (объема) входных данных. Основные правила вычисления сложности алгоритма (сложность линейного алгоритма, ветвления, цикла).
-
Понятие сложности алгоритма и сложности (объема) входных данных. Основные правила вычисления сложности алгоритма (сложность линейного алгоритма, ветвления, цикла).
Способы оценки сложности:
-
Экспериментальные исследования.
Основные требования:
- множество разнообразных тестов с неповторяющимися закономерностями; - в наборе тестов должны присутствовать все «крайние» случаи;
- преимущество «обычных» входных данных.
Основные недостатки:
- сложность экстраполяции на другие объемы данных;
- занимает длительное время;
- результаты сильно зависят от конкретной реализации.
-
Теоретическая оценка.
Важно уметь строить теоретическую оценку сложности алгоритма. Кроме того, для приближенных алгоритмов важно оценивать точность приближенного решения.
На сложность алгоритма может влиять не только сама задача, но и ограничения на входные данные.
Понятие сложности алгоритмов:
-
Временная: оценивается
-
Емкостная: характеризует объем памяти, необходимый для хранения входных и выходных данных и промежуточных результатов.
x – входные данные
tα(х) – функция сложности – оценка времени работы алгоритма на входных данных х.
Перейдем от х к характеристике входных данных v(x), которую будет называть объемом (сложностью) входных данных.
tα(v) – сложность алгоритма
Пример:
function (n: integer): integer
var i,p: integer;
begin
p:=1; 1 оп
for i:=2 to n do p:=p*I n-1 разпо 2
f:=p; 1 оп
end;
итого: 1+(n-1)*2+1=2n операций
V(n) – значение числа n
tα(v)=2n
Верхняя (нижняя) оценка сложности алгоритма (tα(v)) – это функция, отражающая максимальное (минимальное) количество операций, выполняемое алгоритмом при поступлении на вход данных объемом V, т.е. это их оценка в худшем (лучшем) случае.
Средняя оценка сложности - это функция, отражающая среднее количество операций, выполняемое алгоритмом при поступлении на вход данных объемом V, при этом при вычислении среднего количества учитывается вероятность появления тех или иных входных данных.
По умолчанию подразумевают среднюю оценку сложности. Ее сложнее всего получить.
Если не оговорено отдельно, то за одну условную операцию будем считать каждую арифметическую или логическую операцию, а также операции пересылки данных.
Сложность алгоритма удобно оценивать по блок-схеме или ее упрощенному варианту – управляющему графу.
Линейные алгоритмы
Ветвление
МА – количество данных, при котором алгоритм идет по ветке А.
Цикл
1) заранее известно количество повторений
2) заранее неизвестно количество повторений
Универсальных методов нет
Пример. Бинарный поиск в упорядоченном массиве
function bin_find (m:mas; n,x: integer): integer;
var l,r,mid: integer;
begin
l:=1; r:=n; 2 оп
while l<r do
begin
mid:=(l+r) div 2; 3 оп
if x>m[mid] then max 3 оп
l:=mid+1 min 2 оп
else r:=mid; mid 1/2*2+1/2*3=2,5 оп
end;
if m[l]=x then bin_find:=l 2 оп
else bin_find:=0;
end;