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

👨‍💻Admin👉 @Se_mohamad
Download Telegram
همانطور که مشاهده می‌کنید، در ابتدا رشد تابع‌های g(n) و f(n) برابر هستند. اما با انتخاب ثابت c = 2.1 ، تابع f(n) بزرگتر از g(n) می‌شود. این تصویر نشان می‌دهد که با انتخاب مناسب c، برای هر n > 1 رابطه زیر برقرار است:
g(n) = O(f(n))

💡 انتخاب صحیح ثابت c کلید اصلی برای بیان صحیح پیچیدگی زمانی بین دو تابع است. 🚀📈

#الگوریتم

📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4
🌟 گرادیان کاهش: راه‌حلی هوشمندانه برای بهینه‌سازی 🌟

گرادیان کاهش (Gradient Descent) یک الگوریتم کلیدی در یادگیری ماشین و بهینه‌سازی است که به ما کمک می‌کند تا مینیمم تابع هزینه را پیدا کنیم. این الگوریتم با استفاده از اطلاعات گرادیان، پارامترهای مدل را به‌روزرسانی می‌کند تا هزینه کاهش یابد.

مراحل اصلی:
1. شروع با پارامترهای اولیه 🏁
2. محاسبه گرادیان تابع هزینه 📉
3. به‌روزرسانی پارامترها با نرخ یادگیری مناسب 🔄

انواع:
- گرادیان کاهش تصادفی (SGD): به‌روزرسانی با یک نمونه تصادفی. 🎲
- مینی‌پکیج (Mini-batch): به‌روزرسانی با گروهی از نمونه‌ها. 📦
- کلاسیک (Batch): به‌روزرسانی با کل داده‌ها. 🌐

مزایا و معایب:
- مزایا: سادگی و کاربرد در مدل‌های پیچیده 🚀
- معایب: ممکن است به مینیمم محلی برسد و وابسته به نرخ یادگیری است. ⚠️

با استفاده از این الگوریتم، می‌توانیم به‌طور مؤثر پارامترهای مدل را بهینه کنیم و بهترین نتایج را از داده‌های خود بگیریم. 💡

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍2
Linear_algebra.pdf
3.9 MB
📚 معرفی جزوه جبر خطی دانشگاه استنفورد

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

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

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
مدل‌های زبان بزرگ (LLMs) چیست؟ 🤖📚

مدل‌های زبان بزرگ (Large Language Models یا LLMs) ابزارهای قدرتمندی هستند که با استفاده از یادگیری عمیق و تحلیل داده‌های متنی وسیع، توانایی پردازش و تولید زبان طبیعی را دارند. این مدل‌ها می‌توانند وظایف مختلفی مانند ترجمه متن، پاسخ به سوالات و تولید محتوای خلاقانه را به‌خوبی انجام دهند.

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

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

📎 look at The Transformer

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍5
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