Поиск восхождением к вершине: различия между версиями

Материал из Поле цифровой дидактики
Строка 14: Строка 14:
=== [[NetLogo]] ===
=== [[NetLogo]] ===


<syntaxhighlight lang="Logos" line>
to look-for-food  ;; turtle procedure
to look-for-food  ;; turtle procedure
   if food > 0
   if food > 0
Строка 24: Строка 25:
   [ uphill-chemical ]
   [ uphill-chemical ]
end
end
</syntaxhighlight>
<syntaxhighlight lang="Logos" line>
to go
  ;; stop when all turtles are on peak
  if all? turtles [peak?]
    [ stop ]
  ask turtles [
    ;; remember where we started
    let old-patch patch-here
    ;; to use UPHILL, the turtles specify a patch variable
    uphill pcolor
    ;; are we still where we started? if so, we didn't
    ;; move, so we must be on a peak
    if old-patch = patch-here [ set peak? true ]
  ]
  tick
end
</syntaxhighlight>


{{#widget:iframe
{{#widget:iframe

Версия 08:09, 18 ноября 2023

Описание проблемы Поиск восхождением к вершине - алгоритм поиска в компьютерных науках, когда агент просматривает значения переменных на ближайших полях и на поле с максимальным значением переменной. Использование алгоритма поиск восхождением к вершине можно наблюдать в таких играх как Sims или Pac-Man, когда призраки преследуют Pacman, следуя наивысшему значению запаха Pac-man, который распространяется по всему полю см. http://ccl.northwestern.edu/netlogo/models/Pac-Man
Среда Pac-Man, NetLogo
Предлагаемое решение Использовать встроенные команды NetLogo
  • uphill patch-variable
  • uphill4 patch-variable
Пример кода
to move
uphill elevation 
end
Адрес примера http://ccl.northwestern.edu/netlogo/models/Ants
Стандарты
сходные практики
Ключевые понятия Паттерн вычислительного мышления
FieldActivity Computational Thinker

to look-for-food  ;; turtle procedure
  if food > 0
  [ set color orange + 1    
    set food food - 1        
    rt 180                
    stop ]
  ;; go in the direction where the chemical smell is strongest
  if (chemical >= 0.05) and (chemical < 2)
  [ uphill-chemical ]
end


to go
  ;; stop when all turtles are on peak
  if all? turtles [peak?]
    [ stop ]
  ask turtles [
    ;; remember where we started
    let old-patch patch-here
    ;; to use UPHILL, the turtles specify a patch variable
    uphill pcolor
    ;; are we still where we started? if so, we didn't
    ;; move, so we must be on a peak
    if old-patch = patch-here [ set peak? true ]
  ]
  tick
end



В моделях NetLogo примеры поиска восхождением к вершине