الگوریتم های هوش جمعی

الگوریتم های هوش جمعی

جزوات الگوریتم های هوش جمعی

1a-دانلود جزوه فارسی الگوریتم هوش جمعی با مثال کاربردی فایل pdf

1b- دانلود جزوه فارسی الگوریتم هوش جمعی فایل pdf

2- دانلود جزوه انگلیسی الگوریتم مورچه و هوش جمعی ذرات فایل pdf

3- دانلود جزوه انگلیسی مفاهیم پایه الگوریتم های هوش جمعی دی کارو فایل pdf

4- دانلود جزوه اسلايد انگليسي Ant , Pso با فرمت pdf

5- دانلود جزوه مروري Swarm Intelligence مربوط به Ant , PSO , Bee Colony فایل pdf

6- دانلود جزوه فارسی رقابت استعماری فایل pdf

7- دانلود مقاله فارسی رقابت استعماری جهت تعیین سهام بازار (کاربرد در هوش تجاری) فایل pdf

هوش جمعی  (Swarm Intelligence)

رفتار جمعی از سیستم های غیر متمرکز ، خود سازمان یافته ، طبیعی یا مصنوعی است. این مفهوم در کار روی هوش مصنوعی به کار رفته است. این اصطلاح توسط Gerardo Beni و Jing Wang در سال 1989 و در متن سیستم های رباتیک سلولی مطرح شد.

به رفتارهای گروهی و هوش جمعی یک مجموعه از موجودات می‌پردازد

روباتیک گروهی، کاربردی از اصول هوش مصنوعی گروهی در شمار زیادی از روبات‌های ارزان قیمت است.

مقدمه

فرض کنید شما و گروهی از دوستانتان به دنبال گنج می‌گردید. هر یک از اعضای گروه یک فلزیاب و یک بی‌سیم دارد که می‌تواند مکان و وضعیت کار خود را به همسایگان نزدیک خود اطلاع بدهد؛ بنابراین شما می‌دانید آیا همسایگانتان از شما به گنج نزدیکترند یا نه؟ پس اگر همسایه‌ای به گنج نزدیکتر بود شما می‌توانید به طرف او حرکت کنید. با چنین کاری شانس شما برای رسیدن به گنج بیشتر می‌شود و همچنین گنج زودتر از زمانی که شما تنها باشید، پیدا می‌شود.

این یک نمونه ساده از رفتار جمعی و گروهی یا Swarm behavior است که افراد برای رسیدن به یک هدف نهایی همکاری می‌کنند. این روش کاراتر از زمانی است که افراد جداگانه کنش کنند. Swarm را می‌توان به صورت مجموعه‌ای سازمان یافته از گماشته (agent)ها یا موجوداتی تعریف کرد که با یکدیگر همکاری می‌کنند. در کاربردهای محاسباتی هوش ازدحامی و گروهی (Swarm Intelligence) از موجودات یا گماشته‌هایی مانند مورچه‌ها، زنبورها، موریانه‌ها، ماهی‌ها، پرندگان، یا حتی چکه‌های آب در رودخانه الگو برداری می‌شود. در این نوع اجتماعات هر یک از موجودات یا گماشته‌ها ساختار نستباً ساده‌ای دارند ولی رفتار گروهی آن‌ها پیچیده به نظر می‌رسد. برای نمونه، در کولونی مورچه‌ها، هر یک از مورچه‌ها یک کار سادهٔ ویژه‌ای را انجام می‌دهد ولی به‌طور گروهی، کردار و رفتار مورچه‌ها؛ ساختن لانه، نگهبانی از ملکه و نوزادان، پاکداری لانه، یافتن بهترین منابع خوراکی و بهینه‌سازی راهبرد جنگی را تضمین می‌کند. رفتار کلی یک Swarm به گونهٔ غیر خطی از هم‌آمیختگی رفتارهای تک تک اجتماع بدست می‌آید. یا به زبانی دیگر، یک رابطهٔ بسیار پیچیده میان رفتار گروهی و رفتار فردی یک اجتماع وجود دارد. رفتار گروهی، تنها وابسته به رفتار فردی گماشته‌ها و افراد اجتماع نیست بلکه به چگونگی همکنشی (interaction) و تعامل میان افراد نیز وابسته است. همکنشی بین افراد، تجربهٔ افراد دربارهٔ پیرامون (environment) را افزایش می‌دهد و مایه پیشرفت اجتماع می‌شود.[۱] ساختار اجتماعی Swarm بین افراد مجموعه کانال‌های ارتباطی ایجاد می‌کند که طی آن افراد می‌توانند به داد و ستد تجربه‌های شخصی بپردازند. مدل‌سازی محاسباتی Swarmها کاربردهای امیدبخش و بسیاری را به ویژه در زمینه بهینه‌سازی (optimization) در پی داشته‌است. الگوریتم‌های فزاینده‌ای از بررسی Swarmهای گوناگون پیشنهاد شده‌اند. از این رده، می‌توان به کولونی مورچه‌ها (Ant Colony) و دستهٔ پرندگان (Bird Flocks) اشاره نمود. با اینکه دانش Swarm intelligence، دانشی نو می‌باشد؛ هم‌اکنون، کاربردهای رو به گسترشی از آن شناخته شده‌است. با این رشد روزافزون، Swarm intelligence می‌تواند نقش ارزنده‌ای را در دانش‌های گوناگون بر دوش بگیرد.[۲]

