Skip to main content

معلومات المصدر

المستودع
ffsshhttiikk/opencode-agents-skills
آخر نشاط في المصدر
٢٨ فبراير ٢٠٢٦ في ٢٢:٥٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٣
التفرعات
٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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 ```
عرض على GitHub