Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Opis_Lab_Metodichka.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
352 Кб
Скачать
☆

Лабораторна робота №6 Визначення порога протікання в квадратній гратці методом Монте-Карло.

В даній лабораторній роботі потрібно дослідити протікання в квадратному масиві зв’язків одна сторона якого містить L вузлів, так що повна кількість вузлів становить L2. Відстань між вузлами приймемо рівній одиниці, а вузли будемо характеризувати координатами X та Y. Наприклад вузол з координатами X=9, Y=25 – це вузол, що знаходиться в 9 стовпчику праворуч та двадцять п’ятому рядку знизу.

Щоб дослідити протікання необхідно задати який вузол блокований, а який ні. Крім того потрібно мати можливість змінити кількість блокованих вузлів, що проходить через значення критичного параметра порога протікання.

Для цього спочатку кожному з вузлів приписується де-яке число V. Оскільки кожний з вузлів характеризується координатами X та Y, то це еквівалентно тому що в розгляд вводиться двовимірний масив значень V(X,Y), розмірність якого на квадратній гратці дорівнює L.

Створення масиву для гратки з блокованими вузлами.

Робота програми починається із процедури створення цього масиву. Елементи цього масива є випадкові числа, що рівномірно розподілені від 0 до 1. Генератор випадкових чисел дає певні значення які послідовно заносяться в кожний з елементів масиву.

Далі, на основі цього масива створюється інший масив, який позначимо К(X,Y). Елементи цього масиву являються нулями та одиницями, який буде відображати стан гратки після процедури блокування вузлів. Наприклад, якщо К(25,16)=0, то це означає що вузол з координатами X=25, Y=16 був заблокований і через нього протікання відбуватися не буде. Для створення цього масиву використовується масив V(X,Y) і деяке число t, що знаходиться в інтервалі від 0 до 1. В залежності від обраного числа t, можна в широких межах змінювати число блокованих вузлів.

Отже, практично масив К створюється за наступним правилом. Візьмемо вузол з координатами X таY. Якщо V(X,Y)> t або V(X,Y)= t, то К(X,Y)=1, якщо ж V(X,Y)< t, то К(X,Y)=0. В першому випадку вузол з координатами X таY вважається неблокованим, в другому навпаки – блокованим. Оскільки величини V(X,Y) рівномірно розподілені в інтервалі від 0 до 1, то вибираючи t близьким до 0 отримаємо ситуацію коли всі вузли неблоковані, якщо ж t буде близьким до 1, то майже всі вузли нашої гратки будуть блокованими. Відповідно при t =1/2 кількість блокованих та неблокованих вузлів буде приблизно однаковою.

Пошук шляхів протікання.

Припустимо, що вивчається протікання зліва направо.

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

Подальший алгоритм можна сформулювати наступним чином - якщо найближчий сусід виявиться одиницею, він має бути переіменований в двійку.

Для спрощення роботи програми можна створити додатковий масив – список, в якому буде зберігатися інформація про неблоковані вузли – сусіди що були виявлені на останньому етапі аналізу і переіменовані в двійки. На кожному новому кроці аналізу цей список слід переписати заново для того, щоб не перевантажувати оперативний запам’ятовуючий пристрій ЕОМ. Адже на кожному наступному кроці створюється нове покоління елементів масиву цього списку .

В кожний конкретний момент цього процесу масив K(X,Y) з переписаними в ньому двійками буде відображати зв’язані між собою кластери, що починалися на лівій межі досліджуваної гратки і розповсюджувалися за рахунок зв’язки через неблоковані вузли праворуч. Таким чинок треки, що будуть відображені двійками будуть шляхами протікання.

Процес пошуку шляхів протікання припиняється в двох випадках:

  1. На правій стороні квадратної гратки появилася хоть одна двійка. При цьому програма фіксує що протікання існує.

  2. На правій стороні квадрата двійок немає, а вивчення чергового списку двійок-сусідів не призвело до виникнення жодної нової двійки. При цьому програма фіксує що протікання не існує.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]