This media is not supported in your browser
VIEW IN TELEGRAM
دموی الگوریتم *A
در واقع در الگورتیم A* بیشتر در جهت هدف گسترش پیدا میکنید برای همین است که اگر ما یک هیوریستیک قابل قبول و سازگاری داشته باشید یک الگوریتم بهینه ایی برای رسیدن به هدف پیدا شده است اگر شرایطی که گفتیم بر قرار باشد.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
در واقع در الگورتیم A* بیشتر در جهت هدف گسترش پیدا میکنید برای همین است که اگر ما یک هیوریستیک قابل قبول و سازگاری داشته باشید یک الگوریتم بهینه ایی برای رسیدن به هدف پیدا شده است اگر شرایطی که گفتیم بر قرار باشد.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
😍4
مثالی از الگوریتم MAX-HEAPIFY که ابتدا آرایه A را وارد یک درخت میکنیم سپس با استفاده جابه جایی که در درخت صورت گرفته در آخر هم آرایه مرتب شده به دست می آید.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
Exams_Ai_@AlgorithmDesign_DataStructuer.rar
24.8 MB
سوالات میان ترم و پایانی هوش مصنوعی دانشگاه Toronto کانادا
اگر مشکلی در حل سوالات داشتید میتونید از ادمین کانال کمک بگیرید.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
اگر مشکلی در حل سوالات داشتید میتونید از ادمین کانال کمک بگیرید.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
اگر n عنصر نامرتب داشته باشیم میتوان k عنصر بعد از median را به صـورت مرتـب در پیچیدگی زمانی زیر چاپ کرد:
Anonymous Poll
16%
Kn
44%
K log n
25%
n + k log k
16%
n + k log n
✅برخی از تعریف ها در مورد گراف که لازم است به یاد داشته باشیم :
⬅️گراف متصل : گرافی که بین هر دو گره مسیری وجود داشته باشد را گراف متصل گویند.
⬅️گراف غیر متصل : گرافی است که حداقل بین دو گره آن هیچ مسیر وجود نداشته باشد. شرط لازم برای اینکه گرافی با n گره متصل باشد این است که حداقل 1 - n یال وجود داشته باشد.
⬅️گراف تهی : گرافی است که مجموعهای از گرهها باشد و هیچ یالی بین گرهها وجود نداشته باشد.
⬅️درجه هر گره : تعداد یالهایی که از یک گره عبور میکند را درجه آن گره گویند.
❗️تذکر : درجـه خروجی برای گرافهای جهتدار تعداد یالهای خارج شده از یک گره را نشان میدهد و درجه ورودی برای گرافهای جهتدار تعداد یالهایی که به یک گره وارد شدهاند میباشد. مجمـع درجـات گـرههـا در گرافهای بدون جهت دو برابر تعداد یالهاست و مجموع درجات ورودی یا مجموع درجات خروجی در گرافهای جهتدار تعداد یالها را نشان میدهد.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
⬅️گراف متصل : گرافی که بین هر دو گره مسیری وجود داشته باشد را گراف متصل گویند.
⬅️گراف غیر متصل : گرافی است که حداقل بین دو گره آن هیچ مسیر وجود نداشته باشد. شرط لازم برای اینکه گرافی با n گره متصل باشد این است که حداقل 1 - n یال وجود داشته باشد.
⬅️گراف تهی : گرافی است که مجموعهای از گرهها باشد و هیچ یالی بین گرهها وجود نداشته باشد.
⬅️درجه هر گره : تعداد یالهایی که از یک گره عبور میکند را درجه آن گره گویند.
❗️تذکر : درجـه خروجی برای گرافهای جهتدار تعداد یالهای خارج شده از یک گره را نشان میدهد و درجه ورودی برای گرافهای جهتدار تعداد یالهایی که به یک گره وارد شدهاند میباشد. مجمـع درجـات گـرههـا در گرافهای بدون جهت دو برابر تعداد یالهاست و مجموع درجات ورودی یا مجموع درجات خروجی در گرافهای جهتدار تعداد یالها را نشان میدهد.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
👍1👏1
⁉️شاید تا الان براتون سوال پیش آماده باشد که Bias که در فرمول شبکه های عصبی هست چه طور به وجود می آید؟
اگر به شکل بالا دقت کنید دو شکلی میبینید که یکی از آن ها عرض از مبدا (C) ندارد و یکی از آن ها دارد اگر معادله خط به صورت زیر باشد :
y = mx + c
که در آن m شیب خط و x که دیتا های ورودی می باشد میتوان آن را به این صورت بیان کرد که :
m = weight
c = bias
که میتوان نوشت :
y = weight * x + bias
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
اگر به شکل بالا دقت کنید دو شکلی میبینید که یکی از آن ها عرض از مبدا (C) ندارد و یکی از آن ها دارد اگر معادله خط به صورت زیر باشد :
y = mx + c
که در آن m شیب خط و x که دیتا های ورودی می باشد میتوان آن را به این صورت بیان کرد که :
m = weight
c = bias
که میتوان نوشت :
y = weight * x + bias
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
👍2👏1
فرض کنید که ماکزیمم – هیپ حاوي اعداد متمایز 1 تا 1023 است. حداکثر چند تا از اعداد بیشتر از 1000 میتواند در پایین ترین سطح درخت قرار گیرند؟
Anonymous Quiz
24%
10
40%
12
21%
13
14%
14
تابع هش (Hash Function) در ساختمان داده، به عنوان یکی از عناصر اصلی استفاده میشود. این تابع، ورودیهای مختلف را به یک مقدار خروجی (معمولاً یک عدد) نگاشت میکند. هدف اصلی این تابع، تولید یک مقدار هش یکتا برای هر ورودی است، به طوری که اگر دو ورودی متفاوت باشند، مقدار هش آنها نیز با احتمال بسیار زیاد متفاوت باشد.
توابع هش به طور گسترده در ساختمان دادهها مانند جدول هش (Hash Table) استفاده میشوند. در جدول هش، مقادیر ورودی (کلیدها) به عنوان ورودی به تابع هش داده میشوند و مقادیر خروجی (معمولاً اعداد صحیح) به عنوان شاخصها یا آدرسهای جایگزین در جدول هش استفاده میشوند.
یکی از ویژگیهای اصلی تابع هش، باید سریع و کارآمد باشد و باید بتواند مقدار هش را برای ورودیهای مختلف با سرعت بالا محاسبه کند. همچنین، تابع هش باید توزیع یکنواختی داشته باشد، به این معنی که برای ورودیهای مختلف، مقادیر هش به طور یکنواخت پخش شوند، تا اینکه تمامی اندازههای جدول هش برابر احتمالی برای ظاهر شدن دادهها باشند.
مثالی از یک تابع هش ساده میتواند تابع ماژول گیری باشد که میتواند عدد ورودی را بر اساس یک مقدار ثابت مانند اندازه جدول هش به مقدار هش تبدیل کند. به عنوان مثال، اگر اندازه جدول هش را ( n ) در نظر بگیریم، میتوانیم تابع هش را به صورت زیر تعریف کنیم:
h(x) = n mod x
این تابع هش، عدد ورودی ( x) را به یک عدد بین ۰ تا ( n-1 ) نگاشت میکند. این تابع هش به سرعت قابل محاسبه است و توزیع یکنواختی دارد. اما باید توجه داشت که تابع هشهای ساده مانند تابع ماژول گیری، برای برخی موارد ممکن است به دلیل توزیع ناهمگن دادهها، بهینه نباشند. در مواردی مانند این، توابع هش پیچیدهتری مانند توابع هش کریپتوگرافیکی استفاده میشوند.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
توابع هش به طور گسترده در ساختمان دادهها مانند جدول هش (Hash Table) استفاده میشوند. در جدول هش، مقادیر ورودی (کلیدها) به عنوان ورودی به تابع هش داده میشوند و مقادیر خروجی (معمولاً اعداد صحیح) به عنوان شاخصها یا آدرسهای جایگزین در جدول هش استفاده میشوند.
یکی از ویژگیهای اصلی تابع هش، باید سریع و کارآمد باشد و باید بتواند مقدار هش را برای ورودیهای مختلف با سرعت بالا محاسبه کند. همچنین، تابع هش باید توزیع یکنواختی داشته باشد، به این معنی که برای ورودیهای مختلف، مقادیر هش به طور یکنواخت پخش شوند، تا اینکه تمامی اندازههای جدول هش برابر احتمالی برای ظاهر شدن دادهها باشند.
مثالی از یک تابع هش ساده میتواند تابع ماژول گیری باشد که میتواند عدد ورودی را بر اساس یک مقدار ثابت مانند اندازه جدول هش به مقدار هش تبدیل کند. به عنوان مثال، اگر اندازه جدول هش را ( n ) در نظر بگیریم، میتوانیم تابع هش را به صورت زیر تعریف کنیم:
h(x) = n mod x
این تابع هش، عدد ورودی ( x) را به یک عدد بین ۰ تا ( n-1 ) نگاشت میکند. این تابع هش به سرعت قابل محاسبه است و توزیع یکنواختی دارد. اما باید توجه داشت که تابع هشهای ساده مانند تابع ماژول گیری، برای برخی موارد ممکن است به دلیل توزیع ناهمگن دادهها، بهینه نباشند. در مواردی مانند این، توابع هش پیچیدهتری مانند توابع هش کریپتوگرافیکی استفاده میشوند.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
در شکل بالا سرچ درختی را مشاهده میکنید که مبدا S و مقصد آن G نیز می باشد. برای انجام این کار ابتدا گراف را تبدیل به درخت میکنیم ( به صورتی باید تبدیل شود که دوری در آن به وجود نیاید) سپس با جست و جو هایی که در شکل مشاهده میکنید مسیر آن به صورت زیر نیز می باشد :
S -> d - > e -> r -> f -> G
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
S -> d - > e -> r -> f -> G
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
👏1
سومین کوچکترین کلید در یک Heap Min با کلیدهاي متمـایز در درایـه هـایی بـا چـه اندیس هایی میتواند باشد؟(از چپ به راست)
Anonymous Quiz
22%
1,2,3
44%
2,3,4,5,6,7
27%
4,5,6,7
7%
1,2,3,4,5,6,7
👍1
زمان اجرای الگوریتم های معروف
نکاتی که میتوان درمورد زمان اجرای یک الگوریتم بدانیم به صورت زیر می باشد :
1-سرعت الگوریتم ن بر اساس ثانیه بلکه بر مبنای رشد تعداد عملیات اندازه گیری می شود.
2-در واقع , مقصود این است که با افزایش اندازه ی داده های ورودی زمان اجرای یک الگوریتم با چه سرعتی افزایش می یابد.
3-زمان اجرای الگوریتم های با نماد O بزرگ بیان می شود.
4-رشد O(log n) بیشتر از O(n) است , اما با رشد لیست موادی که جست و جو می کنید , سرعت آن بسیار بیشتر می شود.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
نکاتی که میتوان درمورد زمان اجرای یک الگوریتم بدانیم به صورت زیر می باشد :
1-سرعت الگوریتم ن بر اساس ثانیه بلکه بر مبنای رشد تعداد عملیات اندازه گیری می شود.
2-در واقع , مقصود این است که با افزایش اندازه ی داده های ورودی زمان اجرای یک الگوریتم با چه سرعتی افزایش می یابد.
3-زمان اجرای الگوریتم های با نماد O بزرگ بیان می شود.
4-رشد O(log n) بیشتر از O(n) است , اما با رشد لیست موادی که جست و جو می کنید , سرعت آن بسیار بیشتر می شود.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
👍1
پیاده سازی رگرسیون خطی (Linear Regression) شامل مراحل زیر هست:
1️⃣تولید داده
2️⃣ساخت نورون یا پیادهسازی رابطه
3️⃣محاسبه خروجی نورون براساس داده ورودی و مدل رابطه
4️⃣محاسبه لاس یا اتلاف
5️⃣محاسبه گرادیان ها
6️⃣بروزرسانی وزن های نورون
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
1️⃣تولید داده
2️⃣ساخت نورون یا پیادهسازی رابطه
3️⃣محاسبه خروجی نورون براساس داده ورودی و مدل رابطه
4️⃣محاسبه لاس یا اتلاف
5️⃣محاسبه گرادیان ها
6️⃣بروزرسانی وزن های نورون
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
👌1
یک درخت جستجوي باینري با کلمه "SEARCH "(از چپ بـه راسـت) بـسازید. تعـداد متوسط مقایسه براي پیدا کردن یک کاراکتر در این درخت برابر است با:
Anonymous Quiz
18%
2.83
47%
2.4
18%
2.6
18%
6
محاسبه اتلاف یا loss
درکل توابع اتلاف متنوعی با کارکردهای مختلف در یادگیری ماشین و شبکه عصبی وجود دارد. برای مساله رگرسیون، یکی از پرکاربردترینها تابع اتلاف Mean Square Error (MSE) هست.
طبق رابطه بالا، MSE عبارتند از میانگینِ مربعِ اختلاف بین مقدار هدف یا واقعی (y) و مقدار پیشبینیشده توسط مدلی مانند رگرسیون خطی (a+bx). رابطه بالا در نامپای بهصورت زیر پیادهسازی میشود:
که در کد بالا y همان y واقعی می باشد و y_hat که از رابطه خطی y=wx+b به دست می آید که اختلاف این دو همان error به دست می آید.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
درکل توابع اتلاف متنوعی با کارکردهای مختلف در یادگیری ماشین و شبکه عصبی وجود دارد. برای مساله رگرسیون، یکی از پرکاربردترینها تابع اتلاف Mean Square Error (MSE) هست.
طبق رابطه بالا، MSE عبارتند از میانگینِ مربعِ اختلاف بین مقدار هدف یا واقعی (y) و مقدار پیشبینیشده توسط مدلی مانند رگرسیون خطی (a+bx). رابطه بالا در نامپای بهصورت زیر پیادهسازی میشود:
error = (y - y_hat)
loss = (error ** 2).mean()
که در کد بالا y همان y واقعی می باشد و y_hat که از رابطه خطی y=wx+b به دست می آید که اختلاف این دو همان error به دست می آید.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Stack memory :
حافظه پشته برای تخصیص حافظه استاتیک استفاده می شود و از ساختار آخرین ورودی، اولین خروجی (LIFO) پیروی می کند. از نظر دسترسی به داده بسیار سریع است اما از نظر اندازه محدودیت دارد. مهم است بدانید که انواع مقادیر مانند انواع اولیه، bool، int، float، char و ... (بستگی به زبان برنامه نویسی دارد) و ارجاعات به اشیاء اعلام شده در یک متد یا تابع معمولاً در پشته ذخیره می شوند. و هنگامی که متد وجود دارد (ما محدوده را داریم) حافظه اختصاص داده شده برای آن متغیرها به طور خودکار تخصیص داده می شود.
برای مثال :
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
حافظه پشته برای تخصیص حافظه استاتیک استفاده می شود و از ساختار آخرین ورودی، اولین خروجی (LIFO) پیروی می کند. از نظر دسترسی به داده بسیار سریع است اما از نظر اندازه محدودیت دارد. مهم است بدانید که انواع مقادیر مانند انواع اولیه، bool، int، float، char و ... (بستگی به زبان برنامه نویسی دارد) و ارجاعات به اشیاء اعلام شده در یک متد یا تابع معمولاً در پشته ذخیره می شوند. و هنگامی که متد وجود دارد (ما محدوده را داریم) حافظه اختصاص داده شده برای آن متغیرها به طور خودکار تخصیص داده می شود.
برای مثال :
void StackMemoryExampleMethod()
{
int num = 5; // 'num' is allocated on the stack
}
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
فرض کنید A یک ماتریس m * n خلوت (Sparse ) باشد عناصـر غیرصـفر آن را بـه ترتیب سطري در یک آرایه، 3*t که t تعداد عناصـر غیرصـفر مـاتریس اسـت ذخیـره میکنیم. بهترین تابع زمان عمل ترانهاده گیري برابر است با ...
Anonymous Quiz
24%
t+m
34%
tm
24%
tn
17%
t+n
👍3