PDA

View Full Version : پیچیدگی زمانی ماتریس n.n



زینبVIN
جمعه 24 فروردین 1386, 01:16 صبح
ایا به جز استراسن کسی پیچبدگی ماتریn.n را کاهش داده
اگه ممکنه سایت معرفی کنید

ممنون

Arash_j13
جمعه 24 فروردین 1386, 13:00 عصر
بله یه الگوریتمی هست که توسط وینوگراد و کوپر اسمیت نوشته شده و پیچیدیگی زمانیش O(n^2.376) هست ولی مقدار ثابت بزرگی داره که باعث می شه فقط برای مقادیر خیلی بزرگ کارا تر از الگوریتم استراسن باشه ولی در هر حال این بهترین الگوریتم شناخته شده برای ضرب ماتریس ها ی n*n هست

http://en.wikipedia.org/wiki/Coppersmith%E2%80%93Winograd_algorithm

Developer Programmer
جمعه 24 فروردین 1386, 16:30 عصر
ضمن اینکه ...
حد بالای ضرب ماتریس، بیگ امگای n به توان دو است. یعنی هیچ الگوریتمی نمیتونی بنویسی که از n به توان 2 بهتر عمل کنه.

proserpine
چهارشنبه 02 آذر 1390, 14:59 عصر
سلام

لینک داده شده کامل نیست از دوستان کسی می تونه لینکی بده که هم شبه کد و هم رابطه بازگشتی این الگوریتم باشد؟

alireza.zahani
یک شنبه 18 خرداد 1393, 00:45 صبح
الگوریتم ضرب ماتریس های n*n به صورت ۳ حلقه ی for تودرتو نوشته میشه
به ازای هر for تو در تو یه n . پس ۳ تا for تودر تو میشه : n*n*n که برابره با n^3

darknes666
یک شنبه 18 خرداد 1393, 14:42 عصر
الگوریتم وینوگراد تا سال 2010 سریعترین بوده.
تو سال 2010 الگوریتم توسط Andrew Stothers بهبود پیدا کرده و تو سال 2011 ویرجینیا ویلیامز از استنفورد دوباره اونو سریعتر کرده.
همین اواخرم توی 2014 فرانسوا لو گال متود ویلیامز رو ساده تر کرده و سریعترش کرده.
همچنین توجه داشته باش که از الگوریتم کاپراسمیت-وینوگراد نمیشه در عمل استفاده کرد، چون ضریب ثابت اون خیلی بزرگه و فقط برای ضرب ماتریس های خیلی بزرگ میشه ازش استفاده کرد که سخت افزارهای امروزی قابلیت پردازش اونارو ندارن.

alireza.zahani
یک شنبه 18 خرداد 1393, 15:41 عصر
الگوریتم وینوگراد تا سال 2010 سریعترین بوده.
تو سال 2010 الگوریتم توسط Andrew Stothers بهبود پیدا کرده و تو سال 2011 ویرجینیا ویلیامز از استنفورد دوباره اونو سریعتر کرده.
همین اواخرم توی 2014 فرانسوا لو گال متود ویلیامز رو ساده تر کرده و سریعترش کرده.
همچنین توجه داشته باش که از الگوریتم کاپراسمیت-وینوگراد نمیشه در عمل استفاده کرد، چون ضریب ثابت اون خیلی بزرگه و فقط برای ضرب ماتریس های خیلی بزرگ میشه ازش استفاده کرد که سخت افزارهای امروزی قابلیت پردازش اونارو ندارن.
توضیحات بسیار خوبی بود