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

👨‍💻Admin👉 @Se_mohamad
Download Telegram
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
ML Concepts (1).pdf
350 KB
یادگیری ماشین در عرض 10 دقیقه! 🚀🤖

آیا می‌خواهید در زمان کم، دنیای یادگیری ماشین را بشناسید؟ 🌟 با ما همراه باشید تا مفاهیم پایه‌ای و کاربردی یادگیری ماشین را به طور سریع و ساده یاد بگیرید. 📊💡 این فرصت را از دست ندهید و مهارت‌های جدید را در کمترین زمان ممکن کسب کنید! 📈🎯

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3
🌟 ویدیو جلسات کلاس یادگیری ماشین با دکتر پالهنگ 🌟
🎓 دانشگاه صنعتی اصفهان

🔗 برای مشاهده و دسترسی به جلسات، لطفاً به لینک زیر مراجعه کنید:

https://nikan.iut.ac.ir/rooms/maz-duh-s7x-dqx/join


#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
🙏6
data structure.pdf
1.3 MB
🎓📚 هدف از تدوین این مجموعه بررسی نکات مهم مربوط به سوالات کنکور درس ساختمان داده در سال‌های اخیر است. 🚀📊

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
📉🧠 Decreasing Gradient

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

شیب کاهشی با ارزیابی نرخ تغییرات تابع خطا نسبت به پارامترهای مدل، قدم به قدم پارامترها را بهبود می‌بخشد تا مدل به دقت بالاتری برسد.

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4👌1
معرفی شبکه‌های عصبی در یادگیری عمیق

🤖 شبکه های عصبی بلوک های ساختمانی اساسی الگوریتم های یادگیری عمیق هستند.

🧠 شبکه عصبی نوعی الگوریتم یادگیری ماشینی است که برای شبیه سازی رفتار مغز انسان طراحی شده است.

🔗 این گره از گره های به هم پیوسته که به عنوان نورون های مصنوعی نیز شناخته می شوند، تشکیل شده است که در لایه هایی سازماندهی شده اند.

در یادگیری عمیق، این شبکه‌ها به کامپیوترها کمک می‌کنند تا الگوها و روابط پیچیده را از داده‌ها شناسایی و یاد بگیرند.

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

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
🙏3
معرفی تابعlog^* (Log-Star) در ساختمان داده‌

📐 تابعlog^* چیست؟

تابع log^* یا Log-Star یک تابع ریاضی است که در آن log^*(n) تعداد دفعاتی است که باید تابع لگاریتم را به صورت مکرر روی n اعمال کنیم تا نتیجه به عددی کمتر یا مساوی 1 برسد. به عبارت دیگر، log^*(n) تعداد دفعاتی است که باید تابع لگاریتم را تکرار کنیم تا به عدد 1 برسیم.

مثال‌ها:

برای درک بهتر تابعlog^*، به مثال‌های زیر توجه کنید:

n = 16
- log(16) = 4
- log(4) = 2
- log(2) = 1


پس، log^*(16) = 3 چون سه بار اعمال تابع لگاریتم طول کشید تا به عدد 1 برسیم.


کاربردهای تابعlog^* :

این تابع در تحلیل الگوریتم‌ها و ساختمان داده‌ها به خصوص در زمینه‌هایی که زمان پیچیدگی بسیار مهم است، مورد استفاده قرار می‌گیرد. یکی از کاربردهای معروف این تابع در الگوریتم‌های Union-Find است.

Union-Find

یک ساختمان داده برای مدیریت مجموعه‌های جدا از هم (disjoint sets) است. این ساختمان داده دو عملیات اصلی دارد: union (ادغام دو مجموعه) و find (پیدا کردن نماینده یا رهبر مجموعه). زمان اجرای این عملیات‌ها بهینه‌سازی شده است تا با استفاده از تابع log^* زمان اجرای بسیار کارآمدی داشته باشند.

چرا تابعlog^* مهم است؟

- زمان اجرای بسیار کم: تابع log^* به دلیل رشد بسیار کندی که دارد، حتی برای اعداد بسیار بزرگ نیز مقدار کوچکی دارد. این ویژگی باعث می‌شود که الگوریتم‌هایی که شامل این تابع هستند، زمان اجرای بسیار کارآمدی داشته باشند.
- 📚 کاربردهای گسترده: از این تابع در مسائل مختلف در علوم کامپیوتر و تئوری الگوریتم‌ها استفاده می‌شود، به خصوص در مسائل مربوط به کارایی و بهینه‌سازی.

تابع log^* یکی از ابزارهای مهم در تحلیل و طراحی الگوریتم‌های کارآمد است و درک آن می‌تواند به بهبود عملکرد الگوریتم‌ها و ساختمان داده‌ها کمک شایانی کند.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3🔥2
Artificial Intelligence - Dr.Ebadzade ( Fariba Hashemi ).pdf
80.2 MB
📘 جزوه هوش مصنوعی

👨‍🏫 استاد عبادزاده

🏫 دانشگاه صنعتی امیرکبیر

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
def power(base, exponent):

if exponent == 0:
return 1
if exponent == 1:
return base

