КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Методы имитационного моделирования
Р(1, 2) Р(1, 2) Р(1, 3) Р(2, 2) Р(2, 3) ¯ ¯ В методе динамического программирования таблица вероятностей строится, начиная с правого нижнего угла
Function ODDS (i, j: integer): real; var S, K: integer; begin for S:=1 to i+j do begin P[0, S]:=1; P[S, 0]:=0; end; for K:=1 to S-1 do P[K, S-K]:=(P[K-1, S-K]+P[K, S-K-1])/2; Result:=P[i, j]; end; Сложность всей программы при n=i+j O(n2). Пример 3: Произведение матриц. Пусть требуется вычислить произведение матриц М=М1*М2*М3*…*Мк, где Mi(i-1, j). Порядок перемножения матриц может существенно влиять на число операций независимо от выбранного метода умножения. Для перемножения (p; q)*(q; r) потребуется p*q*r операций. В результате получится матрица (p; r). Рассмотрим конкретный числовой пример: М=М1(10, 20)*М2(20, 50)*М3(50, 1)*М4(1, 100) Вычисление произведения этих матриц согласно общим правилам (справа налево) М=М1*(М2*(М3*М4)) потребует 125 тысяч операций. Умножение другим способом М=(М1*(М2*М3))*М4 потребует 220 тысяч операций. Однако процесс перебора всех способов перемножения с целью минимизировать число операций имеет экспоненциальную сложность O(2n-1-2), что неприемлемо при больших n. Алгоритм динамического программирования, дающий метод поиска оптимального произведения матриц, имеет полиномиальную сложность O(n2). Зададим минимальную стоимость произведения матриц Мi*Мi+1*… *Мj, 1 £ i £ j £ n: Эта формула дает минимально возможную сложность из набора k значений (i, j-1). В алгоритме динамического программирования mij вычисляется в порядке возрастания разностей нижних индексов: mii, " i mi,i+1 и т. д. При этом в формуле mik и mk+1, j оказываются ранее вычисленными на момент поиска mij. Для приведенного примера построим таблицу сложности.
Алгоритм может быть реализован в виде функции, вычисляющей минимальную стоимость, и выглядящей следующим образом:
Function MinMatrix(N: integer): longint; begin for i:=1 to n do m[i, i]:=0; for l:=1 to n-1 do for i:=1 to n-1 do begin j:=i+l; m[i, j]:= min(m[i, k]+m[k+1, j]+r[i-1]*r[k]*r[j]); end; Result:=m[1, n]; end;
Ряд задач теории алгоритмов связан с описанием работы больших систем. Для таких задач сложно построить точный алгоритм, т. к. трудно определить все переменные, влияющие на поведение системы и внутренние связи между ними. Обычно неизвестно распределение вероятностей случайных переменных, а функции системы являются непрерывными. Имитационное моделирование (ИМ) – это процесс вычислительного эксперимента над динамической моделью системы. Конечной целью ИМ является: · формирование стратегии управления; · определение оптимальных конфигураций системы; · установление реальных производственных планов; · получение оптимальной экономической стратегии. ИМ позволяет получить информацию о реальной системе, когда невозможно или нецелесообразно проводить реальные эксперименты. Области применения ИМ включают задачи теории массового обслуживания. Самыми распространенными алгоритмами ИМ являются алгоритмы моделирования очередей.
Дата добавления: 2014-01-07; Просмотров: 318; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |