values of other variables
۱٫۲٫۱٫ append i to free agents list else append i
to leaders list;
مرحله ۵: ار آنجایی که این روش برای آن دسته از مسائلی طراحی شده است که شامل محدودیتهای Alldiff هستند، و عاملهای همسایه در این نوع مسائل نمی توانند مقادیر یکسانی را برای انتساب به متغیرشان انتخاب کنند، در مرحله ۱ مقدار دهی اولیه به صورت مقادیر غیرهمسان برای عاملهای همسایه انجام شد. در این مرحله عاملهای رهبر سعی می کنند با تعویض مقادیر انتسابی اشان با یکدیگر به افزایش امتیاز خود و اجتماعشان کمک کنند. هر رهبر این کار را بر اساس تابع اکتشافی کمترین برخورد انجام میدهد یعنی این مقدار جدید کمترین میزان نقض محدودیت را برای آن عامل ایجاد کند. هر عامل رهبر مقدار انتخابی عاملهای رهبر دیگر را برای انجام یک تعویض انتساب مناسب و افزایش امتیاز چک می کند. در صورتی یک تعویض مقدار صورت میگیرد که امتیاز هر دو یا حداقل یکی از دو عامل به صفر برسد. اگر این تعویض صورت گرفت عاملهایی که مقدار امتیازشان به صفر رسیده برچسبشان را از رهبر به عامل آزاد تغییر می دهند و این تغییر را با ثبت در CSCBOARD به اطلاع دیگر عاملها میرسانند. به محض مطلع شدن، بقیه عاملهای اجتماع نیز امتیازشان را به روز رسانی می کنند و در نهایت آن اجتماع نیز از بین میرود. در نهایت رهبر هر اجتماع عاملهایی که امتیازشان به صفر میرسد را از لیست اجتماعش حذف می کند. این روند جستجو برای یافتن عامل رهبری که بتوان با آن تعویض مقدار انجام داد ادامه مییابد تا زمانیکه دیگر هیچ تعویضی ممکن نباشد.
Algorithm 2: Assignment Exchange Operation
Input: agent assignments, leaders list, free agents list,
constraint graph and scores list
Output: Updated scores list, constraint graph, leaders
and free agents list
-
- for i=1 to Number Of Leader do
۱٫۱٫ for j=i to Number Of Leader do
۱٫۱٫۱٫ Temporary Exchange agent Assignment in
place of Leader(i) and Leader(j) in agent
assignment list;
۱٫۱٫۲٫ Computation score 0f Leader(i) and leader(j)
۱٫۱٫۳٫ if both Scores were zero
۱٫۱٫۳٫۱٫ Update Agent Assignments, Leaders
and FreeAgents and scores list
۱٫۱٫۳٫۲٫ Release CSComunity Members of Leader(i)
and Leader(j);
مرحله ۶: زمانیکه هیچ تعویض دیگری بین رهبر اجتماعات ممکن نبود و امتیاز تمام عاملها نیز هنوز به صفر نرسیده بود رهبر هر اجتماع سعی می کند تعویض مقدار را با یک عامل آزاد انجام دهد. عامل آزاد در صورتی به درخواست تعویض یک رهبر پاسخ مثبت خواهد داد که این تعویض تأثیر منفی در امتیاز خودش نداشته باشد.
مرحله ۷: اگر مرحله ۶ نیز پایان یافت اما هنوز الگوریتم خاتمه نیافته بود، عاملهای آزاد با تعویض انتساب بین خودشان به کمک عاملهای درگیر میآیند.
Algorithm 3: Help by Free Agents
Input: Number of Active Free Agents, AFAgent:=Active
Free Agents; And Agent assignment
Output: Active free agent and updated agent assignment;
-
- for i=1 to Number of Active Free Agents do
۱٫۱٫ for j=i+1 to Number of Active Free Agents do
Temporary Exchange agent Assignment in place of AFAgent(i) and AFAgent(j) in agent assignments list.
Computation score 0f AFAgent(i) and AFAgent(j).
if both Scores were zero
Exchange Agent Assignment in place of AFAgent(i) and AFAgent(j) in agent assignment list.
Remove AFAgent(i) form active free agents.
break ,if Exchange done Successfully.
مرحله ۸: در نهایت اگر هیچ تعویض انتساب موفقیت آمیزی از مراحل قبل ممکن نبود، عاملها با چند تعویض تصادفی بین خودشان به جستجو برای یافتن یک راه حل ادامه می دهند.
مرحله ۹: الگوریتم خاتمه مییابد اگر امتیاز تمامی عاملها به صفر برسد.
Algorithm 4: DACA(Distributed Alldiff Constraint Algorithm) for solving DCSPs with Alldiff constraints
Input: agent assignments, leaders list, free agents list,
constraint graph, scores list.