<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=Butterfly_model%2FSirenko</id>
	<title>Butterfly model/Sirenko - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=Butterfly_model%2FSirenko"/>
	<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=Butterfly_model/Sirenko&amp;action=history"/>
	<updated>2026-05-22T09:42:14Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=Butterfly_model/Sirenko&amp;diff=47035&amp;oldid=prev</id>
		<title>Дарья: Новая страница: «netlogo globals [   max-height        ;; максимальная высота на карте   summit-count      ;; сколько бабочек достигло вершины   blue-summit-count ;; сколько синих бабочек достигло вершины ]  turtles-own [   butterfly-type    ;; &quot;normal&quot; или &quot;blue&quot;   steps-taken       ;; сколько шагов сделала бабочка   reached-summit?   ;; достигла ли...»</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=Butterfly_model/Sirenko&amp;diff=47035&amp;oldid=prev"/>
		<updated>2026-05-21T06:21:57Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «netlogo globals [   max-height        ;; максимальная высота на карте   summit-count      ;; сколько бабочек достигло вершины   blue-summit-count ;; сколько синих бабочек достигло вершины ]  turtles-own [   butterfly-type    ;; &amp;quot;normal&amp;quot; или &amp;quot;blue&amp;quot;   steps-taken       ;; сколько шагов сделала бабочка   reached-summit?   ;; достигла ли...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;netlogo&lt;br /&gt;
globals [&lt;br /&gt;
  max-height        ;; максимальная высота на карте&lt;br /&gt;
  summit-count      ;; сколько бабочек достигло вершины&lt;br /&gt;
  blue-summit-count ;; сколько синих бабочек достигло вершины&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
turtles-own [&lt;br /&gt;
  butterfly-type    ;; &amp;quot;normal&amp;quot; или &amp;quot;blue&amp;quot;&lt;br /&gt;
  steps-taken       ;; сколько шагов сделала бабочка&lt;br /&gt;
  reached-summit?   ;; достигла ли вершины&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  elevation         ;; высота пятна (0-100)&lt;br /&gt;
  visit-count       ;; сколько бабочек прошло через это пятно&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; Setup Procedures ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
  setup-landscape&lt;br /&gt;
  create-butterflies&lt;br /&gt;
  reset-ticks&lt;br /&gt;
  update-viz&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to setup-landscape&lt;br /&gt;
  ask patches [&lt;br /&gt;
    ;; Создаём несколько горных пиков&lt;br /&gt;
    let peak1-distance distancexy (max-pxcor * 0.3) (max-pycor * 0.7)&lt;br /&gt;
    let peak2-distance distancexy (max-pxcor * 0.7) (max-pycor * 0.3)&lt;br /&gt;
    let peak3-distance distancexy (max-pxcor * 0.5) (max-pycor * 0.9)&lt;br /&gt;
    &lt;br /&gt;
    set elevation 0&lt;br /&gt;
    &lt;br /&gt;
    ;; Пик 1 (высокий)&lt;br /&gt;
    if peak1-distance &amp;lt; 30 [&lt;br /&gt;
      set elevation elevation + (30 - peak1-distance) * 3&lt;br /&gt;
    ]&lt;br /&gt;
    &lt;br /&gt;
    ;; Пик 2 (средний)&lt;br /&gt;
    if peak2-distance &amp;lt; 25 [&lt;br /&gt;
      set elevation elevation + (25 - peak2-distance) * 2.5&lt;br /&gt;
    ]&lt;br /&gt;
    &lt;br /&gt;
    ;; Пик 3 (низкий)&lt;br /&gt;
    if peak3-distance &amp;lt; 20 [&lt;br /&gt;
      set elevation elevation + (20 - peak3-distance) * 2&lt;br /&gt;
    ]&lt;br /&gt;
    &lt;br /&gt;
    ;; Добавляем случайный шум для реализма&lt;br /&gt;
    set elevation elevation + random 5&lt;br /&gt;
    &lt;br /&gt;
    ;; Ограничиваем высоту&lt;br /&gt;
    if elevation &amp;gt; 100 [ set elevation 100 ]&lt;br /&gt;
    if elevation &amp;lt; 0 [ set elevation 0 ]&lt;br /&gt;
    &lt;br /&gt;
    set visit-count 0&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  set max-height max [elevation] of patches&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to create-butterflies&lt;br /&gt;
  set summit-count 0&lt;br /&gt;
  set blue-summit-count 0&lt;br /&gt;
  &lt;br /&gt;
  ;; Создаём 80 обычных бабочек (серых)&lt;br /&gt;
  create-turtles 80 [&lt;br /&gt;
    set butterfly-type &amp;quot;normal&amp;quot;&lt;br /&gt;
    set color gray&lt;br /&gt;
    set size 2&lt;br /&gt;
    setxy random-xcor random-ycor&lt;br /&gt;
    set steps-taken 0&lt;br /&gt;
    set reached-summit? false&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Создаём 20 синих бабочек (редкий вид, более умные)&lt;br /&gt;
  create-turtles 20 [&lt;br /&gt;
    set butterfly-type &amp;quot;blue&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 2.5&lt;br /&gt;
    setxy random-xcor random-ycor&lt;br /&gt;
    set steps-taken 0&lt;br /&gt;
    set reached-summit? false&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ask turtles [&lt;br /&gt;
    ;; Убеждаемся, что не на вершине в начале&lt;br /&gt;
    if elevation-of-self &amp;gt;= max-height * 0.95 [&lt;br /&gt;
      setxy random-xcor random-ycor&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to update-viz&lt;br /&gt;
  ask patches [&lt;br /&gt;
    ;; Цвет показывает активность коридора&lt;br /&gt;
    let intensity (visit-count / 50)&lt;br /&gt;
    if intensity &amp;gt; 1 [ set intensity 1 ]&lt;br /&gt;
    &lt;br /&gt;
    ifelse visit-count = 0 [&lt;br /&gt;
      set pcolor scale-color green elevation 0 100&lt;br /&gt;
    ] [&lt;br /&gt;
      set pcolor scale-color red intensity 0 1&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Особый цвет для вершины&lt;br /&gt;
  ask patches with [elevation = max-height] [&lt;br /&gt;
    set pcolor white&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; Go Procedures    ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if count turtles = 0 [ stop ]&lt;br /&gt;
  &lt;br /&gt;
  ask turtles [&lt;br /&gt;
    if not reached-summit? [&lt;br /&gt;
      move-butterfly&lt;br /&gt;
      check-summit&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  tick&lt;br /&gt;
  update-viz&lt;br /&gt;
  update-plots&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to move-butterfly&lt;br /&gt;
  let move-up-probability&lt;br /&gt;
  &lt;br /&gt;
  ;; Разные типы бабочек ведут себя по-разному&lt;br /&gt;
  ifelse butterfly-type = &amp;quot;normal&amp;quot; [&lt;br /&gt;
    set move-up-probability 0.7  ;; 70% идёт вверх&lt;br /&gt;
  ] [&lt;br /&gt;
    set move-up-probability 0.9  ;; 90% идёт вверх (умнее)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  if random-float 1 &amp;lt; move-up-probability [&lt;br /&gt;
    move-to-highest-neighbor&lt;br /&gt;
  ] [&lt;br /&gt;
    move-randomly&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  set steps-taken steps-taken + 1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to move-to-highest-neighbor&lt;br /&gt;
  let highest-patch patch-here&lt;br /&gt;
  let highest-elevation elevation-of-self&lt;br /&gt;
  &lt;br /&gt;
  ask neighbors [&lt;br /&gt;
    if ([elevation] of self) &amp;gt; highest-elevation [&lt;br /&gt;
      set highest-elevation [elevation] of self&lt;br /&gt;
      set highest-patch self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Запоминаем, что прошли через это пятно&lt;br /&gt;
  ask patch-here [&lt;br /&gt;
    set visit-count visit-count + 1&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  move-to highest-patch&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to move-randomly&lt;br /&gt;
  ;; Запоминаем проход&lt;br /&gt;
  ask patch-here [&lt;br /&gt;
    set visit-count visit-count + 1&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  rt random 360&lt;br /&gt;
  fd 1&lt;br /&gt;
  &lt;br /&gt;
  ;; Не выходим за границы&lt;br /&gt;
  if not can-move? 1 [&lt;br /&gt;
    set heading heading + 180&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to check-summit&lt;br /&gt;
  if elevation-of-self &amp;gt;= max-height * 0.95 [&lt;br /&gt;
    set reached-summit? true&lt;br /&gt;
    set summit-count summit-count + 1&lt;br /&gt;
    &lt;br /&gt;
    if butterfly-type = &amp;quot;blue&amp;quot; [&lt;br /&gt;
      set blue-summit-count blue-summit-count + 1&lt;br /&gt;
    ]&lt;br /&gt;
    &lt;br /&gt;
    ;; Визуальный эффект при достижении вершины&lt;br /&gt;
    set color yellow&lt;br /&gt;
    &lt;br /&gt;
    ;; Бабочка улетает через 5 шагов (имитация размножения)&lt;br /&gt;
    if steps-taken &amp;gt; 5 [&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report elevation-of-self&lt;br /&gt;
  report [elevation] of patch-here&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to update-plots&lt;br /&gt;
  set-current-plot &amp;quot;Butterfly Progress&amp;quot;&lt;br /&gt;
  clear-plot&lt;br /&gt;
  &lt;br /&gt;
  ;; График 1: количество достигших вершины&lt;br /&gt;
  set-current-plot-pen &amp;quot;summit&amp;quot;&lt;br /&gt;
  plot summit-count&lt;br /&gt;
  &lt;br /&gt;
  ;; График 2: средняя высота бабочек&lt;br /&gt;
  set-current-plot-pen &amp;quot;avg-height&amp;quot;&lt;br /&gt;
  if count turtles &amp;gt; 0 [&lt;br /&gt;
    let total-height sum [elevation-of-self] of turtles&lt;br /&gt;
    plot total-height / count turtles&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  set-current-plot &amp;quot;Traffic Intensity&amp;quot;&lt;br /&gt;
  clear-plot&lt;br /&gt;
  let max-visits max [visit-count] of patches&lt;br /&gt;
  if max-visits &amp;gt; 0 [&lt;br /&gt;
    histogram [visit-count] of patches&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; Buttons &amp;amp; Sliders ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
;; Создайте в интерфейсе:&lt;br /&gt;
;; - Slider: q (0-1) для вероятности движения вверх&lt;br /&gt;
;; - Button: Setup&lt;br /&gt;
;; - Button: Go (forever)&lt;br /&gt;
;; - Monitor: summit-count (достигшие вершины)&lt;br /&gt;
;; - Monitor: blue-summit-count (синие бабочки)&lt;br /&gt;
;; - Monitor: count turtles (оставшиеся бабочки)&lt;br /&gt;
;; - Plot: &amp;quot;Butterfly Progress&amp;quot; с двумя линиями&lt;br /&gt;
;; - Plot: &amp;quot;Traffic Intensity&amp;quot; гистограмма&lt;br /&gt;
&lt;br /&gt;
to-report butterfly-efficiency&lt;br /&gt;
  ;; Эффективность: сколько бабочек достигло вершины за минимальное время&lt;br /&gt;
  if summit-count = 0 [ report 0 ]&lt;br /&gt;
  report (summit-count / count turtles) * 100&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Дарья</name></author>
	</entry>
</feed>