Loader
← بازگشت به صفحه اصلی

💻 راهنمای استفاده از API الگوریتم‌های فراابتکاری

نمونه‌های کامل و جامع برای استفاده از API الگوریتم‌های بهینه‌سازی
با توضیحات کامل و مثال‌های عملی

🚀 شروع کار با API

مرحله 1: دریافت API Token

قبل از استفاده از API، باید یک API Token از پنل کاربری دریافت کنید:

  1. به پنل API بروید
  2. یک توکن جدید ایجاد کنید
  3. توکن را کپی و در جای امن نگهداری کنید
  4. این توکن را در تمام درخواست‌های API استفاده کنید

⚠️ نکات امنیتی

  • توکن API خود را در اختیار دیگران قرار ندهید
  • برای استفاده در موبایل یا وب، تایید شماره موبایل الزامی است
  • هر درخواست بر اساس اندازه مسئله و تعداد تکرار، توکن مصرف می‌کند

مرحله 2: شارژ حساب

برای استفاده از API نیاز به توکن (اعتبار) دارید. برای شارژ حساب:

  1. به صفحه شارژ حساب بروید
  2. مقدار دلخواه را شارژ کنید
  3. پس از شارژ، می‌توانید از API استفاده کنید

🎯 سفارشی‌سازی داده‌های واقعی

برای سفارشی‌سازی داده/مسئله، کلید API را تهیه کنید و طبق مستندات از لوکال به سرورهای WebYar Tools متصل شوید — آنالیز روی سرورها انجام و خروجی در لوکال شما نمایش داده می‌شود.

  • ✅ می‌توانید مختصات شهرها/نقاط واقعی خود را ارسال کنید
  • ✅ پردازش روی سرورهای قدرتمند WebYar Tools انجام می‌شود
  • ✅ نتایج بهینه‌سازی در محیط لوکال شما دریافت می‌شود

⚠️ نسخه اولیه - گزارش باگ

به دلیل آن که این بخش نسخه اول بوده، و برای اولین بار دیپلوی شده، در صورت مشاهده باگ از طریق چت آنلاین به اطلاع پشتیبان فنی برسانید.

📞 پشتیبانی آنلاین در دسترس است و آماده کمک به شماست.

💰 سیستم محاسبه توکن

هزینه هر درخواست بر اساس دو پارامتر محاسبه می‌شود:

شرط هزینه
اندازه مسئله تا 100 (راس یا جمعیت) رایگان (0 توکن)
اندازه مسئله بیشتر از 100 30 توکن به ازای هر 100 واحد اضافی
تعداد تکرار تا 500 رایگان (0 توکن)
تعداد تکرار بیشتر از 500 30 توکن به ازای هر 100 تکرار اضافی

مثال‌های محاسبه توکن

مثال 1: درخواست ساده (رایگان)

ورودی: problemSize = 50, maxIterations = 300
محاسبه اندازه مسئله: 50 < 100 → 0 توکن
محاسبه تکرار: 300 < 500 → 0 توکن
💚 هزینه کل: 0 توکن (رایگان)

مثال 2: درخواست متوسط

ورودی: problemSize = 250, maxIterations = 400
محاسبه اندازه مسئله: (250-100)/100 = 1.5 → سقف = 2 → 2 × 30 = 60 توکن
محاسبه تکرار: 400 < 500 → 0 توکن
💛 هزینه کل: 60 توکن

مثال 3: درخواست پیشرفته

ورودی: problemSize = 350, maxIterations = 800
محاسبه اندازه مسئله: (350-100)/100 = 2.5 → سقف = 3 → 3 × 30 = 90 توکن
محاسبه تکرار: (800-500)/100 = 3 → 3 × 30 = 90 توکن
🔴 هزینه کل: 180 توکن

🔧 API اجرای تک الگوریتم

POST https://webyartools.com/Api/Metaheuristic/RunAlgorithm

پارامترهای ورودی

توضیحات نوع پارامتر
توکن API دریافت شده از پنل string apiToken
نوع الگوریتم: ga, pso, aco, abc, sa, tabu, hillclimbing, firefly, cuckoo, bat string algorithmType
اندازه مسئله (برای بهینه‌سازی عددی) int problemSize
تعداد تکرارهای الگوریتم int maxIterations
نوع مسئله: "tsp" یا "optimization" string problemType
لیست شهرها (فقط برای TSP) array cities

مثال 1: بهینه‌سازی عددی با الگوریتم ژنتیک

POST https://webyartools.com/Api/Metaheuristic/RunAlgorithm
Content-Type: application/json

{
  "apiToken": "YOUR_API_TOKEN_HERE",
  "algorithmType": "ga",
  "problemSize": 100,
  "maxIterations": 100,
  "problemType": "optimization"
}

پاسخ موفق

{
  "success": true,
  "algorithm": "ga",
  "executionTime": 1234,
  "tokensDeducted": 0,
  "remainingTokens": 500,
  "result": {
    "bestSolution": [...],
    "bestFitness": 0.00123,
    "iterations": [...]
  }
}

مثال 2: حل مسئله فروشنده دوره‌گرد (TSP)

POST https://webyartools.com/Api/Metaheuristic/RunAlgorithm
Content-Type: application/json

{
  "apiToken": "YOUR_API_TOKEN_HERE",
  "algorithmType": "pso",
  "maxIterations": 200,
  "problemType": "tsp",
  "cities": [
    { "x": 10, "y": 20, "name": "شهر 1" },
    { "x": 30, "y": 40, "name": "شهر 2" },
    { "x": 50, "y": 60, "name": "شهر 3" },
    { "x": 70, "y": 80, "name": "شهر 4" }
  ]
}

پاسخ موفق TSP

{
  "success": true,
  "algorithm": "pso",
  "executionTime": 856,
  "tokensDeducted": 0,
  "remainingTokens": 500,
  "userTokens": 500,
  "result": {
    "bestSolution": {
      "route": [0, 2, 3, 1]
    },
    "bestDistance": 113.14,
    "totalIterations": 200
  }
}

⚠️ نکته مهم درباره TSP:

route فقط ترتیب بازدید شهرها را نشان می‌دهد (بدون برگشت به شهر اول).
bestDistance شامل مسافت برگشت به شهر اول است.
برای نمایش کامل: شهر 1 → شهر 3 → شهر 4 → شهر 2 → شهر 1 (برگشت)

نمونه کد Python

import requests
import json

url = "https://webyartools.com/Api/Metaheuristic/RunAlgorithm"

payload = {
    "apiToken": "YOUR_API_TOKEN_HERE",
    "algorithmType": "ga",
    "problemSize": 150,
    "maxIterations": 300,
    "problemType": "optimization"
}

headers = {
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
result = response.json()

if result["success"]:
    print(f"✅ الگوریتم با موفقیت اجرا شد")
    print(f"⏱️ زمان اجرا: {result['executionTime']} میلی‌ثانیه")
    print(f"💰 توکن کسر شده: {result['tokensDeducted']}")
    print(f"💳 توکن باقیمانده: {result['remainingTokens']}")
    print(f"📊 بهترین جواب: {result['result']['bestFitness']}")
else:
    print(f"❌ خطا: {result['message']}")

نمونه کد JavaScript (Node.js)

const axios = require('axios');

const url = 'https://webyartools.com/Api/Metaheuristic/RunAlgorithm';

const payload = {
    apiToken: 'YOUR_API_TOKEN_HERE',
    algorithmType: 'pso',
    problemSize: 200,
    maxIterations: 500,
                    problemType: 'optimization'
};

axios.post(url, payload, {
    headers: { 'Content-Type': 'application/json' }
})
.then(response => {
    const result = response.data;
    if (result.success) {
        console.log('✅ الگوریتم با موفقیت اجرا شد');
        console.log(`⏱️ زمان اجرا: ${result.executionTime} میلی‌ثانیه`);
        console.log(`💰 توکن کسر شده: ${result.tokensDeducted}`);
        console.log(`💳 توکن باقیمانده: ${result.remainingTokens}`);
    } else {
        console.log(`❌ خطا: ${result.message}`);
    }
})
.catch(error => {
    console.error('خطا در ارتباط با سرور:', error.message);
});

نمونه کد C#

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

var client = new HttpClient();
var url = "https://webyartools.com/Api/Metaheuristic/RunAlgorithm";

var payload = new
{
    apiToken = "YOUR_API_TOKEN_HERE",
    algorithmType = "ga",
    problemSize = 100,
    maxIterations = 150,
    problemType = "optimization"
};

var json = JsonConvert.SerializeObject(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");

var response = await client.PostAsync(url, content);
var responseBody = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<dynamic>(responseBody);

if (result.success)
{
    Console.WriteLine("✅ الگوریتم با موفقیت اجرا شد");
    Console.WriteLine($"⏱️ زمان اجرا: {result.executionTime} میلی‌ثانیه");
    Console.WriteLine($"💰 توکن کسر شده: {result.tokensDeducted}");
    Console.WriteLine($"💳 توکن باقیمانده: {result.remainingTokens}");
}
else
{
    Console.WriteLine($"❌ خطا: {result.message}");
}

🔬 API اجرای و مقایسه همه الگوریتم‌ها

POST https://webyartools.com/Api/Metaheuristic/RunAllAlgorithms

ℹ️ توجه

این API تمام الگوریتم‌ها را به صورت همزمان اجرا و نتایج را مقایسه می‌کند. هزینه توکن فقط یک بار محاسبه می‌شود (نه 10 بار برای 10 الگوریتم).

پارامترهای ورودی

توضیحات نوع پارامتر
توکن API دریافت شده از پنل string apiToken
اندازه مسئله (برای بهینه‌سازی عددی) int problemSize
تعداد تکرارهای الگوریتم int maxIterations
نوع مسئله: "tsp" یا "optimization" string problemType
لیست شهرها (فقط برای TSP) array cities

مثال درخواست

POST https://webyartools.com/Api/Metaheuristic/RunAllAlgorithms
Content-Type: application/json

{
  "apiToken": "YOUR_API_TOKEN_HERE",
  "problemSize": 100,
  "maxIterations": 100,
  "problemType": "optimization"
}

پاسخ موفق

{
  "success": true,
  "tokensDeducted": 0,
  "remainingTokens": 500,
  "results": [
    {
      "algorithm": "ga",
      "executionTime": 1234,
      "result": { ... }
    },
    {
      "algorithm": "pso",
      "executionTime": 987,
      "result": { ... }
    },
    ...
  ]
}

نمونه کد Python برای مقایسه الگوریتم‌ها

import requests
import pandas as pd

url = "https://webyartools.com/Api/Metaheuristic/RunAllAlgorithms"

payload = {
    "apiToken": "YOUR_API_TOKEN_HERE",
    "problemSize": 100,
    "maxIterations": 100,
    "problemType": "optimization"
}

response = requests.post(url, json=payload)
result = response.json()

if result["success"]:
    print(f"✅ همه الگوریتم‌ها با موفقیت اجرا شدند")
    print(f"💰 توکن کسر شده: {result['tokensDeducted']}")
    print(f"💳 توکن باقیمانده: {result['remainingTokens']}")
    print("\n📊 نتایج مقایسه:")
    
    # ایجاد DataFrame برای نمایش بهتر
    data = []
    for algo_result in result["results"]:
        data.append({
            "الگوریتم": algo_result["algorithm"],
            "زمان اجرا (ms)": algo_result["executionTime"],
            "بهترین مقدار": algo_result["result"]["bestFitness"]
        })
    
    df = pd.DataFrame(data)
    df = df.sort_values("بهترین مقدار")
    print(df.to_string(index=False))
    
    print(f"\n🏆 بهترین الگوریتم: {df.iloc[0]['الگوریتم']}")
else:
    print(f"❌ خطا: {result['message']}")

⚠️ مدیریت خطاها

خطاهای رایج

🔑 توکن API نامعتبر

{
  "success": false,
  "message": "API Token نامعتبر است",
  "requireApiToken": true
}

راه حل: توکن API خود را از پنل بررسی کنید و مطمئن شوید که فعال است.

💰 کمبود توکن (اعتبار)

{
  "success": false,
  "message": "توکن کافی ندارید. توکن مورد نیاز: 60، توکن شما: 20",
  "requireTokens": true,
  "requiredTokens": 60,
  "userTokens": 20
}

راه حل: به صفحه شارژ بروید و حساب خود را شارژ کنید.

📱 عدم تایید شماره موبایل

{
  "success": false,
  "message": "شماره موبایل کاربر تایید نشده است"
}

راه حل: ابتدا شماره موبایل خود را در پنل کاربری تایید کنید.

🚫 الگوریتم نامعتبر

{
  "success": false,
  "message": "الگوریتم نامعتبر است"
}

راه حل: از یکی از الگوریتم‌های معتبر استفاده کنید: ga, pso, aco, abc, sa, tabu, hillclimbing, firefly, cuckoo (فقط TSP), bat

💡 نکات مهم و بهینه‌سازی

✅ بهترین روش‌ها (Best Practices)

  • برای کاهش هزینه، از اندازه مسئله و تعداد تکرار پایین شروع کنید
  • قبل از اجرا، هزینه توکن را با فرمول محاسبه کنید
  • برای TSP، الگوریتم Cuckoo Search در دسترس است
  • برای بهینه‌سازی عددی، Cuckoo Search ناپایدار است و استفاده نشود
  • API Token خود را ایمن نگهداری و در environment variables ذخیره کنید

📈 محدودیت‌های امنیتی

  • تک الگوریتم: حداکثر 1000 تکرار و 2000 اندازه مسئله (راس یا جمعیت)
  • مقایسه الگوریتم‌ها: حداکثر 50 تکرار و 20 اندازه مسئله
  • TSP: حداکثر 2000 راس برای مسئله فروشنده دوره‌گرد
  • این محدودیت‌ها برای جلوگیری از فشار زیاد به سرور و crash هستند

چه زمانی از کدام API استفاده کنیم؟

استفاده کنید API
وقتی می‌خواهید یک الگوریتم خاص را با پارامترهای دقیق تست کنید RunAlgorithm
وقتی می‌خواهید بهترین الگوریتم را برای مسئله خود پیدا کنید RunAllAlgorithms
وقتی می‌خواهید عملکرد الگوریتم‌ها را با هم مقایسه کنید RunAllAlgorithms
وقتی می‌خواهید با تعداد تکرار یا اندازه بالا کار کنید RunAlgorithm

🔗 لینک‌های مفید

🎉 آماده شروع هستید!

اکنون می‌توانید از API الگوریتم‌های فراابتکاری در پروژه‌های خود استفاده کنید

دریافت API Token →