Algorithm design & data structure
6.63K subscribers
942 photos
142 videos
175 files
537 links
این کانال برای تمامی علاقه‌مندان به کامپیوتر، مخصوصاً حوزه ساختمان داده‌ها و الگوریتم‌ها، مفید می باشد. آشنایی با ریاضیات مقدماتی، برنامه‌نویسی مقدماتی و پیشرفته و همچنین شی‌گرایی می‌تواند در درک بهتر مفاهیم این درس کمک‌ کند.

👨‍💻Admin👉 @Se_mohamad
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🔢 فشرده‌سازی داده‌ها با Huffman Coding 🔢

📊فشرده سازی داده ها (Huffman Coding) چیست؟

فشرده سازی داده ها یکی از الگوریتم‌های مشهور فشرده‌سازی داده‌هاست که توسط دیوید هافمن در سال ۱۹۵۲ ابداع شد. این الگوریتم با استفاده از فرکانس وقوع کاراکترها در داده، کدهایی با طول متغیر تولید می‌کند تا داده‌ها را به صورت بهینه فشرده کند.

🔍 چگونه کار می‌کند؟
1. تحلیل فرکانس: ابتدا فرکانس وقوع هر کاراکتر در داده محاسبه می‌شود.
2. ساخت درخت هافمن:
- دو کاراکتری که کمترین فرکانس را دارند انتخاب و با هم ترکیب می‌شوند تا یک گره جدید ایجاد کنند.
- این فرآیند تکرار می‌شود تا زمانی که تنها یک گره باقی بماند که ریشه درخت هافمن است.
3. تخصیص کدها: به هر کاراکتر با پیمایش درخت از ریشه تا برگ‌ها، کدی اختصاص داده می‌شود. مسیر حرکت به سمت چپ معمولاً با 0 و به سمت راست با 1 نشان داده می‌شود.
4. فشرده‌سازی داده‌ها: داده‌ها با جایگزینی هر کاراکتر با کد باینری مربوطه فشرده می‌شوند.


#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4
🌟 پروژه تشخیص لباس‌های لری، کردی و ترکمن با استفاده از CNN

👗 هدف پروژه:
تشخیص و دسته‌بندی تصاویر لباس‌های محلی از سه قوم لری، کردی و ترکمن با استفاده از CNN.

🧠 تکنولوژی مورد استفاده:
شبکه‌های عصبی پیچشی (Convolutional Neural Networks - CNN) یکی از پیشرفته‌ترین و قدرتمندترین تکنیک‌ها در زمینه پردازش تصویر و بینایی ماشین است. این شبکه‌ها با بهره‌گیری از لایه‌های مختلف می‌توانند ویژگی‌های پیچیده تصاویر را استخراج کرده و به تشخیص دقیق‌تری دست یابند.

📸 داده‌های مورد استفاده:
برای آموزش این مدل، مجموعه‌ای از تصاویر لباس‌های محلی لری، کردی و ترکمن جمع‌آوری شده است. این تصاویر شامل تنوعات مختلف در طرح‌ها، رنگ‌ها و الگوهای هر قوم است.

🔍 مراحل کار:
1. جمع‌آوری داده‌ها: تهیه تصاویر مختلف از لباس‌های محلی هر قوم.
2. پیش‌پردازش داده‌ها: تنظیم و آماده‌سازی تصاویر برای آموزش مدل.
3. آموزش مدل: استفاده از CNN برای یادگیری ویژگی‌های تصاویر و تشخیص لباس‌های هر قوم.
4. ارزیابی و تست: بررسی عملکرد مدل بر روی مجموعه‌ای از تصاویر جدید و ارزیابی دقت آن.


📊 نتایج:
این پروژه نشان داده است که با استفاده از شبکه‌های عصبی CNN می‌توان با دقت نسبتا بالایی لباس‌های محلی لری، کردی و ترکمن را تشخیص داد. این دستاورد می‌تواند در زمینه‌های مختلفی مانند حفظ فرهنگ و هنر محلی، توسعه برنامه‌های آموزشی و حتی در صنعت مد و طراحی لباس مورد استفاده قرار گیرد.

📱 کاربردها:
- فرهنگی: حفظ و ترویج لباس‌های محلی از طریق تشخیص و دسته‌بندی دقیق.
- آموزشی: استفاده در برنامه‌های آموزشی برای شناخت بهتر فرهنگ‌های مختلف.
- تجاری: توسعه اپلیکیشن‌ها و سرویس‌های جدید در صنعت مد و پوشاک.

🌐 لینک گیت‌هاب:
برای مشاهده جزئیات بیشتر و دسترسی به کدهای پروژه، به لینک زیر مراجعه کنید:

📎GitHub


#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍5🙏1👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
🌟 شروع یادگیری شبکه‌های عصبی: از قلم و کاغذ تا پیاده‌سازی با Numpy! 🌟

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

🔍 چرا؟
مهمترین چیزی که تمام یادگیری ماشین را تحت تأثیر قرار می‌دهد، ریاضیات است. اگر درک عمیقی از ریاضیات پشت عملیات عصبی داشته باشید، جریان داده‌ها را بهتر متوجه می‌شوید و پیاده‌سازی شبکه‌ها برایتان آسان‌تر خواهد شد.

📚 قدم بعدی چیست؟
وقتی اصول عملکرد شبکه‌های عصبی را متوجه شدید، سعی کنید آن‌ها را خودتان با استفاده از Numpy پیاده‌سازی کنید. این کار نه تنها به شما درک بهتری از مفاهیم می‌دهد، بلکه شما را با مهارت‌هایی مجهز می‌کند که بتوانید مدل‌های خودتان را بسازید.

👩‍🎓 تجربه‌های واقعی:
بسیاری از دانش‌آموزانی که تاکنون مدلی را از ابتدا بدون استفاده از PyTorch یا TensorFlow کدنویسی نکرده‌اند، اغلب درک کاملی از تمام اجزای شبکه‌های عصبی ندارند.

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
@AlgorithmDesign_DataStructuer (2).pdf
16.8 MB
🌟 معرفی کتاب: Mathematics for Machine Learning 🌟

اگر به دنبال منبعی کامل و جامع برای یادگیری ریاضیات مورد نیاز در ماشین لرنینگ هستید، کتاب "Mathematics for Machine Learning" گزینه‌ای عالی است!

📘 درباره کتاب:
این کتاب توسط Marc Peter Deisenroth, A. Aldo Faisal, و Cheng Soon Ong نوشته شده و مفاهیم ریاضی پایه‌ای که برای درک و پیاده‌سازی الگوریتم‌های ماشین لرنینگ لازم است را به زبانی ساده و قابل فهم توضیح می‌دهد.

📚 موضوعات پوشش داده شده:

جبر خطی
حساب دیفرانسیل و انتگرال
احتمالات و آمار
بهینه‌سازی

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍2👏1
This media is not supported in your browser
VIEW IN TELEGRAM
الگوریتم Prim :

الگوریتم Prim یکی از الگوریتم‌های مشهور در نظریه گراف‌ها است که برای پیدا کردن حداقل درخت پوشای یک گراف وزن‌دار و متصل به کار می‌رود. حداقل درخت پوشا (MST) زیرمجموعه‌ای از یال‌های گراف است که تمام راس‌ها را پوشش می‌دهد و مجموع وزن یال‌هایش کمینه است.

📝 مراحل الگوریتم Prim:
🎯 شروع از یک راس دلخواه: ابتدا یک راس دلخواه را به عنوان شروع انتخاب می‌کنیم و آن را به مجموعه MST اضافه می‌کنیم.

🔍 یافتن یال با کمترین وزن: در هر مرحله، یال با کمترین وزن که یکی از راس‌هایش در مجموعه MST و دیگری خارج از آن است را پیدا می‌کنیم.

اضافه کردن راس جدید به MST: راس جدید را به مجموعه MST اضافه می‌کنیم.

🔄 تکرار مراحل: این مراحل را تکرار می‌کنیم تا تمامی راس‌های گراف در مجموعه MST قرار بگیرند.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍1
Attention- Is-All-You- Need.pdf
2.1 MB
📄 معرفی مقاله "Attention Is All You Need"
مقاله "Attention Is All You Need" یکی از مهم‌ترین مقالات در حوزه مدل‌های زبانی بزرگ (LLM) و یادگیری عمیق است که توسط Vaswani و همکاران در سال 2017 منتشر شده است. این مقاله معماری جدیدی به نام ترانسفورمر (Transformer) معرفی می‌کند که به‌طور کامل بر مکانیزم توجه (Attention) تکیه دارد و از شبکه‌های بازگشتی (RNN) یا شبکه‌های کانولوشنی (CNN) استفاده نمی‌کند.

📚 چکیده‌ای از مقاله:
ترانسفورمرها با استفاده از مکانیزم توجه چند-رأس (Multi-head Attention) قادر به مدل‌سازی وابستگی‌های طولانی مدت در داده‌ها هستند. این معماری به صورت موازی‌سازی بهتری نسبت به مدل‌های قبلی امکان‌پذیر می‌سازد و باعث شده تا مدل‌های زبانی بسیار بزرگ‌تری مانند GPT و BERT توسعه یابند.

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
This media is not supported in your browser
VIEW IN TELEGRAM
الگوریتم Kruskal یکی از الگوریتم‌های مشهور در نظریه گراف‌ها است که برای پیدا کردن حداقل درخت پوشای یک گراف وزن‌دار و متصل به کار می‌رود. حداقل درخت پوشا (MST) زیرمجموعه‌ای از یال‌های گراف است که تمام راس‌ها را پوشش می‌دهد و مجموع وزن یال‌هایش کمینه است.

📝 مراحل الگوریتم Kruskal:

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

🌳 شروع با راس‌ها: یک مجموعه از راس‌های گراف به عنوان درخت پوشا (MST) با هیچ یالی شروع می‌کنیم.

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

🔄 تکرار مراحل: این مراحل را تا زمانی که تعداد یال‌های درخت پوشا به تعداد راس‌ها منهای یک برسد، تکرار می‌کنیم.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
شبکه‌های عصبی گراف (Graph Neural Networks یا GNNs) یک دسته از شبکه‌های عصبی هستند که به طور خاص برای کار با داده‌های ساختاریافته به شکل گراف طراحی شده‌اند. در شبکه‌های عصبی سنتی، داده‌ها به طور معمول در ساختاری شبکه‌ای مانند (مثلاً تصاویر، دنباله‌ها) نمایش داده می‌شوند. 📊 با این حال، بسیاری از داده‌های دنیای واقعی به طور طبیعی‌تر می‌توانند به صورت گراف‌ها نمایش داده شوند که شامل گره‌ها (رئوس) و یال‌ها (اتصالات بین گره‌ها) هستند. 🔗 GNNها به طور موثری روابط و وابستگی‌های بین گره‌ها در یک گراف را به‌دست می‌آورند، که آنها را برای مجموعه‌ای از کاربردها در زمینه‌هایی مانند تحلیل شبکه‌های اجتماعی، زیست‌شناسی مولکولی 🧬، و سیستم‌های توصیه‌گر مناسب می‌سازد.

مفاهیم کلیدی GNNها


1. ساختار گراف:
- گره‌ها: موجودیت‌ها در گراف (مثلاً کاربران در یک شبکه اجتماعی، اتم‌ها در یک مولکول). 👤
- یال‌ها: اتصالات بین گره‌ها که می‌توانند جهت‌دار یا بدون جهت، وزن‌دار یا بدون وزن باشند (مثلاً دوستی‌ها، پیوندهای شیمیایی). 🔗
- ویژگی‌های گره: ویژگی‌ها یا داده‌های مرتبط با هر گره (مثلاً اطلاعات پروفایل کاربران، خواص اتمی). 📄
- ویژگی‌های یال: ویژگی‌ها یا داده‌های مرتبط با هر یال (مثلاً نوع رابطه، نوع پیوند). 🧩