انواع الگوریتم‌های هوش جمعی

الگوریتم مورچه‌ها

روش بهینه‌سازی گروه مورچه‌ها(Ant Colony Optimization)یکی از زیر شاخه‌های هوش گروهی است که در آن از رفتار مورچه‌های واقعی برای یافتن کوناه‌ترین گذرگاه میان لانه و چشمه خوراکی (food source) الگوبرداری شده‌است. هر مورچه برای یافتن خوراک در گرداگرد لانه به گونه تصادفی حرکت و در طی راه با بهره‌گیری از ماده شیمیایی به نام فرومن، از خود ردی بر جای می‌گذارد. هر چه شمار مورچه‌های گذر کرده از یک گذرگاه بیشتر باشد، میزان فرومن انباشته روی آن گذرگاه نیز افزایش می‌یابد. مورچه‌های دیگر نیز برای گزینش گذرگاه، به میزان فرومن آن می‌نگرند و به احتمال زیاد گذرگاهی را که دارای بیشترین فرومن است برمی‌گزینند. به این شیوه، حلقه بازخور مثبت پدید می‌آید. گذرگاه هرچه کوتاه‌تر باشد، زمان رفت و برگشت کاهش و مورچه بیشتری در یک زمان مشخص از آن می‌گذرد. از این رو، انباشت فرومن آن افزایش می‌یابد. شایان یادآوری است که گزینش گذرگاه دارای بیشترین فرومن، قطعی نیست و احتمالی است. به همین سبب، امکان یافتن بهترین گشایش (solution) وجود دارد. روش ACO، نوعی فرااکتشافی است که برای یافتن گشایش‌های تقریبی برای مسائل بهینه‌سازی آمیختاری (Combinatiorial Optimization) سودمند است. روش ACO، مورچه‌های ساختگی به‌وسیلهٔ حرکت بر روی گرافِ مسئله و با وانهادن (deposit) نشانه‌هایی بر روی گراف، همچون مورچه‌های واقعی که در گذرگاه خود نشانه‌های به جا می‌گذارند، سبب می‌شوند که مورچه‌های ساختگی بعدی بتوانند گشایش‌های بهتری را برای مسئله فراهم نمایند.

بهینه‌سازی ازدحام ذرات (Particle Swarm Optimization)

روش بهینه‌سازی ازدحام ذرات (Particle swarm optimization) یک الگوریتم جستجوی اجتماعی است که از روی رفتار اجتماعی دسته‌های پرندگان مدل شده‌است. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آن‌ها و تغییر شکل بهینهٔ دسته به کار گرفته شد. در PSO, particleها در فضای جستجو جاری می‌شوند. تغییر مکان particleها در فضای جستجو تحت تأثیر تجربه و دانایی خودشان و همسایگانشان است؛ بنابراین موقعیت دیگر particleهای Swarm روی چگونگی جستجوی یک particle اثر می‌گذارد. نتیجهٔ مدل‌سازی این رفتار اجتماعی فرایند جستجویی است که particleها به سمت نواحی موفق میل می‌کنند. Particleها در Swarm از یکدیگر می‌آموزند و بر مبنای دانایی بدست آمده به سمت بهترین همسایگان خود می‌روند. Particle swarm Optimization Algorithm اساس کار PSO بر این اصل استوار است که در هر لحظه هر particle مکان خود را در فضای جستجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفته‌است و بهترین مکانی که در کل همسایگی‌اش وجود دارد، تنظیم می‌کند. فرض کنید می‌خواهیم زوج مرتب [x,y] را طوری بدست آوریم که تابع F(x,y)=x2+y۲، مینیمم شود. ابتدا نقاطی را به صورت تصادفی در فضای جستجو، روی صفحهٔ x-y انتخاب می‌کنیم. فرض کنید این Swarm را به ۳ همسایگی تقسیم کنیم که در هر همسایگی نقاط موجود با یکدیگر تعامل دارند. در هر همسایگی هر یک از نقاط به سمت بهترین نقطه در آن همسایگی و بهترین مکانی که آن نقطه تاکنون در آن قرار داشته‌است، حرکت می‌کند. برای حل یک مسئله چند متغیر بهینه‌سازی می‌توان از چند Swarm استفاده کرد که هر یک از Swarmها کار مخصوصی را انجام می‌دهند. این همان ایده‌ای است که Ant colony از آن ریشه می‌گیرد. روش PSO یک الگوریتم روش جستجوی سراسری (global search algorithm) است که با بهری‌گیری از آن می‌توان با مسائلی که پاسخ آن‌ها یک نقطه یا سطح در فضای n بعدی می‌باشد، برخورد نمود. در اینچنین فضایی، فرضیاتی مطرح می‌شود و یک سرعت ابتدایی به آن‌ها اختصاص داده می‌شود، همچنین کانال‌های ارتباطی بین ذرات در نظر گرفته می‌شود. سپس این ذرات در فضای پاسخ حرکت می‌کنند، و نتایج حاصله بر مبنای یک «ملاک شایستگی» پس از هر بازهٔ زمانی محاسبه می‌شود. با گذشت زمان، ذره‌ها به سمت ذره‌هایی که دارای سنجه شایستگی بالاتری هستند و در گروه ارتباطی یکسانی قرار دارند، شتاب می‌گیرند. مزیت اصلی این روش بر راهبردهای بهینهسازی دیگر، این است که شمار فراوان ذرات ازدحام کننده، سبب نرمش پذیری و انعطاف روش در برابر مشکل پاسخ بهینه محلی (local optimum) می‌گردد.

یک مثال کاربردی از الگوریتم بهینه سازی ازدحام ذرات (PSO) در زبان پایتون برای تابع معروف rastrigin :

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# Define the Rastrigin function
def rastrigin(x):
n = len(x)
return 10*n + sum([xi**2 – 10*np.cos(2*np.pi*xi) for xi in x])

# Define the PSO algorithm
def pso(cost_func, dim=2, num_particles=30, max_iter=100, w=0.5, c1=1, c2=2):
# Initialize particles and velocities
particles = np.random.uniform(-5.12, 5.12, (num_particles, dim))
velocities = np.zeros((num_particles, dim))

# Initialize the best positions and fitness values
best_positions = np.copy(particles)
best_fitness = np.array([cost_func(p) for p in particles])
swarm_best_position = best_positions[np.argmin(best_fitness)]
swarm_best_fitness = np.min(best_fitness)

# Iterate through the specified number of iterations, updating the velocity and position of each particle at each iteration
for i in range(max_iter):
# Update velocities
r1 = np.random.uniform(0, 1, (num_particles, dim))
r2 = np.random.uniform(0, 1, (num_particles, dim))
velocities = w * velocities + c1 * r1 * (best_positions – particles) + c2 * r2 * (swarm_best_position – particles)

# Update positions
particles += velocities

# Evaluate fitness of each particle
fitness_values = np.array([cost_func(p) for p in particles])

# Update best positions and fitness values
improved_indices = np.where(fitness_values < best_fitness)
best_positions[improved_indices] = particles[improved_indices]
best_fitness[improved_indices] = fitness_values[improved_indices]
if np.min(fitness_values) < swarm_best_fitness:
swarm_best_position = particles[np.argmin(fitness_values)]
swarm_best_fitness = np.min(fitness_values)

# Return the best solution found by the PSO algorithm
return swarm_best_position, swarm_best_fitness

# Define the dimensions of the problem
dim = 2

# Run the PSO algorithm on the Rastrigin function
solution, fitness = pso(rastrigin, dim=dim)

# Print the solution and fitness value
print(‘Solution:’, solution)
print(‘Fitness:’, fitness)

# Create a meshgrid for visualization
x = np.linspace(-5.12, 5.12, 100)
y = np.linspace(-5.12, 5.12, 100)
X, Y = np.meshgrid(x, y)
Z = rastrigin([X, Y])

# Create a 3D plot of the Rastrigin function
fig = plt.figure()
ax = fig.add_subplot(111, projection=’3d’)
ax.plot_surface(X, Y, Z, cmap=’viridis’)
ax.set_xlabel(‘x’)
ax.set_ylabel(‘y’)
ax.set_zlabel(‘z’)

# Plot the solution found by the PSO algorithm
ax.scatter(solution[0], solution[1], fitness, color=’red’)
plt.show()

سامانه ایمنی ساختگی

این روش (به انگلیسی: Artificial Immune System) از سامانه ایمنی پرهامی (طبیعی) برگرفته شده و با مدل کردن برخی یاخته‌های این سامانه می‌کوشد تا از اینگونه سامانه‌ها در راستای بهینه‌سازی یا یادگیری دستگاه (Machine Learning) بهره بگیرد.

الگوریتم‌های بر پایه زنبور

چندین الگوریتم در زمینه الگوبرداری از رفتار گروهی زنبورها در کندو یا بیرون آن به ویژه رفتار آن‌ها در خوراکجویی (foraging) برای بهینه‌سازی پیوسته (continuous optimization) پیشنهاد شده‌اند.

الگوریتم چکه آب‌های هوشمند

الگوریتم چکه آبهای هوشمند بر پایه بررسی رفتار گروهی چکه‌های آب در رودخانه‌ها برای بهینه‌سازی پیشنهاد شده‌است. این الگوریتم با گسیل کردن چکه‌های هوشمند آب بر روی گراف مسئله (پرسمان)، می‌کوشد راه‌های بهینه تر را برای گذر چکه‌های یاد شده هموارتر گرداند.

کاربردها

گیرایی هوش گروهی در فناوری اطلاعات

همگونی‌هایی بین مسائل متفاوت در حوزهٔ فناوری اطلاعات و رفتارهای حشرات اجتماعی وجود دارد:

  • سامانه‌ای توزیع شده از کنشگرهای مستقل و تعامل کننده.
  • اهداف: بهینه‌سازی کارایی و توان.
  • خود تنظیم بودن در روش‌های کنترل و همکاری به شکل نامتمرکز.
  • توزیع کار و اختصاص وظایف به شکل توزیع شده.
  • تعاملات غیر مستقیم.

گامهای طراحی یک سامانه

گام‌های طراحی یک سامانه با کاربردهای فناوری اطلاعات بر پایه هوش مصنوعی گروهی فرایندی در سه گام است:

  • شناسایی همسانی‌ها: در سامانه‌های IT و طبیعت.
  • فهم: مدلسازی رایانه‌ای روش گروهی طبیعی به شکل واقع‌گرا.
  • مهندسی: ساده‌سازی مدل و تنظیم آن برای کاربردهای IT.

کاربردهای کنونی و آینده

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]
نوشته های مرتبط
یک پاسخ بنویسید

نشانی ایمیل شما منتشر نخواهد شد.فیلد های مورد نیاز علامت گذاری شده اند *