mcpField
C
cs-algorithms

cs-algorithms

github.com/alphaonedev開発59 回インストール
リポジトリ

cs-algorithms について

cs-algorithmsは、コンピューターサイエンスのアルゴリズムを実装・分析・解説するOpenClaw向けスキルです。一般的なアルゴリズムと計算量分析を扱い、コマンドラインとPython APIから利用できます。

主な機能

  1. 01ソートと検索アルゴリズム
  2. 02BFS、DFS、A*による探索
  3. 03動的計画法
  4. 04貪欲法とバックトラッキング
  5. 05Big-O計算量分析

活用シーン

  1. 01ソートや検索処理の実装
  2. 02グラフ上の経路探索
  3. 03アルゴリズムの時間・空間コストの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill cs-algorithms

インストール後、Claude Code で/cs-algorithmsを入力して読み込まれたか確認します。

詳細

cs-algorithms

目的

このスキルは、ソート、検索、グラフ探索、動的計画法、貪欲法、バックトラッキング、Big-O 計算量分析を中心に、コンピューターサイエンスのアルゴリズムを実装・分析するためのツールを OpenClaw に提供します。コードスニペットの生成、アルゴリズムの最適化、回答での概念の説明に使用できます。

使用するタイミング

大規模なデータセットの検索を最適化する、ネットワーク内のグラフ問題を解く、パフォーマンスが重視されるアプリケーションの時間計算量を分析するなど、コーディングタスクでアルゴリズムの問題に取り組む際にこのスキルを使用します。教育目的の回答、コードレビュー、経路探索に BFS を使う方法など、特定のアルゴリズムについてユーザーから質問された場合にも使用します。

主な機能

  • ソート:ピボットを設定したり、安定性を確認したりできるクイックソート、マージソート、バブルソートを実装します。
  • 検索:再帰型または反復型を選択できる二分探索、線形探索を実行します。
  • グラフ探索:重み付きグラフへの対応を含め、経路探索に BFS、DFS、A* を実行します。
  • 動的計画法:ナップサック問題や最長共通部分列などの問題に、メモ化や表形式の手法を適用します。
  • 貪欲法とバックトラッキング:バックトラッキングの制約を使って、スケジューリング問題や部分和問題を解きます。
  • Big-O 分析:マージソートの O(n log n) など、時間計算量や空間計算量を算出して説明します。
  • その他:ソート済み配列や非連結グラフなどのエッジケースに対応します。

使用パターン

このスキルを使用するには、アルゴリズムの種類と入力を指定して、OpenClaw の API または CLI 経由で呼び出します。データ配列やグラフ構造など、必須のパラメーターを必ず渡してください。たとえば、結果を変数に出力して、他のスキルと連携できます。呼び出しでは、環境変数 $OPENCLAW_API_KEY による認証を行ってください。コードではスキルをインポートしてメソッドを直接呼び出し、CLI ではサブコマンドを使ってすばやく実行します。

一般的なコマンド/API

直接実行するには OpenClaw CLI を、連携には Python API を使用します。認証には、環境変数として $OPENCLAW_API_KEY を設定する必要があります。

  • CLI の例:openclaw run cs-algorithms --algorithm sort --input "[1,3,2]" --method quick クイックソートを使用して配列をソートします。

  • API の例:

    import openclaw
    openclaw.set_api_key(os.environ['OPENCLAW_API_KEY'])
    sorted_array = openclaw.algorithms.sort([1,3,2], method='quick')
    
  • 一般的なフラグ:

    • --algorithm [sort|search|bfs|...]:実行するアルゴリズムを指定します。
    • --input [JSON string]:配列やグラフなどの入力データを JSON で指定します。
    • --config { "method": "quick", "depth": 5 }:再帰の深さなどのパラメーターを JSON で設定します。
  • API エンドポイント:

    • openclaw.algorithms.sort(array, method='quick'):ソート済みの配列を返します。
    • openclaw.algorithms.bfs(graph, start_node):探索したノードを返します。
    • 動的計画法の場合:openclaw.algorithms.dp_solve(problem='knapsack', items=[...], capacity=10)。

設定形式は JSON ベースです。グラフの場合は、{"A": ["B", "C"]} のような隣接リストを使用します。

統合に関する注意

プロジェクトに OpenClaw を依存関係として追加して統合します(例:pip install openclaw)。環境で export OPENCLAW_API_KEY=your_key を実行して認証を設定します。非同期で使用するには、await openclaw.algorithms.bfs_async(graph) のように API 呼び出しを async 関数でラップします。入力が有効であることを確認し(例:配列はリストである必要があります)、出力は JSON として処理します。他のスキルと組み合わせる場合は、openclaw run cs-algorithms --output var1 | openclaw run another-skill --input var1 のように、OpenClaw の出力パイプ機能を使用します。

エラー処理

よくあるエラーには、無効な入力(例:ソート対象が配列ではない)や認証の失敗があります。呼び出しを try-except ブロックでラップして、InvalidInputError を確認します。CLI では、"Error: Array must be a list" のようなメッセージとともに、0 以外の終了コードが返されます。API では、例外をキャッチします。

try:
    result = openclaw.algorithms.sort([1, 'a'], method='quick')  # Type mismatch error
except openclaw.errors.InvalidInputError as e:
    print(f"Handle error: {e} - Ensure all elements are numbers")

呼び出し前に、たとえば isinstance(array, list) を使って入力を必ず検証してください。Big-O 分析で無限ループなど、計算量を算出できないケースに対応するには、タイムアウトを設定します。

具体的な使用例

  1. 配列のソート:ユーザーが指定したリストをソートするには、次のように実行します:openclaw run cs-algorithms --algorithm sort --input "[5,2,9,1]" --method mergesort"。出力は[1,2,5,9]です。コードでは:

    import openclaw
    openclaw.set_api_key(os.environ['OPENCLAW_API_KEY'])
    sorted_list = openclaw.algorithms.sort([5,2,9,1], method='mergesort')
    print(sorted_list)  # [1, 2, 5, 9]
    

    計算量を分析するには、--analyze-complexity フラグを追加すると、「O(n log n) time」と表示されます。

  2. グラフでの BFS:グラフを走査するには、次のように実行します:openclaw run cs-algorithms --algorithm bfs --input '{"A": ["B"], "B": ["C"]}' --start "A"。出力は["A", "B", "C"]です。API では:

    graph = {"A": ["B"], "B": ["C"]}
    traversal = openclaw.algorithms.bfs(graph, "A")
    print(traversal)  # ['A', 'B', 'C']
    

    AI の応答での経路探索に使用します。

グラフの関係

  • 関連クラスター:computer-science(アルゴリズム関連トピックの親クラスター)。
  • 関連スキル:data-structures(配列/グラフの実装用)、machine-learning(最適化での A* 用)。
  • タグの関連性:「algorithms」は最適化スキルに関連します。「sorting」と「searching」は効率性を重視したツールにつながり、「complexity」はパフォーマンス分析スキルに関連します。

コメント