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

👨‍💻Admin👉 @Se_mohamad
Download Telegram
Media is too big
VIEW IN TELEGRAM
الگوریتم فلوید-وارشال (Floyd-Warshall) یکی از الگوریتم‌های کارآمد برای پیدا کردن کوتاه‌ترین مسیرها در گراف‌های وزن‌دار است. این الگوریتم توسط رابرت فلوید و استیون وارشال توسعه داده شده است. 🌐


این الگوریتم به دلیل سادگی و جامعیت، یکی از پرکاربردترین روش‌ها برای پیدا کردن کوتاه‌ترین مسیرها در گراف‌های وزن‌دار است. 🌟

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍5
Lesson.rar
13.3 MB
📚 اسلایدهای تدریس شده "مبانی و کاربردهای هوش مصنوعی" دانشگاه اصفهان

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3
جزوه طراحی الگوریتم.rar
9.1 MB
🌟📘🎓 اسلایدها و فیلم‌های آموزشی طراحی الگوریتم 🎓📘🌟

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

🎥 مشاهده رایگان فیلم‌های تدریس از طریق لینک زیر:

لینک مشاهده فیلم‌ها🔗

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍1
داده‌های پرت در یادگیری ماشین 🚀

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

روش‌های شناسایی داده‌های پرت 🔍
- روش‌های آماری: مثل فاصله بیش از سه انحراف معیار از میانگین 📊
- روش‌های گرافیکی: مثل جعبه‌نمودار (Box Plot) 📉
- روش‌های یادگیری ماشین: مثل الگوریتم جنگل ایزوله (Isolation Forest) 🌳
- روش‌های فاصله‌ای: مثل فاصله ماهالانوبیس (Mahalanobis Distance) 📐

روش‌های مدیریت داده‌های پرت 🛠
- حذف داده‌های پرت
- تبدیل داده‌های پرت 🔄
- مدل‌سازی خاص برای داده‌های پرت 🧩
- تعویض مقادیر پرت با مقادیر دیگر 🔢


داده‌های پرت را به درستی مدیریت کنید تا مدل‌های یادگیری ماشین شما بهترین عملکرد را داشته باشند! 🌟
#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
🙏4👍3👨‍💻1
⚡️تعادل و عدم تعادل در الگوریتم‌های مرتب‌سازی⚡️

در الگوریتم‌های مرتب‌سازی، تعادل به معنای عملکرد یکنواخت در برابر انواع داده‌هاست. مرتب‌سازی‌های متعادل مانند Merge Sort و Heap Sort عملکردی پایدار دارند و زمان اجرای آن‌ها به نوع ورودی بستگی ندارد. اما مرتب‌سازی‌های نامتعادل مانند Quick Sort و Insertion Sort می‌توانند در شرایط خاص سریع باشند اما در بدترین حالت ممکن است زمان اجرای بالایی داشته باشند.


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

انتخاب الگوریتم مناسب بستگی به نوع داده‌ها و شرایط مسئله دارد.


---
🧩 مرتب‌سازی‌های متعادل
- 🌀 Merge Sort
- 🌀 Heap Sort

🔄 مرتب‌سازی‌های نامتعادل
- ⚡️ Quick Sort
- ⚡️ Insertion Sort

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍5
🎨 نویز در عکس‌ها و انواع آن 🖼

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

🔧 انواع نویز:
- 📈 نویز گاوسی (Gaussian Noise): نویز با توزیع نرمال.
- ⚫️⚪️ نویز نمک و فلفل (Salt and Pepper Noise): نقاط سفید و سیاه تصادفی.
- 🟤 نویز اسپکل (Speckle Noise): الگوهای نقطه‌ای، معمولاً در تصاویر رادار و التراسوند.

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍🏫 طبقه‌بندی‌کننده k-NN با k=3:

🔍 چپ: وقتی بخواهیم نقطه‌ای را که می‌خواهیم طبقه‌بندی کنیم (نقطه آزمایش) به کلاس مربوطه اختصاص دهیم، الگوریتم k-NN ابتدا ۳ نقطه نزدیک‌ترین همسایه از مجموعه آموزشی را پیدا می‌کند. برای محاسبه نزدیکی، معمولاً از فاصله اقلیدسی استفاده می‌کنند.

سپس، برچسب‌های این ۳ همسایه نزدیک را بررسی می‌کنیم و برچسب اکثریت را برای نقطه آزمایش انتخاب می‌کنیم. به عنوان مثال، اگر ۲ تا از این ۳ همسایه قرمز و ۱ همسایه آبی باشد، نقطه آزمایش به عنوان "رده قرمز" طبقه‌بندی می‌شود.

📉 راست: با تکرار این پیش‌بینی در تمامی نقاط فضای ویژگی (X1، X2)، می‌توانیم "سطح تصمیم" را ترسیم کنیم. سطح تصمیم ناحیه‌های مختلف در فضای ویژگی را نشان می‌دهد که در هر ناحیه، تمامی نقاط به یک کلاس خاص اختصاص یافته‌اند.

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👌3👍1
Preorder : 23,14,7,9,17,31
Postorder: 9,7,17,14,31,23
Inorder: 7,9,14,17,23,31

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4🔥1
عدد کاتالان چیست؟

📐🔢

اعداد کاتالان (Catalan Numbers) دنباله‌ای از اعداد طبیعی هستند که در زمینه‌های مختلفی از ریاضیات به‌ویژه در ترکیبیات ظاهر می‌شوند. این اعداد به نام ریاضی‌دان بلژیکی "اوژن شارل کاتالان" نام‌گذاری شده‌اند. دنباله اعداد کاتالان با C_n نشان داده می‌شود.


📊 برای نمونه، چند عدد اول این دنباله عبارتند از: 1، 1، 2، 5، 14، 42، 132، و...

کاربردها

اعداد کاتالان در مسائل مختلفی از ترکیبیات ظاهر می‌شوند. برخی از کاربردهای مشهور این اعداد عبارتند از:

1. 📐 پارتیشن‌های صحیح: تعداد روش‌های تقسیم یک چندضلعی محدب n+2 ضلعی به مثلث‌ها با استفاده از قطرها.

2. 🌳 درخت‌های دودویی: تعداد درخت‌های دودویی مختلف با n گره.

3. 🔗 پرنتزگذاری: تعداد روش‌های مختلفی که n جفت پرانتز می‌توانند به طور صحیح تراز شوند.

4. 📈 مسیرهای شبکه: تعداد مسیرهای در شبکه n*n که از نقطه (0,0) به نقطه (n,n) می‌روند و هرگز از قطر اصلی عبور نمی‌کنند.

#الگوریتم

📣👨‍💻 @AlgorithmDesign_DataStructuer
🔥5👍4
اگر به دنبال یک آموزش فوق‌العاده در زمینه شبکه‌های عصبی برای یادگیری ماشینی هستید، این آموزش را از دست ندهید! با استفاده از لینک زیر می‌توانید به مطالب ارزشمندی دست پیدا کنید و مهارت‌های خود را ارتقاء دهید. 📘🤖🚀

لینک آموزش

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
😍4
آشنایی با جدول درهم‌سازی (Hash Table) 📊🔍

جدول درهم‌سازی (Hash Table) یکی از ساختارهای داده‌ای مهم در علم کامپیوتر است که برای ذخیره‌سازی و بازیابی داده‌ها با سرعت بالا مورد استفاده قرار می‌گیرد. این ساختار از یک آرایه و یک تابع درهم‌سازی (Hash Function) تشکیل شده است. تابع درهم‌سازی کلیدها را به شاخص‌هایی در آرایه نگاشت می‌کند، به طوری که دسترسی به داده‌ها به صورت تقریبا فوری (O(1)) امکان‌پذیر می‌شود.

ویژگی‌های مهم جدول درهم‌سازی:
1. سرعت بالا: عملیات جستجو، درج و حذف در زمان ثابت انجام می‌شود ⚡️.
2. استفاده از تابع درهم‌سازی: این تابع کلیدها را به شاخص‌های آرایه تبدیل می‌کند 🔢.
3. مدیریت برخورد (Collision Handling): در صورتی که دو کلید مختلف به یک شاخص نگاشت شوند، از روش‌هایی مانند زنجیره‌سازی (Chaining) یا پراکندگی باز (Open Addressing) استفاده می‌شود 🔗🔍.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👌3👍1
ساختمان_داده-خلاصه-نصیر.pdf
738.1 KB
📘 خلاصه مباحث ساختمان داده برای آمادگی آزمون‌های استخدامی 📘

📄 این پی‌دی‌اف شامل خلاصه‌ای جامع از مباحث ساختمان داده همراه با سوالات جمع‌بندی است. مناسب برای آزمون‌های استخدامی و مرور نهایی مطالب.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
🙏5👌1
Curse of Dimensionality🌀

به مشکلاتی اشاره دارد که هنگام کار با داده‌های با ابعاد بالا بروز می‌کند:

1. افزایش فضای جستجو 📈: حجم فضای جستجو
به طور نمایی افزایش می‌یابد.

2. پراکندگی داده‌ها 📊: داده‌ها پراکنده‌تر می‌شوند و فاصله بین نقاط بیشتر می‌شود.

3. نیاز به داده‌های بیشتر 📋: برای پوشش تمام ترکیب‌های ممکن از ویژگی‌ها، داده‌های بیشتری نیاز است.

4. باعثOverfitting ⚠️: احتمال یادگیری بیش از حد مدل از داده‌های آموزشی افزایش می‌یابد.

5. کاهش کارایی محاسباتی : پیچیدگی محاسباتی و نیاز به منابع بیشتر می‌شود.

راه‌حل‌ها:
- کاهش ابعاد 🔍: استفاده از روش‌هایی مانند PCA.
- انتخاب ویژگی 🎯: انتخاب ویژگی‌های مهم و حذف ویژگی‌های غیرضروری.
- استفاده از الگوریتم‌های مناسب 🧠: مانند درخت تصمیم.

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👌3
Big O notation : Time complexity of an algorithm

⚪️برای اطلاعات بیشتر از نحوه کار :

📎 Time complexity

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👌4👍1
طراحی_الگوریتم_ج.pdf
1.8 MB
🌟 جزوه خلاصه‌شده طراحی الگوریتم برای آزمون‌های استخدامی 🌟

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

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
slide.pdf
1.3 MB
📘 نقش کلیدی بهینه‌سازی در یادگیری ماشین 📘

در بسیاری از دوره‌های آموزشی یادگیری ماشین، بهینه‌سازی (Optimization) کمتر مورد توجه قرار می‌گیرد، در حالی که این مبحث نقشی بسیار اساسی در عملکرد الگوریتم‌های یادگیری ماشین دارد. بهینه‌سازی عملاً شالوده بسیاری از این الگوریتم‌هاست.

اگر در یادگیری ماشین مهارت بالایی دارید، مطالعه بهینه‌سازی محدب (Convex Optimization) می‌تواند به شما کمک کند تا درک عمیق‌تری از این حوزه پیدا کنید و دیدگاه‌تان را بهبود بخشید.

با تسلط بر بهینه‌سازی، مهارت‌های یادگیری ماشین خود را تقویت کنید!

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🔄 مرتب‌سازی شاکر: یک نسخه پیشرفته از Bubble Sort 🔄

مرتب‌سازی شاکر، که به آن Cocktail Sort نیز گفته می‌شود، توسعه‌ای از Bubble Sort است. برخلاف مرتب‌سازی حبابی که در هر دور، بزرگ‌ترین عنصر را به انتهای بخش غیرمرتبط می‌برد، مرتب‌سازی شاکر به‌طور متناوب عمل می‌کند:
- در یک دور، بزرگ‌ترین عنصر را از بخش غیرمرتبط به انتهای بخش مرتب شده می‌آورد. 📉
- در دور بعد، عناصر کوچک‌تر را از بخش غیرمرتبط به ابتدای بخش مرتب شده می‌برد. 📈

مرتب‌سازی شاکر به‌طور مؤثر دو مرحله از Bubble Sort را ترکیب می‌کند:
1. مرحله‌ای که از بزرگ‌ترین عنصر شروع به مرتب‌سازی می‌کند و به سمت کوچک‌ترین عنصر پیش می‌رود. 📉
2. مرحله‌ای که از کوچک‌ترین عنصر شروع به مرتب‌سازی می‌کند و به سمت بزرگ‌ترین عنصر می‌رود. 📈

اگرچه این الگوریتم به نظر می‌رسد که پیشرفت قابل توجهی نسبت به Bubble Sort داشته باشد، اما در عمل، افزایش عملکرد آن بسیار محدود است و پیچیدگی زمانی آن مشابه Bubble Sort باقی می‌ماند. 🔄

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍5🔥4
🎯 نرمال‌سازی داده‌ها در یادگیری ماشین

🔍 نرمال‌سازی (Normalization) فرآیندی است که داده‌ها را به مقیاسی خاص تبدیل می‌کند تا مدل‌های یادگیری ماشین بهتر و سریع‌تر یاد بگیرند.

چرا نرمال‌سازی مهم است؟ 🤔
1. بهبود عملکرد مدل 🚀
2. افزایش سرعت یادگیری ⚡️
3. کاهش حساسیت به مقیاس داده‌ها 📏

### روش‌های نرمال‌سازی 📚
1. نرمال‌سازی مین-ماکس (Min-Max Normalization):
- تبدیل داده‌ها به محدوده [0, 1]

2. استانداردسازی (Standardization):
- میانگین صفر و انحراف معیار یک

3. نرمال‌سازی مقیاس واحد (Unit Vector Normalization):
- طول بردار برابر با یک


نکات مهم 📝
- انتخاب روش مناسب: بستگی به نوع داده‌ها و الگوریتم مورد استفاده دارد.
- داده‌های تست: نرمال‌سازی باید هم بر روی داده‌های آموزش و هم بر روی داده‌های تست اعمال شود.
- داده‌های پرت: ممکن است نرمال‌سازی تحت تاثیر داده‌های پرت قرار گیرد.

📊 با نرمال‌سازی صحیح، مدل‌های شما دقیق‌تر و کارآمدتر خواهند بود!

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍7