الگوریتم Trep یکی از ساختارهای دادهای است که برای ذخیرهسازی و بازیابی دادهها به صورت مؤثر استفاده میشود. این الگوریتم ترکیبی از دو مفهوم درخت دودویی جستجو (Binary Search Tree) و هیپ (Heap) است و از این رو، به عنوان Treap (Tree + Heap) شناخته میشود. 📚🌟
💡 ویژگیهای Treap
1. ساختار درخت دودویی جستجو:
در Treap، تمام قوانین درخت دودویی جستجو رعایت میشود. به این معنا که:
- مقدار تمام گرههای زیرشاخه چپ از مقدار گره والد کوچکتر است.
- مقدار تمام گرههای زیرشاخه راست از مقدار گره والد بزرگتر است.
📈 این ویژگی باعث میشود که عملیاتهایی مانند جستجو، درج و حذف مشابه درخت دودویی جستجو عمل کنند.
2. اولویت گرهها (Priority):
هر گره یک اولویت (Priority) تصادفی دریافت میکند و Treap باید بهگونهای باشد که این اولویتها خصوصیات هیپ ماکسیمم یا مینیمم را رعایت کنند.
- در هیپ ماکسیمم: اولویت گره والد همیشه بیشتر از فرزندان است.
- در هیپ مینیمم: اولویت گره والد کمتر از فرزندان است.
🎲 این اولویتها معمولا به صورت تصادفی تخصیص داده میشوند تا توازن درخت حفظ شود.
⏳ عملیات در Treap
1. درج (Insertion):
گره جدید ابتدا بر اساس مقدار (Key) در درخت دودویی جستجو قرار میگیرد. سپس، با چرخشهای لازم (Rotations) اولویتهای هیپ رعایت میشود.
🔄 این فرآیند تضمین میکند که ساختار Treap همواره متوازن بماند.
2. حذف (Deletion):
برای حذف یک گره، ابتدا باید آن را به یک برگ تبدیل کنیم. این کار با چرخش گره تا برگ شدن انجام میشود و سپس گره حذف میشود.
3. جستجو (Search):
این عملیات مشابه جستجوی درخت دودویی جستجو است و از مقایسه مقدار گرهها استفاده میکند.
📊 مزایا و کاربردها
- حفظ توازن به صورت پویا:
برخلاف درخت دودویی جستجوی عادی که ممکن است توازن خود را از دست بدهد، Treap به لطف اولویتهای تصادفی و چرخشها همواره متوازن باقی میماند. ⚖️
- کاربرد در مسائل real-time:
برای ذخیرهسازی دادهها در حافظه و پاسخ سریع به کوئریها در سیستمهایی که به عملکرد بلادرنگ نیاز دارند، بسیار مناسب است. 🕒✨
- سادگی پیادهسازی:
نسبت به سایر درختهای متوازن مانند AVL و Red-Black، پیادهسازی Treap به دلیل استفاده از اولویتهای تصادفی سادهتر است. ✅
🚀 چرا Treap مهم است؟
در واقع Treap با ترکیب دو ایده قوی (درخت دودویی جستجو و هیپ)، کارایی بالا و سادگی الگوریتمی را ارائه میدهد. این الگوریتم به ویژه در مسائلی که جستجو و بهروزرسانی مداوم دادهها مورد نیاز است، بسیار کارآمد است.
استفاده از Treap باعث میشود که زمان اجرای عملیاتها به طور متوسط O(log n) باقی بماند و در عین حال، کدنویسی آن به نسبت ساده و قابل درک باشد. 👨💻✨
#الگوریتم
👨💻 @AlgorithmDesign_DataStructuer
💡 ویژگیهای Treap
1. ساختار درخت دودویی جستجو:
در Treap، تمام قوانین درخت دودویی جستجو رعایت میشود. به این معنا که:
- مقدار تمام گرههای زیرشاخه چپ از مقدار گره والد کوچکتر است.
- مقدار تمام گرههای زیرشاخه راست از مقدار گره والد بزرگتر است.
📈 این ویژگی باعث میشود که عملیاتهایی مانند جستجو، درج و حذف مشابه درخت دودویی جستجو عمل کنند.
2. اولویت گرهها (Priority):
هر گره یک اولویت (Priority) تصادفی دریافت میکند و Treap باید بهگونهای باشد که این اولویتها خصوصیات هیپ ماکسیمم یا مینیمم را رعایت کنند.
- در هیپ ماکسیمم: اولویت گره والد همیشه بیشتر از فرزندان است.
- در هیپ مینیمم: اولویت گره والد کمتر از فرزندان است.
🎲 این اولویتها معمولا به صورت تصادفی تخصیص داده میشوند تا توازن درخت حفظ شود.
⏳ عملیات در Treap
1. درج (Insertion):
گره جدید ابتدا بر اساس مقدار (Key) در درخت دودویی جستجو قرار میگیرد. سپس، با چرخشهای لازم (Rotations) اولویتهای هیپ رعایت میشود.
🔄 این فرآیند تضمین میکند که ساختار Treap همواره متوازن بماند.
2. حذف (Deletion):
برای حذف یک گره، ابتدا باید آن را به یک برگ تبدیل کنیم. این کار با چرخش گره تا برگ شدن انجام میشود و سپس گره حذف میشود.
3. جستجو (Search):
این عملیات مشابه جستجوی درخت دودویی جستجو است و از مقایسه مقدار گرهها استفاده میکند.
📊 مزایا و کاربردها
- حفظ توازن به صورت پویا:
برخلاف درخت دودویی جستجوی عادی که ممکن است توازن خود را از دست بدهد، Treap به لطف اولویتهای تصادفی و چرخشها همواره متوازن باقی میماند. ⚖️
- کاربرد در مسائل real-time:
برای ذخیرهسازی دادهها در حافظه و پاسخ سریع به کوئریها در سیستمهایی که به عملکرد بلادرنگ نیاز دارند، بسیار مناسب است. 🕒✨
- سادگی پیادهسازی:
نسبت به سایر درختهای متوازن مانند AVL و Red-Black، پیادهسازی Treap به دلیل استفاده از اولویتهای تصادفی سادهتر است. ✅
🚀 چرا Treap مهم است؟
در واقع Treap با ترکیب دو ایده قوی (درخت دودویی جستجو و هیپ)، کارایی بالا و سادگی الگوریتمی را ارائه میدهد. این الگوریتم به ویژه در مسائلی که جستجو و بهروزرسانی مداوم دادهها مورد نیاز است، بسیار کارآمد است.
استفاده از Treap باعث میشود که زمان اجرای عملیاتها به طور متوسط O(log n) باقی بماند و در عین حال، کدنویسی آن به نسبت ساده و قابل درک باشد. 👨💻✨
#الگوریتم
👨💻 @AlgorithmDesign_DataStructuer
دوره کوتاه "Pretraining LLMs" که با همکاری upstageai توسعه داده شده است.
این دوره شامل مباحثی مانند pretraining from scratch، ادامه pretraining روی دادههای سفارشی و نحوه استفاده از مدلهای کوچکتر و open-source برای کاهش هزینهها میباشد.
این دوره را به صورت رایگان ببینید:
https://hubs.la/Q02YFKyx0
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
این دوره شامل مباحثی مانند pretraining from scratch، ادامه pretraining روی دادههای سفارشی و نحوه استفاده از مدلهای کوچکتر و open-source برای کاهش هزینهها میباشد.
این دوره را به صورت رایگان ببینید:
https://hubs.la/Q02YFKyx0
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
روی مدلهای بینایی-زبانی (Vision Language Models - VLMs) حساب ویژهای باز کنید.
با انتشار Llama 3.2 و ColQwen2، مدلهای چندوجهی (Multimodal) روزبهروز محبوبتر میشوند.
مدلهای VLM مدلهایی چندوجهی هستند که قابلیت کار با دو مد تصویر و متن را دارند:
ورودی: تصویر و متن
خروجی: متن
این مدلها در کاربردهای زیادی از جمله پاسخدهی به سوالات بصری یا درک اسناد (مانند کاربرد ColQwen2) مورد استفاده قرار میگیرند.
نحوه عملکرد در پشت صحنه
چالش اصلی در مدلهای VLM، یکپارچهسازی نمایشهای تصویر و متن است.
برای این منظور، معماری معمول یک VLM شامل اجزای زیر است:
- رمزگذار تصویر (Image Encoder) مانند CLIP یا SigLIP
-در واقع Embedding Projector برای همتراز کردن نمایشهای تصویر و متن
- رمزگشای متن (Text Decoder) مانند Vicuna یا Gemma
http://huggingface.co/blog/vlms
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
با انتشار Llama 3.2 و ColQwen2، مدلهای چندوجهی (Multimodal) روزبهروز محبوبتر میشوند.
مدلهای VLM مدلهایی چندوجهی هستند که قابلیت کار با دو مد تصویر و متن را دارند:
ورودی: تصویر و متن
خروجی: متن
این مدلها در کاربردهای زیادی از جمله پاسخدهی به سوالات بصری یا درک اسناد (مانند کاربرد ColQwen2) مورد استفاده قرار میگیرند.
نحوه عملکرد در پشت صحنه
چالش اصلی در مدلهای VLM، یکپارچهسازی نمایشهای تصویر و متن است.
برای این منظور، معماری معمول یک VLM شامل اجزای زیر است:
- رمزگذار تصویر (Image Encoder) مانند CLIP یا SigLIP
-در واقع Embedding Projector برای همتراز کردن نمایشهای تصویر و متن
- رمزگشای متن (Text Decoder) مانند Vicuna یا Gemma
http://huggingface.co/blog/vlms
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
OmniGen: Unified Image Generation
Paper: https://arxiv.org/pdf/2409.11340v1.pdf
Code: https://github.com/vectorspacelab/omnigen
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Paper: https://arxiv.org/pdf/2409.11340v1.pdf
Code: https://github.com/vectorspacelab/omnigen
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
کتاب هوش مصنوعی راسل.pdf
19.9 MB
📚 کتاب هوش مصنوعی راسل
✨ این کتاب یکی از منابع اصلی درس هوش مصنوعی در دانشگاههای معتبر است و مطالعه آن برای دانشجویان این حوزه بسیار توصیه میشود. همچنین، داوطلبان کنکور ارشد اگر زمان کافی داشته باشند، با مطالعه این کتاب میتوانند دانش عمیقتری به دست آورند که در موفقیتشان تأثیرگذار خواهد بود.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
✨ این کتاب یکی از منابع اصلی درس هوش مصنوعی در دانشگاههای معتبر است و مطالعه آن برای دانشجویان این حوزه بسیار توصیه میشود. همچنین، داوطلبان کنکور ارشد اگر زمان کافی داشته باشند، با مطالعه این کتاب میتوانند دانش عمیقتری به دست آورند که در موفقیتشان تأثیرگذار خواهد بود.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
حل المسائل هوش مصنوعی کتاب راسل.pdf
4.6 MB
📘 حلالمسائل کتاب هوش مصنوعی راسل
✅ بهرهگیری از حلالمسائل کتابهای مرجع، بهویژه کتاب راسل، میتواند برای داوطلبان کنکور کارشناسی ارشد بسیار مفید باشد و به درک عمیقتر مفاهیم کمک کند.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
✅ بهرهگیری از حلالمسائل کتابهای مرجع، بهویژه کتاب راسل، میتواند برای داوطلبان کنکور کارشناسی ارشد بسیار مفید باشد و به درک عمیقتر مفاهیم کمک کند.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
🐍 Python from Scratch
📚 ارائه شده توسط دانشگاه واترلو
اگر به دنبال یادگیری برنامهنویسی پایتون از پایه هستید، این دوره یکی از بهترین انتخابهاست. دورهای جامع که توسط دانشگاه واترلو طراحی شده و تمام مبانی مورد نیاز برای شروع برنامهنویسی به زبان پایتون را پوشش میدهد.
مباحث عبارت اند از:
0. Introduction
1. First steps
2. Built-in functions
3. Storing and using information
4. Creating functions
5. Booleans
6. Branching
7. Building better programs
8. Iteration using while
9. Storing elements in a sequence
10. Iteration using for
11. Bundling information into objects
12. Structuring data
13. Recursion
https://open.cs.uwaterloo.ca/python-from-scratch/
🎯 مناسب برای مبتدیان و حتی کسانی که میخواهند دانش خود را تقویت کنند!
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
📚 ارائه شده توسط دانشگاه واترلو
اگر به دنبال یادگیری برنامهنویسی پایتون از پایه هستید، این دوره یکی از بهترین انتخابهاست. دورهای جامع که توسط دانشگاه واترلو طراحی شده و تمام مبانی مورد نیاز برای شروع برنامهنویسی به زبان پایتون را پوشش میدهد.
مباحث عبارت اند از:
0. Introduction
1. First steps
2. Built-in functions
3. Storing and using information
4. Creating functions
5. Booleans
6. Branching
7. Building better programs
8. Iteration using while
9. Storing elements in a sequence
10. Iteration using for
11. Bundling information into objects
12. Structuring data
13. Recursion
https://open.cs.uwaterloo.ca/python-from-scratch/
🎯 مناسب برای مبتدیان و حتی کسانی که میخواهند دانش خود را تقویت کنند!
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Algorithms.pdf
2.6 MB
کتاب "Algorithms Notes for Professionals" یکی از بهترین منابعی هست که تاکنون در حوزه الگوریتم مطالعه کردهام! 📘
این کتاب نهتنها توضیحات جامع و کاربردی ارائه میدهد، بلکه با نمونهکدهای متنوع همراه است. 💻✨
مطالعه این کتاب به شما کمک میکند مفاهیم پیچیده را بهراحتی درک کنید و دید عمیقتری نسبت به الگوریتمها پیدا کنید. 🧠📈
اگر به یادگیری الگوریتم علاقهمندید یا قصد تقویت مهارتهای خود را در این زمینه دارید، این کتاب به شدت توصیه میشود! 🔥🎯
حتماً مطالعهاش را در برنامه خود قرار دهید. ✅📖
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
این کتاب نهتنها توضیحات جامع و کاربردی ارائه میدهد، بلکه با نمونهکدهای متنوع همراه است. 💻✨
مطالعه این کتاب به شما کمک میکند مفاهیم پیچیده را بهراحتی درک کنید و دید عمیقتری نسبت به الگوریتمها پیدا کنید. 🧠📈
اگر به یادگیری الگوریتم علاقهمندید یا قصد تقویت مهارتهای خود را در این زمینه دارید، این کتاب به شدت توصیه میشود! 🔥🎯
حتماً مطالعهاش را در برنامه خود قرار دهید. ✅📖
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
مقاله "On the Surprising Effectiveness of Attention Transfer for Vision Transformers" به بررسی روشی مؤثر برای بهبود عملکرد *Vision Transformers (ViTs)* میپردازد. این روش با انتقال توجه از مدلهای بزرگتر به مدلهای کوچکتر، ضمن کاهش هزینههای محاسباتی، دقت و کارایی مدل را افزایش میدهد. مطالعه این مقاله برای علاقهمندان به بهینهسازی مدلهای یادگیری عمیق توصیه میشود. 🌟
Paper : https://arxiv.org/abs/2411.09702
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Paper : https://arxiv.org/abs/2411.09702
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
📕 آموزش ساده مفاهیم پایه پایتون!
📷 دوره: AI Python for Beginners
👨💻 مدرس: Andrew Ng
در سری دورههای #AIPythonforBeginners یاد میگیرید که چگونه با استفاده از تابع
🎓 ثبتنام رایگان:
https://learn.deeplearning.ai/courses/ai-python-for-beginners
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
📷 دوره: AI Python for Beginners
👨💻 مدرس: Andrew Ng
در سری دورههای #AIPythonforBeginners یاد میگیرید که چگونه با استفاده از تابع
type()
انواع دادهای مثل *strings*، *integers* و *floats* را تشخیص دهید و پایهای محکم برای مسیر یادگیری هوش مصنوعی خود بسازید. 🎓 ثبتنام رایگان:
https://learn.deeplearning.ai/courses/ai-python-for-beginners
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
هیپ فیبوناچی ✨🌟
هیپ فیبوناچی (Fibonacci Heap) یک ساختار داده پیشرفته و کارآمد است که برای بهینهسازی عملیات روی صفهای اولویتدار طراحی شده است. این ساختار توسط مایکل فردمان و رابرت تارجان معرفی شد و در الگوریتمهایی مثل دایکسترا یا پرایم بسیار کاربرد دارد. 🚀
📚 ویژگیهای کلیدی هیپ فیبوناچی
خاصیت هیپ:
مقدار هر گره کوچکتر یا مساوی مقادیر فرزندانش است (برای Min-Heap). 📉
ساختار چند درختی:
شامل مجموعهای از درختهاست که ریشههایشان در یک لیست پیوندی دایرهای قرار دارند. 🔗
انعطافپذیری در عملیات:
برخی عملیاتها مانند ادغام یا کاهش کلید بهینهتر از سایر هیپها انجام میشوند. 🛠
🌟 مزایا
بسیار مناسب برای کاهش کلید مکرر: کاهش زمان در عملیاتهایی مانند الگوریتم دایکسترا. 🕒
ادغام سریع: ساختار لیست پیوندی دایرهای امکان ادغام سریع را فراهم میکند. 🔀
🛠 کاربردها
الگوریتم دایکسترا: برای یافتن کوتاهترین مسیر. 🛤
الگوریتم پرایم: برای پیدا کردن حداقل درخت پوشا. 🌳
سیستمهای اولویتدار و شبکهها: برای مدیریت دادهها و اولویتها. 📡
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
هیپ فیبوناچی (Fibonacci Heap) یک ساختار داده پیشرفته و کارآمد است که برای بهینهسازی عملیات روی صفهای اولویتدار طراحی شده است. این ساختار توسط مایکل فردمان و رابرت تارجان معرفی شد و در الگوریتمهایی مثل دایکسترا یا پرایم بسیار کاربرد دارد. 🚀
📚 ویژگیهای کلیدی هیپ فیبوناچی
خاصیت هیپ:
مقدار هر گره کوچکتر یا مساوی مقادیر فرزندانش است (برای Min-Heap). 📉
ساختار چند درختی:
شامل مجموعهای از درختهاست که ریشههایشان در یک لیست پیوندی دایرهای قرار دارند. 🔗
انعطافپذیری در عملیات:
برخی عملیاتها مانند ادغام یا کاهش کلید بهینهتر از سایر هیپها انجام میشوند. 🛠
🌟 مزایا
بسیار مناسب برای کاهش کلید مکرر: کاهش زمان در عملیاتهایی مانند الگوریتم دایکسترا. 🕒
ادغام سریع: ساختار لیست پیوندی دایرهای امکان ادغام سریع را فراهم میکند. 🔀
🛠 کاربردها
الگوریتم دایکسترا: برای یافتن کوتاهترین مسیر. 🛤
الگوریتم پرایم: برای پیدا کردن حداقل درخت پوشا. 🌳
سیستمهای اولویتدار و شبکهها: برای مدیریت دادهها و اولویتها. 📡
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming
Paper: https://arxiv.org/pdf/2408.16725v2.pdf
Code: https://github.com/gpt-omni/mini-omni
Dataset: LibriSpeech
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Paper: https://arxiv.org/pdf/2408.16725v2.pdf
Code: https://github.com/gpt-omni/mini-omni
Dataset: LibriSpeech
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Deep Learning.zip
11.3 MB
اسلایدهای یادگیری_عمیق (Deep Learning)
دکترسیدناصررضوی
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
دکترسیدناصررضوی
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
10 تا از بهترین دوره های یادگیری ماشین در Coursera که باید در سال 2024 از آن خبر داشته باشید.
Link:https://www.mltut.com/best-courses-for-machine-learning-on-coursera/
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Link:https://www.mltut.com/best-courses-for-machine-learning-on-coursera/
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
۲۳ نوامبر، روز جهانی فیبوناچی🥳
فیبوناچی چیست؟
اعداد فیبوناچی در هستی کشف شده اند. در قسمت لاک حلزون از زاویه فی استفاده شده است. شاخ و برگ درخت ها به صورت تصادفی در جهات مختلف رشد نمی کنند. اندازه گیری زاویه شاخه ها نشان می دهد که در الگوی رشد آن ها، نظمی شبیه دنباله فیبوناچی و نسبت طلایی وجود دارد.
سری فیبوناچی
اگر به ریاضیات علاقه داشته باشید، حتما با "سری فیبوناچی" آشنا هستید. سری فیبوناچی رشته ای از اعداد است که در آن اعداد غیر از دو عدد اول با محاسبه ی مجموع دو عدد قبلی ایجاد میشوند.
اولین اعداد سری فیبوناچی عبارتاند از:
۰٬ ۱٬ ۱٬ ۲٬ ۳٬ ۵٬ ۸٬ ۱۳٬ ۲۱٬ ۳۴٬ ۵۵٬ ۸۹٬ ۱۴۴٬ ۲۳۳٬ ۳۷۷٬ ۶۱۰٬ ۹۸۷٬ ۱۵۹۷٬ ۲۵۸۴٬، ...
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
فیبوناچی چیست؟
اعداد فیبوناچی در هستی کشف شده اند. در قسمت لاک حلزون از زاویه فی استفاده شده است. شاخ و برگ درخت ها به صورت تصادفی در جهات مختلف رشد نمی کنند. اندازه گیری زاویه شاخه ها نشان می دهد که در الگوی رشد آن ها، نظمی شبیه دنباله فیبوناچی و نسبت طلایی وجود دارد.
سری فیبوناچی
اگر به ریاضیات علاقه داشته باشید، حتما با "سری فیبوناچی" آشنا هستید. سری فیبوناچی رشته ای از اعداد است که در آن اعداد غیر از دو عدد اول با محاسبه ی مجموع دو عدد قبلی ایجاد میشوند.
اولین اعداد سری فیبوناچی عبارتاند از:
۰٬ ۱٬ ۱٬ ۲٬ ۳٬ ۵٬ ۸٬ ۱۳٬ ۲۱٬ ۳۴٬ ۵۵٬ ۸۹٬ ۱۴۴٬ ۲۳۳٬ ۳۷۷٬ ۶۱۰٬ ۹۸۷٬ ۱۵۹۷٬ ۲۵۸۴٬، ...
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer