Попытка создать многоуровневый клеточный автомат в MATLAB - Эпидемический симулятор - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь создать симулятор эпидемии в MATLAB.На данный момент я создал код (с помощью членов этого форума, спасибо Луис!), Который выполняет свертку окрестности Мура с матрицей, состоящей из 1 и 2 (где 1 восприимчиво, а 2 заражено),Это работает как основная форма распространения, где главное правило - если клетка заражена, то все соседние клетки будут заражены.Прямо сейчас я пытаюсь реализовать правило, которое заявляет на определенном временном шаге, что клетки станут иммунными.Я просто не уверен, как это сделать.Я также хочу реализовать идею выставленных носителей.По сути, они такие же, как инфицированные клетки, так и распространяющие болезнь, однако они не имеют заболевания и не становятся удаленными или восприимчивыми снова.Это необязательно, хотя на самом деле это всего лишь идея сделать модель более правдоподобной.

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

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

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

    matlab
    clear;clf;clc;
    n = 2000;
    pos = mod((1:n),n) + 1; neg = mod((1:n)-2,n) + 1;
    p = ceil(rand(n,n)*1.00001);

    neighbourhood = [1 1 1; 1 1 1; 1 1 1]; % Moore plus own cell
    for t = 1:356
        p = (conv2(p-1, neighbourhood, 'same')>0) + 1; % update
        image(p), colormap([1 1 1; 1 0 1]), pause(.1) % draw
    end

http://csc.ucdavis.edu/~chaos/courses/nlp/Projects2008/SharonChang/Report.pdf

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

...