2. انتقال پیام:
- ایده اصلی در GNNها انتقال پیام است، جایی که هر گره اطلاعات (پیام‌ها) را از همسایگان خود جمع‌آوری می‌کند تا وضعیت خود را به‌روزرسانی کند. 📩
- این فرآیند به طور معمول تکراری است، با چندین لایه انتقال پیام که به گره‌ها اجازه می‌دهد اطلاعات را از همسایگان بزرگ‌تری جمع‌آوری کنند. 🔄

3. تعبیه گره‌ها:
- از طریق انتقال پیام، گره‌ها تعبیه‌هایی (نمایش‌های برداری) یاد می‌گیرند که ساختار محلی گراف و ویژگی‌های گره‌ها و همسایگان آنها را به‌دست می‌آورند. 🧠

4. نمایش‌های سطح گراف:
- برای وظایفی که به نمایش سطح کل گراف نیاز دارند (مثلاً طبقه‌بندی گراف)، تعبیه‌های گره‌ها می‌توانند به یک تعبیه سطح گراف واحد تجمیع شوند. 🌐

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3🙏1
📅 زمان ثبت نام و برگزاری کنکور ارشد و دکترا

📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
الگوریتم k-نزدیکترین همسایگان (k-NN):

👥 چیست؟
یک الگوریتم یادگیری ماشین ساده و شهودی برای طبقه بندی و رگرسیون.

🔍 چگونه کار می کند؟
1. ابتدا"k" را انتخاب کنید: تعداد نزدیکترین همسایگان (k) را انتخاب کنید.
2. محاسبه فاصله ها: فاصله بین نقطه داده جدید و تمام نقاط داده آموزشی را اندازه گیری کنید.
3. همسایگان را بیابید: نزدیکترین نقاط داده (همسایگان) 'k' را شناسایی کنید.
4. پیش بینی:
- طبقه بندی: اکثریت رای برچسب های کلاس همسایه ها را بگیرید.
- رگرسیون: میانگین مقادیر همسایگان را محاسبه کنید.

🔧 ویژگی های کلیدی:
- فاز آموزشی وجود ندارد: با استفاده از کل مجموعه داده آموزشی، پیش بینی می کند.
- متریک فاصله: معمولاً از فاصله اقلیدسی برای یافتن نزدیکترین همسایگان استفاده می کند.

⚖️ مزایای:
- آسان برای درک و پیاده سازی.
- انعطاف پذیر: هم برای طبقه بندی و هم برای رگرسیون کار می کند.

⚠️ معایب:
- از نظر محاسباتی برای مجموعه داده های بزرگ گران است.
- حساس به ویژگی های نامربوط و نویز.

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍31
کد زیر یک مدل ساده k-NN برای طبقه‌بندی داده‌ها را ایجاد و ارزیابی می‌کند:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# تولید داده‌های نمونه
data = {
'feature1': [2, 4, 4, 4, 6, 6, 8, 8, 8, 8],
'feature2': [4, 2, 4, 6, 4, 6, 2, 4, 6, 8],
'label': [0, 0, 0, 0, 1, 1, 1, 1, 1, 1]
}
df = pd.DataFrame(data)

# جداسازی ویژگی‌ها و برچسب‌ها
X = df[['feature1', 'feature2']]
y = df['label']

# تقسیم داده‌ها به مجموعه‌های آموزش و آزمون
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# ایجاد مدل k-Nearest Neighbors
model = KNeighborsClassifier(n_neighbors=3)

# آموزش مدل
model.fit(X_train, y_train)

# پیش‌بینی با استفاده از مدل آموزش دیده
y_pred = model.predict(X_test)

# ارزیابی مدل
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy * 100:.2f}%')

# تست مدل با داده جدید
new_data = np.array([[2, 4]])
new_pred = model.predict(new_data)
print(f'Prediction for new data [feature1=5, feature2=5]: {new_pred[0]}')
👍10
This media is not supported in your browser
VIEW IN TELEGRAM
برج هانوی 🏗
این مساله شامل سه میله و تعدادی دیسک با اندازه‌های متفاوت است که می‌بایست از یکی از میله‌ها به میله‌ی دیگر منتقل شوند، با رعایت قوانین زیر:

تنها یک دیسک در هر زمان می‌تواند جابجا شود.
هر دیسک بزرگ‌تر نمی‌تواند روی دیسک کوچک‌تر قرار گیرد.
تنها دیسک بالایی هر میله می‌تواند جابجا شود.
توضیح مساله 🎯
هدف این است که همه دیسک‌ها را از میله‌ی اولیه (مثلاً A) به میله‌ی مقصد (مثلاً C) منتقل کنیم، با استفاده از میله‌ی واسطه (مثلاً B). فرض کنید n تعداد دیسک‌ها باشد.

الگوریتم بازگشتی 🔄
برای حل این مساله از الگوریتم بازگشتی استفاده می‌شود. مراحل الگوریتم به صورت زیر است:

انتقال n-1 دیسک از میله A به میله B با استفاده از میله C به عنوان میله کمکی.
انتقال دیسک n-ام از میله A به میله C.
انتقال n-1 دیسک از میله B به میله C با استفاده از میله A به عنوان میله کمکی.
این روند تا زمانی که تنها یک دیسک باقی بماند ادامه می‌یابد، در این حالت، دیسک مستقیم از میله A به میله C منتقل می‌شود.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4
یادگیری با نظارت در هوش مصنوعی

🔍 یادگیری با نظارت، فرآیندی است که در آن الگوریتم‌های یادگیری ماشینی با استفاده از داده‌های برچسب‌گذاری شده آموزش داده می‌شوند تا بتوانند الگوهای موجود در داده‌ها را یاد بگیرند و برای پیش‌بینی یا دسته‌بندی داده‌های جدید از آن‌ها استفاده کنند.

مراحل فرآیند یادگیری با نظارت:

1. داده‌های خام: جمع‌آوری داده‌های اولیه برای پردازش توسط الگوریتم.
2. نظارت: برچسب‌گذاری داده‌ها توسط انسان یا به صورت خودکار.
3. مجموعه داده آموزشی: تقسیم داده‌ها به مجموعه آموزشی و مجموعه تست.
4. الگوریتم: آموزش الگوریتم با استفاده از داده‌های آموزشی.
5. پردازش: استفاده از الگوریتم آموزش دیده برای پردازش داده‌های جدید.
6. خروجی: پیش‌بینی یا دسته‌بندی داده‌های جدید.

نکات کلیدی:

* نظارت نقش مهمی در یادگیری با نظارت دارد.
* الگوریتم‌های مختلفی مانند رگرسیون خطی، درخت تصمیم و شبکه‌های عصبی مصنوعی وجود دارند.
* کاربردها شامل تشخیص چهره، طبقه‌بندی متن و پیش‌بینی قیمت سهام.

یادگیری با نظارت یک روش قدرتمند برای حل مسائل دنیای واقعی است.

📊📚🤖
#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍1
Complexity-lec-ad-s20.pptx
1.6 MB
💡 پیچیدگی زمانی کد - رازهای بهینه‌سازی الگوریتم‌ها 💡

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

🌟 در جزوه پیچیدگی زمانی کد، یاد می‌گیریم که چگونه بهترین الگوریتم‌ها را انتخاب و بهینه‌سازی کنیم تا در کمترین زمان ممکن به بهترین نتایج دست یابیم. از O(1) تا O(n!)، هر کدام داستانی دارند که باید کشف کنیم.

📊 اگر می‌خواهید کد شما مانند یک نینجا سریع و کارآمد باشد، حتماً این جزوه را مطالعه کنید! 📝

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🔍 تبدیل کانولوشن در بینایی کامپیوتری 🔍