half_power = power(base, exponent // 2)

if exponent % 2 == 0:
return half_power * half_power
else:
return base * half_power * half_power


base = 2
exponent = 3
result = power(base, exponent)
print(f"{base} to the power of {exponent} is {result}")

📌 محاسبه توان به روش تقسیم و غلبه

برای محاسبه توان با استفاده از روش تقسیم و غلبه (Divide and Conquer)، می‌توان از الگوریتم سریع توان‌دهی استفاده کرد. این روش به صورت بازگشتی توان را با پیچیدگی زمانیO(log n) محاسبه می‌کند.

💡 روش سریع توان‌دهی به صورت بازگشتی:

1. مورد پایه: هر عددی به توان 0 برابر با 1 است.
2. مورد پایه: هر عددی به توان 1 برابر با خودش است.
3. حالت بازگشتی: تقسیم نما بر 2
- اگر نما زوج باشد، نتیجه برابر با مجذور نیم توان است.
- اگر نما فرد باشد، نتیجه برابر با پایه ضربدر مجذور نیم توان است.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
ORB-SLAM :

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

🌍🔍

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

🤖🛠

محققان دانشگاه زاراگوزا با توسعه‌ی ORB-SLAM، گام مهمی در پیشرفت تکنولوژی‌های مرتبط با پردازش تصویر برداشته‌اند. این پروژه به عنوان یکی از بهترین سیستم‌های SLAM (Simultaneous Localization and Mapping) شناخته شده و توجه بسیاری از متخصصان و محققان این حوزه را به خود جلب کرده است.

🌐اصلاعات بیشتر :

ORB-SLAM 3: A Tool for 3D Mapping and Localization

Source Code

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
قوانین مهم لگاریتم‌:

در درس ساختمان و طراحی، قوانین لگاریتم‌ها اهمیت ویژه‌ای دارند. این قوانین ابزارهای اساسی برای تحلیل و حل مسائل پیچیده در این حوزه هستند.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👌3
Visualization.pdf
5.3 MB
📊 در این پی‌دی‌اف، شما با انواع رسم نمودار در پایتون آشنا می‌شوید و می‌آموزید که برای رسم داده‌های خود از کدام نوع نمودار استفاده کنید. 🎨

📈 این راهنما به شما دیدگاهی جامع می‌دهد تا بتوانید با انتخاب بهترین ابزار، داده‌های خود را به شکل بصری و جذاب نمایش دهید. 📉

#هوش_مصنوعی
📣👨‍💻 @AlgorithmDesign_DataStructuer
🙏2👍1
📊 تشخیص عدد متفاوت در آرایه تکراری با استفاده از XOR 🧮

سلام دوستان! امروز می‌خواهیم یک مسئله جذاب از دنیای برنامه‌نویسی رو بررسی کنیم. فرض کنید یک آرایه از اعداد داریم که بیشترشون تکراری هستن و فقط یک عدد هست که متفاوت و تنهاست. چطوری می‌تونیم اون عدد رو پیدا کنیم؟ 🤔

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

اگر تمام اعداد رو با هم XOR کنیم، اعداد تکراری همدیگر رو خنثی می‌کنن و در نهایت عددی که تنها یک بار ظاهر شده باقی می‌مونه. 🎯

الگوریتم:
1. یک متغیر به نام unique رو با مقدار 0 مقداردهی اولیه کنید. 💡
2. تمام عناصر آرایه رو با unique XOR کنید. 🔄
3. مقدار unique در انتهای عملیات، همون عدد متفاوت خواهد بود. 🥇


def find_unique(arr):
unique = 0
for num in arr:
unique ^= num
return unique

# مثال
arr = [2, 3, 5, 4, 5, 3, 4]
print(find_unique(arr)) # خروجی: 2


در این مثال، arr آرایه‌ای از اعداد هست که در اون عدد 2 تنها یک بار ظاهر شده و بقیه اعداد تکراری هستن. با استفاده از عملگر XOR، تمام اعداد تکراری همدیگر رو خنثی می‌کنن و در نهایت عدد 2 باقی می‌مونه که به عنوان خروجی برگردونده می‌شه. 🎉

پیچیدگی:
- پیچیدگی زمانی: (O(n چون باید تمام عناصر آرایه رو یک بار پیمایش کنیم.
- پیچیدگی فضایی: O(1) چون از هیچ فضای اضافی استفاده نمی‌کنیم. 💾

این روش به دلیل سادگی و کارایی، یکی از بهترین راه‌ها برای حل این مسئله است.

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍10👌1
🔍 مرتب‌سازی درجا (In-Place Sort) نوعی از الگوریتم‌های مرتب‌سازی است که بدون نیاز به فضای اضافی زیاد، عناصر را در همان آرایه ورودی مرتب می‌کند. به عبارت دیگر، فضای اضافی مورد نیاز آن O(1)است.

🌟 مثال‌های مرتب‌سازی درجا:
- مرتب‌سازی حبابی (Bubble Sort) 🔄
- مرتب‌سازی انتخابی (Selection Sort)
- مرتب‌سازی درج مستقیم (Insertion Sort) 📥
- مرتب‌سازی سریع (Quick Sort) ⚡️

🚫 مثال‌های غیر درجا:
- مرتب‌سازی ادغامی (Merge Sort)
- مرتب‌سازی شمارشی (Counting Sort) 📊

مرتب‌سازی‌های درجا به دلیل استفاده کم از حافظه، در محیط‌های با حافظه محدود بسیار مفید هستند. 📉

#الگوریتم
📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4🙏1
🌟 معرفی ChatHub 🌟

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

🚀 برای شروع، همین حالا از ChatHub استفاده کنید:
https://app.chathub.gg/

💬 تجربه‌ای جدید و کارآمد در مدیریت چت‌ها را از دست ندهید!

#هوش_مصنوعی

📣👨‍💻 @AlgorithmDesign_DataStructuer
🙏1