DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Імітаційне моделювання процесу функціонування скінченого дискретного стохастичного автомата

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра автоматизованих систем управління

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Інформаційні технології

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ Національний університет “Львівська політехніка” Інститут Комп’ютерних наук та інформаційних технологій Кафедра автоматизованих систем управління  Звіт до лабораторної роботи № 3 з курсу «Моделювання систем» на тему: «Імітаційне моделювання процесу функціонування скінченого дискретного стохастичного автомата» Мета роботи: вивчити процес функціонування дискретного скінченого стохастичного автомата та знайти його ймовірностні характеристики за даними експерименту. Короткі теоретичні відомості У загальному випадку ймовірнісний автомат являє собою дискретний потактний перетворювач інформації з пам’яттю, функціонування якого в кожному такті залежить лише від стану пам’яті і може бути описаний статистично. Застосування схем ймовірнісних автоматів (Р-схем) має важливе значення для розвитку методів проектування дискретних систем, які виявляють статистично закономірну поведінку, обгрунтування алгоритмічних можливостей таких систем та доцільності їх використання, а також для розв’язування задач синтезу дискретних стохастичних систем за обраним критерієм з урахуванням обмежень. У загальному випадку ймовірнісний автомат являє собою дискретний потактний перетворювач інформації з пам’яттю, функціонування якого в кожному такті залежить лише від стану пам’яті і може бути описаний статистично. Застосування схем ймовірнісних автоматів (Р-схем) має важливе значення для розвитку методів проектування дискретних систем, які виявляють статистично закономірну поведінку, обгрунтування алгоритмічних можливостей таких систем та доцільності їх використання, а також для розв’язування задач синтезу дискретних стохастичних систем за обраним критерієм з урахуванням обмежень. Розглянемо більш загальну математичну схему. Нехай Ф - множина різноманітних пар виду , де yj - елемент Y. Поставимо вимогу, щоб довільний елемент множини G спричиняв на множині Ф деякий закон розподілу: Елементи з Ф  (xi,zs) b11 b12 ... bk,j-1 bkj При цьому , bkj - ймовірності переходу автомата в стан Zk та генераці вихідного сигналу yj, якщо він знаходився в стані Zs та на його вхід в цей момент прийшов сигнал xi. Число таких розподілів, які подаються у вигляді таблиць, дорівнює числу елементів множини G. Позначимо множину таких таблиць В і отримаємо опис стохастичного дискретного автомата в вигляді четвірки . Окремий випадок Р-автомата  - це автомат, у якого перехід в новий стан або вихідний сигнал визначаються детерміновано. В першому випадку такий автомат називається Z-детермінованим стохастичним автоматом, в другому - Y-детермінованим. Розглянемо Y-детермінований P-автомат, який заданий таблицею переходів та виходів:  Таблиця переходів Y-детермірнованого Р-автомата Zk Zk   Z1 Z2 ... Zk-1 Zk  Z1 Z2 ... Zk p11 p21 ... pk1 p12 p22 ... pk2 ... ... ... ... p1(k-1) p2(k-1) ... pk(k-1) p1k p2k ... pkk   Таблицю переходів можна в цьому випадку представити у вигляді квадратної матриці перехідних ймовірностей Р: . При цьому має виконуватися умова, що . Для повного опису Y-детермінованого Р-автомата необхідно також визначити початковий розподіл ймовірностей виду  де dk - ймовірність того, що на початку роботи Р-автомат знаходиться в стані Zk. До початку функціонування Р-автомат знаходиться в стані Z0 і в нульовий такт часу змінює стан згідно з розподілом D. Подальший процес зміни станів автомата визначається матрицею переходів Р. Можливе також введення інформації про початковий стан в матрицю Р шляхом збільшення її розмірності на одиницю до . Перший рядок цієї матриці відповідає початковому стану Z0 і має вигляд , а перший стовпчик буде нульовим. З точки зору математичного апарату цей автомат еквівалентний дискретному марківському ланцюгу. Варіант 38 Z0 Z1 Z2 Z3 Z4 Z5  0 1 1 1 0 0    z0 z1 z2 z3 z4 z5    z0 0 0,3 0,2 0,5 0 0    z1 0 0,5 0,2 0,3 0 0    z2 0 0 0 0 0,5 0,5   p = z3 0 0,1 0,1 0,3 0,5 0    z4 0 0 0 0,2 0 0,8    z5 0 0 0 0 1 0    Оскільки фінальні ймовірності не залежать від стану z0, то ймовірність знаходження в станах z1, z2, z3, z4 можна знайти з матричного рівняння:  z0 z1 z2 z3 z4 z5    z0 0 0,3 0,2 0,5 0 0    z1 0 0,5 0,2 0,3 0 0    z2 0 0 0 0 0,5 0,5   p = z3 0 0,1 0,1 0,3 0,5 0    z4 0 0 0 0,2 0 0,8    z5 0 0 0 0 1 0    C = (C0,C1,C2,C3,C4,C5) c1 = 0,5 c1 +0,1 c3 ; c2 = 0,2c1 + 0,1 c3; c3 = 0,3 c1+ 0,3 c3+ 0,2 c4; c4 = 0,5 c2 + 0,5 c3 +c5; c5 = 0,5 c2 + 0,8 c4; c1 + c2 + c3 + c4 + c5 + c6= 1 - умова нормування. c1 = 0,2c3; c2 = 0,34c3; c3 = 0,06 c3 + 0,3 c3+ 0,2 c4; => 0,64c3=0,2c4; c4 = 3,2 c3; c5 = 2,73 c3 ; 7,47 c3 = 1 => c1 = 0,03 c2 = 0,04 c3 = 0,13 c4 = 0,42 c5 = 0,38 Текст програми Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace Lab3_System_Modelling { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } Form.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Lab3_System_Modelling { public partial class Form1 : Form { int kStates = 6; int kTakt = 10; double[,] P = { {0, 0.3, 0.2, 0.5, 0, 0 }, {0, 0.5, 0.2, 0.3, 0, 0 }, {0, 0, 0, 0, 0.5, 0.5}, {0, 0.1, 0.1, 0.3, 0.5, 0 }, {0, 0, 0, 0.2, 0, 0.8}, {0, 0, 0, 0, 1, 0 } }; int[] Z = { 0, 1, 1, 1, 0, 0 }; double[,] B = new double[10,10]; double[] C = new double[10]; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { fill_p(); fill_zy(); fill_b(); textBox1.Text = "10"; } //FILL P Matrix void fill_p() { dataGridView1.Rows.Add(kStates); for (int i = 0; i < kStates; i++) for (int j = 0; j < kStates; j++) { B[i, j] = 0; C[i] = 0; } for (int i = 0; i < kStates; i++) { dataGridView1.Rows[i].Cells[0].Value = "Z" + i; for (int j = 0; j < kStates; j++) dataGridView1.Rows[i].Cells[j + 1].Value = P[i,j]; } } void fill_zy() { for (int i = 0; i < kStates; i++) dataGridView2.Rows[0].Cells[i].Value = Z[i]; } void fill_b() { dataGridView3.Rows.Add(kStates); for (int i = 0; i < kStates; i++) { dataGridView3.Rows[i].Cells[0].Value = "Z" + i; for (int j = 0; j < kStates; j++) dataGridView3.Rows[i].Cells[j + 1].Value = 0; } } private void button1_Click(object sender, EventArgs e) { try { kTakt = Int32.Parse(textBox1.Text); Random rand = new Random(); //Filling for (int i = 0; i < kStates; i++) for (int j = 0; j < kStates; j++) { B[i, j] = 0; C[i] = 0; } //////////////////// int curr = 0; double py = 0; for (int i = 0; i < kTakt; i++) { int j = 0; double sum = 0; double temp = Math.Round(rand.NextDouble(),1); for (j = 0;j < kStates; j++) { if (temp < sum) break; sum += P[curr, j]; } B[curr, j - 1]++; curr = j - 1; } for (int i = 0; i < kStates; i++) { for (int j = 0; j < kStates; j++) C[i] += B[j,i]; C[i] /= kTakt; py += Z[i] * C[i]; } ///// for (int i = 0; i < kStates; i++) { dataGridView4.Rows[0].Cells[i].Value = C[i]; for (int j = 0; j < kStates; j++) { dataGridView3.Rows[i].Cells[j+1].Value = B[i, j]; } } ///// //last double tempSum = 0; for (int i = 0; i < kStates; i++) { if (Z[i] == 1) tempSum += C[i]; } label8.Text = ""+tempSum; } catch(Exception err){ MessageBox.Show(err.Message); } } } } Результат виконання програми  Висновок: На цій лабораторній роботі я вивчив процес функціонування дискретного скінченого стохастичного автомата та знайшов його ймовірностні характеристики за даними експерименту.
Антиботан аватар за замовчуванням

20.02.2013 20:34

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!