برنامهنویس:
هزینه سفارش:
۲۴۰,۰۰۰ تومان قیمت اصلی: ۲۴۰,۰۰۰ تومان بود.۹۶,۰۰۰ تومانقیمت فعلی: ۹۶,۰۰۰ تومان.
تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.
در این بخش سورس کد الگوریتم مورچه و حل مسئله فروشنده دوره گرد TSP در پایتون قرار گرفته شده است. این سورس کد به زبان پایتون Python برای الگوریتم کلون مورچگان یا همان ACO نوشته شده است. این سورس کد بر اساس ساز و کار الگوریتم مورچه مسئله TSP را حل میکند. برای اینکه بتوانید الگوریتم ACO را واضح و کامل درک کنید مقالهای کامل با عنوان الگوریتم کلونی مورچگان ACO در همین سایت نوشته شده است. در ادامه مختصری از الگوریتم برای درک کد الگوریتم مورچه در پایتون بیان میشود.
الگوریتم بهینه سازی کلونی مورچه Ant Colony Optimization یا به اختصار ACO مورچگان تحت عنوان الگوریتمهای هوش ازدحامی (هوش گروهی) شناخته شده و به مدل سازی رفتار مورچههای واقعی میپردازد. مورچهها حشراتی هستند که میتوانند گروهها (کلونیها) را شکل دهند. چنین رویکرد جمعیت محوری این امکان را برای الگوریتم ACO ایجاد میکند تا به حل مسائل بهینه سازی پویا به طور کاملا کارآمد بپردازد. مورچهها به عنوان مخلوقات خودسازمانده میباشند.
از آنجایی که مورچهها اصلا چشم ندارند، تعاملات آنها از طریق ماده شیمیایی فرومون که از آن برای نشان گذاری مسیر استفاده میشود، انجام میگیرد. هرچه فرومنهای بیشتری در مسیر قرار گیرد مابقی مورچهها از این مسیر بیشتر استفاده میکنند؛ بنابراین، چنین کمیتی نشان میدهد که این مسیر به عنوان یکی از بهینهترین و کوتاهترین راه میباشد. اکنون نگاهی به یک نمونه عینی میاندازیم. هدف پیدا کردن بهترین راه از نقطه آغازی N (آشیانه) به نقطه مقصد F (منبع غذا) میباشد.
ممکن است این حدس زده شودکه احتمال برای مورچهای که مسیر درست را میپیماید برابر با همان احتمالی میباشد که مسیر اشتباه را انتخاب کند. نکته در اینجا اینست که مورچهای که کوتاهترین مسیر را میپیماید، اولین مورچهای است که به نقطه مقصد رسیده و سپس به اشیانه ( نقطه مبدا حرکت) بر میگردد، بنابراین در این کوتاهترین مسیر فرمونهای بیشتری وجود دارد. از این رو فرمون دقیقا همان چیزی است که نشان میدهد که مورچه باید از چه مسیری برود و در پایان کوتاهترین راه، بهترین مسیر میباشد.
مساله فروشنده دوره گرد Travelling salesman problem یا به اختصار TSP مسالهاي است که شرح آن خيلي آسان ميباشد. تعريف آن بدين صورت است که تعداد متناهي شهر با هزينه پيمايش بين هر جفت از آنها داده ميشود و هدف مساله اين است که يک فروشنده دوره گرد تمامي اين شهرها را به گونهاي ملاقات کند که هر يک از اين شهرها را فقط يک بارملاقات کرده و دوباره به شهر آغازين برگردد با اين شرط که با کمترين هزينه پيمايش اين کار را انجام دهد.
به طور کلي هدف پيدا کردن کم هزينه ترين تور براي ملاقات همه شهرها و بازگشت به شهر آغازين حرکت است. مساله فروشنده دوره گرد در شکل ساده و اختصاري با نام TSP شناخته ميشود. شکل زیر يک نمونه جواب از مساله فروشنده دوره گرد که در سال 1591 براي 15 شهر از کشور آمريکا مطرح شد را نشان ميدهد که با روش شاخه وحد حل شد.
در این قسمت الگوریتم مورچه و حل مسئله فروشنده دوره گرد TSP در پایتون آماده شده است این سورس کد شامل 3 فایل میباشد و یک فولدر برای با سه فایل برای مختصات شهرها در نظر گرته شده است که عبارتند از:
import math
from aco import ACO, Graph
from plot import plot
def distance(city1: dict, city2: dict):
return math.sqrt((city1['x'] - city2['x']) ** 2 + (city1['y'] - city2['y']) ** 2)
def main():
cities = []
points = []
with open('./data/chn144.txt') as f:
for line in f.readlines():
city = line.split(' ')
cities.append(dict(index=int(city[0]), x=int(city[1]), y=int(city[2])))
points.append((int(city[1]), int(city[2])))
cost_matrix = []
rank = len(cities)
for i in range(rank):
row = []
for j in range(rank):
row.append(distance(cities[i], cities[j]))
cost_matrix.append(row)
aco = ACO(10, 100, 1.0, 10.0, 0.5, 10, 2)
graph = Graph(cost_matrix, rank)
path, cost = aco.solve(graph)
print('cost: {}, path: {}'.format(cost, path))
plot(points, path)
if __name__ == '__main__':
main()
قبل از اجرای سورس کد الگوریتم در محیط پایتون حتماً از نصب پکیجهای مورد استفاده در این سورس کد در Python خود مطمئن شوید پکیجهای استفاده شده در این سورس کد numpy و matplotlib میباشد که اولی پکیج مربوط به استفاده از آرایهها و ماتریسها در پایتون و دومی مربوط به عملیاتهای نموداری و Plot گرفتن میباشد. پیشنهاد ما نصب اسپایدر (Spyder (Python 3.7 میباشد که هم پایتون و پکیجهای مختلف و هم IDEهای مختلفی را همراه با امکان آپدیتشان نصب میکند.
سورس کد الگوریتم مورچه و حل مسئله فروشنده دوره گرد TSP در پایتون Python عنوان اثری است که در این پست به آن پرداخته شده است. اثر در پایتون و با IDE اسپایدر (Spyder (Python 3.8 نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است و دارای نشان تضمین کیفیت پی استور میباشد. برای دانلود اثر مذکور آن را خریداری کنید.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
| نام اثر: | الگوریتم مورچه و حل مسئله فروشنده دوره گرد TSP در پایتون |
| نوع اثر: | سورس کد |
| برنامهنویس: | تیم برنامهنویسی پیاستور |
| زبان برنامه نویسی: | پایتون Python |
| ویژگی: | قابل دانلود و ویرایش |
هزینه سفارش:
۲۴۰,۰۰۰ تومان قیمت اصلی: ۲۴۰,۰۰۰ تومان بود.۹۶,۰۰۰ تومانقیمت فعلی: ۹۶,۰۰۰ تومان.
دیدگاهها و نظرات
mehdi.farzamiani
عالی بود واقعا مرسی
سارا
سلام. من اینو بخرم عین ویدیو اجرا میشه؟
فاطمه اسماعیلی
سلام دوست عزیز.
بله میتونید به راحتی سورس کد رو با نرم افزار اسپایدر اجرا کنید.
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.