📸 کانولوشن با کرنل (یا فیلتر) نه تنها در شبکه‌های عصبی پیچشی (CNNs) استفاده می‌شود، بلکه یکی از عناصر کلیدی بسیاری از الگوریتم‌های بینایی کامپیوتری نیز می‌باشد. در این فرآیند، یک ماتریس کوچک از اعداد (کرنل یا فیلتر) را بر روی تصویر خود اعمال می‌کنیم و آن را بر اساس مقادیر فیلتر تغییر می‌دهیم.

📊 مقادیر نقشه ویژگی‌های خروجی بر اساس فرمول زیر محاسبه می‌شوند که در آن تصویر ورودی با ( f ) و کرنل با ( h )نمایش داده می‌شوند. شاخص‌های سطرها و ستون‌های ماتریس نتیجه به ترتیب با ( m ) و ( n ) نشان داده می‌شوند:

G[m,n] = (f*h)[m,n] = ∑ j ∑ k h[j, k] f[m-j, n-k]

🖼 به زبان ساده، کانولوشن به ما کمک می‌کند تا ویژگی‌های مهم تصویر را استخراج کنیم و بینش بهتری از محتوای آن بدست آوریم.

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

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍6
🔹Divide and Conquer تقسیم و غلبه 🔹

روش Divide and Conquer (تقسیم و غلبه) یکی از تکنیک‌های اساسی و پرکاربرد در طراحی الگوریتم‌ها و ساختمان داده‌ها است. این روش به حل مسائل پیچیده با تقسیم آنها به زیرمسائل کوچکتر و ساده‌تر می‌پردازد. فرآیند کلی این تکنیک به سه مرحله اصلی تقسیم می‌شود:

1. تقسیم (Divide): مسئله اصلی به چند زیرمسئله کوچکتر تقسیم می‌شود که همگی نسخه‌های کوچکتری از مسئله اصلی هستند.
2. غلبه (Conquer): هر یک از زیرمسائل به طور مستقل حل می‌شوند. اگر زیرمسائل به اندازه کافی کوچک باشند، به صورت مستقیم حل می‌شوند؛ در غیر این صورت، به طور بازگشتی به همان روش تقسیم می‌شوند.
3. ترکیب (Combine): نتایج حاصل از حل زیرمسائل ترکیب شده و راه‌حل نهایی مسئله اصلی بدست می‌آید.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍2🔥1
Aritificial-Intelidence.rar
196.3 MB
🔹 دوره هوش مصنوعی با اسلایدهای ترجمه‌شده دانشگاه California, Berkeley در دانشگاه ایلام 🔹

👨‍🏫 مدرس: دکتر مظفر بگ محمدی

دانشگاه ایلام با افتخار اسلایدهای دوره‌های هوش مصنوعی دانشگاه معتبر کالیفرنیا، برکلی را ترجمه و در دوره‌های آموزشی خود به کار گرفته است. این دوره‌ها توسط دکتر مظفر بگ محمدی، استاد برجسته دانشگاه ایلام، تدریس می‌شوند.

🔗 لینک آموزش هوش مصنوعی

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4😍2
This media is not supported in your browser
VIEW IN TELEGRAM
الگوریتم بلمن-فورد
الگوریتم بلمن-فورد یک روش معروف برای پیدا کردن کوتاه‌ترین مسیرها در گراف‌های وزن‌دار است. برخلاف الگوریتم دیکسترا، بلمن-فورد می‌تواند وزن‌های منفی را مدیریت کند و حلقه‌های منفی را تشخیص دهد.

نکات کلیدی:
مقداردهی اولیه: شروع با فاصله بی‌نهایت برای همه رأس‌ها و صفر برای رأس مبدأ.
به‌روزرسانی (Relaxation): در V-1 مرحله، همه یال‌ها بررسی و فاصله‌ها به‌روزرسانی می‌شوند.
تشخیص حلقه‌های منفی: در پایان، بررسی مجدد یال‌ها برای تشخیص حلقه‌های منفی.
کاربردها:
- پیدا کردن کوتاه‌ترین مسیرها در گراف‌های وزن‌دار با وزن‌های منفی
- تشخیص حلقه‌های منفی در گراف‌ها

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍2