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

👨‍💻Admin👉 @Se_mohamad
Download Telegram
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
ماتریس مجاورت چیست؟ 📊
ماتریس مجاورت یک ماتریس مربعی است که ارتباطات بین نودهای یک گراف را نشان می‌دهد. هر عنصر در این ماتریس مشخص می‌کند که آیا ارتباطی بین دو نود وجود دارد یا خیر.

کاربردها:
ماتریس مجاورت 📊 یکی از اصلی‌ترین کاربردهایش، نمایش و ذخیره‌سازی گراف‌ها در حافظه 🗄 است. این روش به ویژه برای گراف‌های کوچک و متراکم مناسب است. 🧩

برای تحلیل گراف‌ها 🔍، ماتریس مجاورت می‌تواند برای انجام تحلیل‌های مختلف روی گراف‌ها استفاده شود. 💡

نکته: ماتریس مجاورت ابزاری قدرتمند برای تجزیه و تحلیل و بهینه‌سازی شبکه‌های مختلف است.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3👌2
📌 تابع ReLU در شبکه‌های عصبی

تابع ReLU (Rectified Linear Unit) یکی از پرکاربردترین توابع فعال‌سازی در شبکه‌های عصبی است. در اینجا خلاصه‌ای از ویژگی‌ها و کاربردهای آن:

🔹 تعریف:
ReLU(x)=max(0,x)


مزایا:
- ساده و سریع: محاسبه آسان و سرعت بالا 🕒
- غیرخطی: توانایی یادگیری روابط پیچیده 📈
- پیشگیری از Vanishing Gradient: گرادیان ثابت برای مقادیر مثبت 🚀

⚠️ مشکلات:
- Dead Neurons: نورون‌های غیر فعال برای مقادیر منفی 🚫

🔧 بهبودها:
- Leaky ReLU: شیب کوچک برای مقادیر منفی 📉
- ELU: تابع نمایی برای مقادیر منفی 📈
- PReLU: شیب قابل یادگیری برای مقادیر منفی 🧠

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

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔍🌐 شبکه عصبی کانولوشن (CNN) چیست؟

در یادگیری ماشینی، یک طبقه‌بندی‌کننده یک برچسب کلاس به یک نقطه داده اختصاص می‌دهد. به عنوان مثال، یک طبقه‌بندی‌کننده تصویر یک برچسب کلاس (مانند پرنده، هواپیما) برای اشیایی که در یک تصویر وجود دارند، تولید می‌کند. 🏷📸

🧠💡 شبکه عصبی کانولوشن (CNN) نوعی طبقه‌بندی‌کننده است که در حل این مشکل عالی است!

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

📚 برای اطلاعات بیشتر در مورد نحوه کار این شبکه عصبی، به لینک زیر مراجعه کنید:

🔗نحوه کار شبکه عصبی کانولوشن

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
🔍🌐 Data Structure Visualizations

یک وب‌سایت عالی برای یادگیری و مشاهده ساختارهای داده به صورت بصری است. این وب‌سایت به شما امکان می‌دهد تا ساختارهای داده مختلف مانند پشته‌ها، صف‌ها، لیست‌های پیوندی، درخت‌ها، نمودارها و غیره را مشاهده و درک کنید. 🌐📊

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

این سایت یک منبع آموزشی بسیار مفید برای دانشجویان و علاقه‌مندان به علوم کامپیوتر و برنامه‌نویسی است که می‌خواهند درک بهتری از ساختارهای داده و الگوریتم‌ها پیدا کنند. 📚💡

🌐 برای بازدید از این سایت و استفاده از ابزارهای آن، به لینک زیر مراجعه کنید:

🔗 Data Structure Visualizations

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4👌2
سلام دوستان عزیز،

📢 آیا موافق هستید در مورد مباحث مهم در همه زمینه‌های رشته کامپیوتر (مانند برنامه‌نویسی، هوش مصنوعی، امنیت سایبری، شبکه‌ها، و غیره) پست‌های بیشتری در کانال منتشر شود؟
Anonymous Poll
76%
👌 بله، موافقم
10%
😐 نظری ندارم
16%
👎 خیر، مخالفم
🌟 آموزش کامل و رایگان پایتورچ از مبتدی تا پیشرفته 🌟

