💻 راهنمای استفاده از API الگوریتمهای فراابتکاری
                نمونههای کامل و جامع برای استفاده از API الگوریتمهای بهینهسازی
                با توضیحات کامل و مثالهای عملی
            
🚀 شروع کار با API
مرحله 1: دریافت API Token
قبل از استفاده از API، باید یک API Token از پنل کاربری دریافت کنید:
- به پنل API بروید
- یک توکن جدید ایجاد کنید
- توکن را کپی و در جای امن نگهداری کنید
- این توکن را در تمام درخواستهای API استفاده کنید
⚠️ نکات امنیتی
- توکن API خود را در اختیار دیگران قرار ندهید
- برای استفاده در موبایل یا وب، تایید شماره موبایل الزامی است
- هر درخواست بر اساس اندازه مسئله و تعداد تکرار، توکن مصرف میکند
مرحله 2: شارژ حساب
برای استفاده از API نیاز به توکن (اعتبار) دارید. برای شارژ حساب:
- به صفحه شارژ حساب بروید
- مقدار دلخواه را شارژ کنید
- پس از شارژ، میتوانید از API استفاده کنید
🎯 سفارشیسازی دادههای واقعی
برای سفارشیسازی داده/مسئله، کلید API را تهیه کنید و طبق مستندات از لوکال به سرورهای WebYar Tools متصل شوید — آنالیز روی سرورها انجام و خروجی در لوکال شما نمایش داده میشود.
- ✅ میتوانید مختصات شهرها/نقاط واقعی خود را ارسال کنید
- ✅ پردازش روی سرورهای قدرتمند WebYar Tools انجام میشود
- ✅ نتایج بهینهسازی در محیط لوکال شما دریافت میشود
⚠️ نسخه اولیه - گزارش باگ
به دلیل آن که این بخش نسخه اول بوده، و برای اولین بار دیپلوی شده، در صورت مشاهده باگ از طریق چت آنلاین به اطلاع پشتیبان فنی برسانید.
📞 پشتیبانی آنلاین در دسترس است و آماده کمک به شماست.
💰 سیستم محاسبه توکن
هزینه هر درخواست بر اساس دو پارامتر محاسبه میشود:
| شرط | هزینه | 
|---|---|
| اندازه مسئله تا 100 (راس یا جمعیت) | رایگان (0 توکن) | 
| اندازه مسئله بیشتر از 100 | 30 توکن به ازای هر 100 واحد اضافی | 
| تعداد تکرار تا 500 | رایگان (0 توکن) | 
| تعداد تکرار بیشتر از 500 | 30 توکن به ازای هر 100 تکرار اضافی | 
مثالهای محاسبه توکن
مثال 1: درخواست ساده (رایگان)
مثال 2: درخواست متوسط
مثال 3: درخواست پیشرفته
🔧 API اجرای تک الگوریتم
پارامترهای ورودی
| توضیحات | نوع | پارامتر | 
|---|---|---|
| توکن 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 اجرای و مقایسه همه الگوریتمها
ℹ️ توجه
این 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 | 
🔗 لینکهای مفید
- 🖥️ رابط کاربری وب (UI) - برای تست الگوریتمها در مرورگر
- 📚 مستندات کامل الگوریتمها - توضیحات تخصصی هر الگوریتم
- 🔑 پنل مدیریت API Token - ایجاد و مدیریت توکنهای API
- 💳 شارژ حساب - افزایش اعتبار برای استفاده از API
🎉 آماده شروع هستید!
اکنون میتوانید از API الگوریتمهای فراابتکاری در پروژههای خود استفاده کنید
دریافت API Token → 
                                     
                                     
                                     
                                     
                         
                     
                         
                        








