💻 راهنمای استفاده از 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 →









