Skip to main content

Quellinformationen

Repository
ffsshhttiikk/opencode-agents-skills
Letzte Quellaktivität
28. Februar 2026 um 22:54
Erkannte Sprache von SKILL.md
Englisch
Sterne
3
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
search-algorithms
description
Search algorithms in AI
license
MIT
compatibility
opencode
metadata
{"audience":"machine-learning-engineers","category":"artificial-intelligence"}
## What I do - Implement search algorithms - Solve pathfinding problems - Optimize search strategies - Apply heuristic search - Handle adversarial search ## When to use me Use me when: - Finding optimal paths - Game playing - Puzzle solving - Route planning ## Key Concepts ### Search Categories - **Uninformed**: BFS, DFS, Uniform-cost - **Informed**: A*, Greedy, IDA* - **Adversarial**: Minimax, Alpha-beta - **Local**: Hill climbing, Simulated annealing ### A* Implementation ```python import heapq def astar(start, goal, neighbors, heuristic): frontier = [(0, start)] came_from = {start: None} cost_so_far = {start: 0} while frontier: _, current = heapq.heappop(frontier) if current == goal: return reconstruct_path(came_from, current) for next_node in neighbors(current): new_cost = cost_so_far[current] + cost(current, next_node) if next_node not in cost_so_far or new_cost < cost_so_far[next_node]: cost_so_far[next_node] = new_cost priority = new_cost + heuristic(next_node, goal) heapq.heappush(frontier, (priority, next_node)) came_from[next_node] = current return None ``` ### Minimax for Games ```python def minimax(board, depth, is_maximizing): if is_terminal(board) or depth == 0: return evaluate(board) if is_maximizing: max_eval = -inf for move in get_moves(board): eval = minimax(make_move(board, move), depth - 1, False) max_eval = max(max_eval, eval) return max_eval else: min_eval = inf for move in get_moves(board): eval = minimax(make_move(board, move), depth - 1, True) min_eval = min(min_eval, eval) return min_eval # Alpha-beta pruning def alphabeta(board, depth, alpha, beta, is_maximizing): if is_terminal(board) or depth == 0: return evaluate(board) if is_maximizing: max_eval = -inf for move in get_moves(board): eval = alphabeta(make_move(board, move), depth - 1, alpha, beta, False) max_eval = max(max_eval, eval) alpha = max(alpha, eval) if beta <= alpha: break return max_eval else: min_eval = inf for move in get_moves(board): eval = alphabeta(make_move(board, move), depth - 1, alpha, beta, True) min_eval = min(min_eval, eval) beta = min(beta, eval) if beta <= alpha: break return min_eval ```
Auf GitHub ansehen