Algorithm design & data structureچ
رفتن به کانال در Telegram
این کانال برای تمامی علاقهمندان به کامپیوتر، مخصوصاً حوزه ساختمان دادهها و الگوریتمها، مفید می باشد. آشنایی با ریاضیات مقدماتی، برنامهنویسی مقدماتی و پیشرفته و همچنین شیگرایی میتواند در درک بهتر مفاهیم این درس کمک کند. 👨💻Admin👉 @Se_mohamad
نمایش بیشتر6 456
مشترکین
+124 ساعت
-127 روز
-4830 روز
آرشیو پست ها
اولین سوالی که ممکن است پیش بیاید این است که شبکه های عصبی چیست؟
شبکه عصبی مصنوعی (ANN) سیستمی است که مبتنی بر شبکه عصبی بیولوژیکی مانند مغز است. مغز تقریباً 100 میلیارد نورون دارد که از طریق سیگنال های الکتروشیمیایی با یکدیگر ارتباط برقرار می کنند. نورون ها از طریق اتصالاتی به نام سیناپس به هم متصل می شوند. هر نورون هزاران ارتباط با نورون های دیگر دریافت می کند و دائماً سیگنال های دریافتی را برای رسیدن به بدن سلولی دریافت می کند. اگر مجموع سیگنال های حاصل از آستانه معینی فراتر رود، پاسخی از طریق آکسون ارسال می شود. ANN تلاش می کند تا آینه محاسباتی شبکه عصبی بیولوژیکی را بازسازی کند، اگرچه قابل مقایسه نیست زیرا تعداد و پیچیدگی نورون ها و موارد استفاده شده در یک شبکه عصبی بیولوژیکی چندین برابر بیشتر از شبکه های عصبی مصنوعی است.
وظیفه شبکه عصبی این است که بیاید برای مسائلی که فرمول براشون تعریف شده بیاد و روابط بین فاکتورهای مختلف را ایجاد کند ولو به صورت نسبی و یا همراه با خطا.پ
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
فرض کنید عنصري در آرایه n عنصري، بیش ازn/3 بار تکرار شده باشد. بهترین الگـوریتم براي یافتن این عنصر با هزینه حافظه مصرفی (1)O داراي چه هزینه زمانی است؟
یکی دیگر از الگوریتم های جست و جوی ناآگاهانه که میخواهیم در مورد آن صحبت کنیم جست جوی هزینه یکنواخت (UCS) می باشد در این جستجو هر بار کم هزینه ترین گره گسترش نیافته را گسترش میدهد. در این الگوریتم از یک صف اولویت دارم استفاده می شود.
نکته:این الگوریتم کامل می باشد اگر هزینه تمان عمل هایی که در ان انجام میدهیم مثبت باشد.
نکته: این الگوریتم بهینه می باشد اگر هزینه تمام عمل ها مثبت باشد.
پیچدگی زمانی و مکانی این الگوریتم به صورت نمایی میباشد.
یکی دیگر از نکاتی که باید به آن توجه کرد این است که این الگوریتم در تمام جهت ها گسترش پیدا میکند و بدون توجه به هدف نودهای خود را گسترش میدهد.
📣👨💻 @AlgorithmDesign_DataStructuer
💢دوره آنلاین جامع علم داده Data Scientist
⬅️شروع از 21 دی
⬅️روزهای پنج شنبه ساعت 8:30 الی 13:30
⬅️مدرس: وحید قربانی
پیش نیاز: آشنایی با مفاهیم برنامه نویسی
👀سرفصل دوره + ثبت نام
https://b2n.ir/f77391
📞تلفن ثبت نام: 02188738394
📣هر سوالی داری از @sematec بپرس
✅لذت پیشرفت را تجربه کنیم
🔰سماتک، مرکز آموزشهای تخصصی IT
🚀@sematecofficial
تابع به دست آمده برای سوال بالا کدام یک از گزینه های زیر می باشد؟
در یک زمستان سرد، خرس قطبی n قطعه گوشت دقیقاً به اندازههاي 1 تا n را در غاري ذخیره کرده است. او هر روز یکی از این قطعه گوشتها را بـه صـورت تـصادفی انتخـاب میکند. اگر اندازهي گوشت عدد فردي بود، آن را کاملاً میخورد. اگر زوج بود، آن را دقیقاً نصف میکند، یک نصف آن را میخورد و نصف دیگر را مجدداً در غار قرار مـیدهـد. اگـر گوشتی موجود نباشد، خرس میمیرد. با این الگوریتم، براي nهاي خیلی بـزرگ روزهـاي باقیمانده از عمر خرس ما تابع کدام یک از گزینه ها خواهد بود؟
ماتریس مجاورت:
در واقع ماتریس مجاورت یک بردار n در n می باشد که اگر یالی بین i و j وجود داشته باشد 1 می شود در غیر این صورت 0.
یک مثال برای درک بهتر بخواهیم بزنیم این است که در مثال بالا 4 نود داریم پس باید بردار 4 در 4 بکشیم همان طور که میبینید V0 و V0 یالی بین آن ها نیست پس صفر قرار می دهیم ولی اگر بین V0 و V1 را ببینید یالی وجود دارد پس آن را 1 قرار میدهیم و به همین صورت ادامه میدهیم.
📣👨💻 @AlgorithmDesign_DataStructuer
یکی دیگر از الگوریتم های جستجوی ناآگاهانه افزایش عمق به صورت تکراری می باشد. در این الگوریتم میایم DFS را با عمق یک اجرا می کنیم اگر جواب پیدا نشد میایم DFS را با عمق دو اجرا میکنیم باز اگر به جواب نرسیدیم عمق بعدی را پیمایش میکنیم تا به هدف برسیم.
در واقع این الگوریتم ترکیبی است از DFS و BFS که میایم یک عمق پیمایش میکند و در اون عمق سطحی هم پیمایش میکند. در واقع امدیم از پیچیدگی زمانی BFS و پیچیدگی مکانی DFS که هر کدام در این پیچیدگی ها خوب هستند استفاده کردیم تا به یک الگوریتم بهینه و کاملی برسیم.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
حداکثر تعداد دوران در درج یک عنصر در یک درخت قرمز سیاه با n عنصر برابر است با:
به درست آوردن پیچیدگی زمانی قطعه کد با استفاده از جدول
📣👨💻 @AlgorithmDesign_DataStructuer
خواص الگوریتم اول عمق (DFS)
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
خب نکته ایی که در این سوال هست این است در حلقه فور اول شرط خاتمه را 1000000 قرار دادم که این نشان دهنده ای ی; عدد ثابت می باشد که میتوان پیچیدگی خودش و هر چیزی که در داخل حلقه اول قرار دارد را 1 گرفت پس میتوان نوشت :
T(n)=O(1)
int sum = N;
for (int i = 0; i < 1000000; i++) {
for (int j = 1; j <= i; j++) { sum += N; } for (int j = 1; j <= i; j++) { sum += N; } for (int j = 1; j <= i; j++) { sum += N; } } System.out.println(sum); پیچیدگی زمانی کد بالا کدام گزینه می باشد؟
آرایه مجموعه ای از عناصر داده مشابه است که در مکان های حافظه به هم پیوسته ذخیره شده و با استفاده از یک نام یا فهرست مشترک به آنها دسترسی پیدا می کند. به عبارت دیگر، آرایه مجموعه ای از متغیرهای هم نوع داده است که با یک نام به آنها دسترسی پیدا می کند.
📣👨💻 @AlgorithmDesign_DataStructuer
Depth-first search (DFS)
یکی دیگر از جستجو های ناآگاهانه که میخواهیم در مورد آن صحبت کنیم جستجوی عمقی می باشد. این الگوریتم ناآگاهانه به این صورت عمل میکند که در جهت گسترش بده که عمیق ترین گره در آن وجود داشته باشد. این الگوریتم به صورت LIFO می باشد یعنی با استفاده از پشته قابل پیاده سازی می باشد. این الگوریتم کامل نمی باشد یعنی برای پیدا کردن راه حل برای رسیدن به هدف مورد نظر آن را پیدا نکند و این خیلی بد نظر می اید.
در مورد بهینه بودن هم این الگوریتم بهینه نمی باشد یعنی اگر راه حل را نیز پیدا کند با کمترین هزینه به هدف نمی رسد و هزینه زیادی را برای پیدا کردن هدف صرف میکند.
پیچیدگی آن نمایی می باشد زیرا باید تا آخرین عمق برای پیدا کردن هدف برود.
از نظر پیچیدگی مکانی به صرفه می باشد زیرا پیچیدگی مکانی آن خطی می باشد.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
T(n)=T(n/8)+3b
T(1)=1
پیچیدگی رابطه بازگشتی بالا کدام یک از گزینه ها می باشد؟
توابعی که میتوان صف از آن ها استفاده کرد.
📣👨💻 @AlgorithmDesign_DataStructuer
Breadth-First-Search-Algorithm
اولین الگوریتم جستجوی ناآگانه که در مورد آن صحبت میکنیم جستجوی سطحی می باشد. این الگوریتم هر بار سطحی ترین نود را گسترش می دهد. نحوه ی پیاده سازی آن صف می باشد(FIFO) می باشد به این معنی که هرچی که اول امد همون اول هم خارج بشه و نود جدید به آخر صف نیز اضافه می شود.
خب میخواهیم در مورد کامل بودن این الگوریتم حرف بزنیم. این الگوریتم کامل می باشد به این معنی که در صورت وجود راه حل, پیدا کردن راه حل را تضمین میکند بله درصورتی که میزان گسترش محدود باشد.
این الگوریتم تقریبا بهینه می باشد به این معنی که همراه کم هزینه ترین مسیر را پیدا میکند که تقریبا در این الگوریتم اتفاق می افتد.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