برای دسترسی به آموزش، روی لینک زیر کلیک کنید:

📎آموزش پایتورچ

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
🙏4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
درخت AVL 🌳 یک نوع درخت جستجوی دودویی خودمتعادل است که به منظور بهبود کارایی عملیات جستجو، درج و حذف استفاده می‌شود. در این درخت، تفاوت ارتفاع بین دو زیر درخت فرزند هر نود بیشتر از 1 نمی‌شود، بنابراین همیشه متعادل می‌ماند.

ویژگی‌ها:
تعادل ارتفاع: 🌱 تفاوت ارتفاع زیر درخت‌های هر نود حداکثر 1 است.
چرخش‌ها (Rotations): 🔄 چهار نوع چرخش برای حفظ تعادل استفاده می‌شود:
چرخش ساده به راست ↪️
چرخش ساده به چپ ↩️
چرخش دوگانه به راست ↩️↪️
چرخش دوگانه به چپ ↪️↩️
عملیات درج (Insertion): بعد از درج، ممکن است نیاز به چرخش برای حفظ تعادل باشد.
عملیات حذف (Deletion): بعد از حذف، ممکن است نیاز به چرخش برای حفظ تعادل باشد.
پیچیدگی زمانی: جستجو، درج و حذف در زمان O(log n) انجام می‌شوند.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3
📶 Bandwidth : 700Gig #FREE
🛜 ISP: ALL
📄 Config :
--------------------------------
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206ZW44R2RhZ1VqWWFlaFdBQmFCVEtJeEJ3aHVGc1Mra01Jeml4ckJ3RFozND06Q3k2SUE0ejYvUHpGTTZJbkFDcHNJQ3dkcnVUV1ZJZDNjNVJRTHNtUHkxbz0@fr.mahfan.sbs:12938?type=tcp#%40Se_mohamad-%40AlgorithmDesign_DataStructuer

--------------------------------

❤️Like & 🔗Share
👍8😍1
main.pdf
10 MB
شبکه‌های کامپیوتری
✍️ تألیف:
لری پترسون
بروس دیوی

🔄 ترجمه:
دکتر مظفر بگ محمدی
مرحوم مهندس مجتبی ثابتی

#شبکه
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
مدل‌های دیفیوژن: تحول در پردازش تصویر 🎨

محققان MIT و گوگل با توسعه الگوریتمی به نام Alchemist موفق شده‌اند ویژگی‌های مواد مثل زبری، فلزی بودن، رنگ و شفافیت را در تصاویر واقعی تغییر دهند! این یعنی ما می‌توانیم هر چیزی را به هر شکلی که دوست داریم تغییر دهیم! 🤯

از تغییر زبری یک تخم‌مرغ 🥚 تا شفاف کردن یک مجسمه 🗿، همه چیز امکان‌پذیر است! این فناوری پتانسیل بی‌نظیری در زمینه‌های مختلف مانند طراحی 🖌، فیلم‌سازی 🎥 و حتی پزشکی 🏥 دارد.

بی‌صبرانه منتظریم تا کد این پروژه منتشر شود تا بتوانیم خودمان نیز با آن کار کنیم! 🚀


نکات برجسته:
- مدل انتشار تصویر به تصویر برای کنترل پارامترهای تصاویر 🌈
- ویرایش‌های روان: زبری، فلزی بودن، شفافیت
- ویرایش‌های دقیق مصنوعی با استفاده از 100 شیء سه‌بعدی 🧩
- تعمیم به دنیای واقعی باوجود آموزش مصنوعی 🌐

🌐برای اطلاعات بیشتر از پروژه :

📎https://www.prafullsharma.net/alchemist/

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

