Интерактивный урок информатики для 10-11 классов. Узнаем, как алгоритмы помогают роботам и спасают планету
Алгоритм разбит на отдельные, чётко определённые шаги — как команды для робота
Каждый шаг однозначен: датчик измеряет конкретное значение, робот выполняет точное действие
Алгоритм обязан завершиться за конечное число шагов — иначе робот зависнет
Показания датчиков температуры, влажности, расстояния, изображения с камеры
Действие: поворот колеса, включение помпы, отправка данных на сервер
Один алгоритм сортировки работает для любого объёма мусора на конвейере
Формальная запись алгоритма сбора мусора:
Упрощённый код для робота-сборщика мусора:
1def collect_trash(robot, grid):2 # Пока есть мусор на карте3 while has_trash(grid):45 # Шаг 1: Найти ближайший мусор6 nearest = find_nearest(7 robot.pos, grid.trash8 )910 # Шаг 2: Построить путь (BFS)11 path = bfs(12 robot.pos, nearest13 )1415 # Шаг 3: Идти по пути16 for step in path:17 robot.move(step)1819 # Шаг 4: Собрать мусор20 if grid.is_trash(step):21 grid.collect(step)22 print(f"Собрано: {collected}/{total}")2324 # Шаг 5: Вернуться на базу25 home = bfs(robot.pos, BASE)26 robot.move_along(home)27 print("Задание выполнено!")
1def bfs(start, goal):2 queue = [start]3 visited = {start}4 parent = {start: None}56 while queue:7 cell = queue.pop(0)89 if cell == goal:10 return reconstruct(parent, goal)1112 for neighbor in get_neighbors(cell):13 if (neighbor not in visited14 and not is_wall(neighbor)):15 visited.add(neighbor)16 parent[neighbor] = cell17 queue.append(neighbor)1819 return None # путь не найден
Проверьте знания о датчиках — выберите правильный ответ на каждый вопрос:
| Шаг | A | B | R = A mod B |
|---|---|---|---|
| 1 | 48 | 18 | 12 |
| 2 | 18 | 12 | 6 |
| 3 | 12 | 6 | 0 |
| Результат | 6 | 0 | — |
Ответ: НОД(48, 18) = 6
Сложность показывает, как время работы зависит от объёма данных. Критически важно для роботов с ограниченными ресурсами!
| Обозначение | Название | Пример в робототехнике |
|---|---|---|
| O(1) | Константная | Включить мотор — одно действие, независимо от размера комнаты |
| O(log n) | Логарифмическая | Бинарный поиск в отсортированном списке waypoints |
| O(n) | Линейная | Проход по массиву показаний 100 датчиков |
| O(n²) | Квадратичная | Сравнение каждого датчика со всеми (сортировка пузырьком) |
| O(2ⁿ) | Экспоненциальная | Перебор всех возможных маршрутов (задача коммивояжёра) |