خصوصیات MST
اتصال: تمامی رأس‌های گراف را به هم متصل می‌کند.
بدون دور: شامل هیچ دوری نیست.
کمینه بودن وزن: مجموع وزن‌های یال‌های MST حداقل است. 💡
الگوریتم‌های معروف MST
الگوریتم پریم (Prim's Algorithm): با انتخاب یک رأس شروع و کم‌وزن‌ترین یال‌های متصل را اضافه می‌کند.
الگوریتم کروسکال (Kruskal's Algorithm): یال‌ها را بر اساس وزن مرتب و از کم‌وزن‌ترین شروع به اضافه کردن می‌کند تا دوری ایجاد نشود. ⚙️
کاربردهای MST
طراحی شبکه: کاهش هزینه‌ها در شبکه‌های ارتباطی.
مدارهای الکترونیکی: بهینه‌سازی اتصالات مدارهای چاپی.
برنامه‌ریزی حمل و نقل: تعیین مسیرهای بهینه.
تحلیل داده: خوشه‌بندی داده‌ها در یادگیری ماشین. 🚀

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
This media is not supported in your browser
VIEW IN TELEGRAM
توضیحی درباره Store & Forwarding در شبکه‌های Packet Switching

یکی از مفاهیم اساسی در شبکه‌های کامپیوتری Store & Forwarding است که در مسیر‌یابی بسته‌ها (Packet Switching) استفاده می‌شود. 📦

نحوه کار Store & Forwarding
زمانی که یک بسته به یک روتر می‌رسد:
1. ذخیره (Store): ابتدا روتر بسته را ذخیره می‌کند.
2. تصمیم‌گیری مسیر‌یابی: سپس روتر تصمیم می‌گیرد که بسته از کدام مسیر ارسال شود. 🔄
3. ارسال (Forward): در نهایت، بسته را به مسیر تعیین شده ارسال می‌کند.

مزیت Store & Forwarding
این فرآیند به دور زدن خرابی‌ها کمک می‌کند و باعث می‌شود بسته‌ها به درستی به مقصد برسند. 💡

Store & Forwarding یک روش مؤثر برای مدیریت و ارسال بسته‌ها در شبکه‌های کامپیوتری است. 🌐

#شبکه
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍2
سیستم عامل - شیرافکن .pdf
10.7 MB
📚 معرفی کتاب سیستم عامل از شیر افکن 📚

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

🔹 ویژگی‌های کتاب:
- توضیح مفاهیم اساسی سیستم‌ عامل
- بررسی انواع سیستم‌ عامل‌ها
- مثال‌های کاربردی و تمرینات متعدد

🔸 چرا این کتاب را بخوانیم؟
- مناسب برای دانشجویان و علاقه‌مندان به علوم کامپیوتر
- منبعی معتبر برای آماده‌سازی دروس دانشگاهی
- ارتقاء دانش و مهارت‌های فنی

#سیستم_عامل
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
📘 الگوریتم Kruskal: 📘

الگوریتم Kruskal یکی از الگوریتم‌های معروف برای یافتن درخت پوشای مینیمم (MST) در یک گراف وزن‌دار است. این الگوریتم توسط جوزف ب. کرواسکال ابداع شده و به دلیل سادگی و کارآمدی در بسیاری از مسائل شبکه‌های کامپیوتری و ارتباطات مورد استفاده قرار می‌گیرد.

🔹 نحوه عملکرد الگوریتم:
1. مرتب‌سازی یال‌ها: ابتدا تمامی یال‌های گراف را بر اساس وزن آن‌ها به ترتیب صعودی مرتب کنید.
2. انتخاب یال‌ها: یال‌ها را یکی یکی انتخاب کنید و اگر اضافه کردن یک یال باعث ایجاد دور نشود، آن را به درخت پوشا اضافه کنید.
3. پایان الگوریتم: این روند را تا زمانی ادامه دهید که همه رئوس به یکدیگر متصل شوند و یک درخت پوشا تشکیل شود.

🔺 پیچیدگی الگوریتم:
- زمانی: پیچیدگی زمانی الگوریتم Kruskal برابر است با (O(Elog E))، که در آن E تعداد یال‌های گراف است. این پیچیدگی ناشی از مرحله مرتب‌سازی یال‌ها و عملیات جستجو و ادغام (union-find) است.
- فضایی: پیچیدگی فضایی برابر با (O(V + E)) است، که در آن V تعداد رئوس گراف و Eتعداد یال‌ها است.

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