کتاب های مرجع طراحی الگوریتم چه هستند؟
الگوهای طراحی
الگوهای طراحی: عناصر دوباره قابل استفاده نرم‌افزار شیءگرا یک کتاب مهندسی نرم‌افزار است که الگوهای طراحی را شرح می‌دهد. نویسنده‌های این کتاب اریک گاما، ریچارد هلم، رلف جانسون و جان ولیساید و پیش‌گفتاری از گریدی بوچ هستند. این کتاب به دو بخش تقسیم شده‌است، با دو فصل نخست در قابلیت‌ها و مشکلات برنامه‌نویسی شیءگرا به اکتشاف می‌پردازیم و باقی فصول ۲۳ الگوی طراحی کلاسیک را شرح می‌دهد. این کتاب شامل نمونه‌هایی به زبان سی پلاس‌پلاس و اسمال‌تاک است. تاریخچه ساخت مترجم
کتاب زبان‌های برنامه‌نویسی و کامپایلرهای آن به قلم جان کوک و جیکوب تی. شوارتز، که در اوایل ۱۹۷۰ منتشر شد، بیش از ۲۰۰ صفحه را به بهینه‌سازی الگوریتمها اختصاص داد. این کتاب شامل بسیاری از تکنیک‌های آشنا از جمله حذف کدهای تکراری و کاهش قدرت است.
روش‌های بهینه‌سازی در مسائل مهندسی برق قدرت
در واقع الگوریتم‌های ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیش‌بینی یا تطبیق الگو استفاده می‌کنند. الگوریتم‌های ژنتیک اغلب گزینه خوبی برای تکنیک‌های پیش‌بینی بر مبنای رگرسیون هستند. در هوش مصنوعی الگوریتم ژنتیک (یا GA) یک تکنیک برنامه‌نویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می‌کند. مسئله‌ای که باید حل شود دارای ورودی‌هایی می‌باشد که طی یک فرایند الگوبرداری شده از تکامل ژنتیکی به راه‌حل‌ها تبدیل می‌شود سپس راه حل‌ها بعنوان کاندیداها توسط تابع ارزیاب مورد ارزیابی قرار می‌گیرند و چنانچه شرط خروج مسئله فراهم شده باشد الگوریتم خاتمه می‌یابد. الگوریتم ژنتیک بطور کلی یک الگوریتم مبتنی بر تکرار است که اغلب بخش‌های آن به صورت فرایندهای تصادفی انتخاب می‌شوند. آنالیز استهلاکی
کتاب طراحی الگوریتم- هادی یوسفی یادگیری ماشین اتوماتیک
هر یک از ابزارهای AutoML بخشی از الگوریتم‌های یادگیری ماشین برای ساختن مدل‌ها را پشتیبانی می‌کنند. از جمله رگرسیون لوجستیک، الگوریتم‌های درختی، مدل‌های شبکه عصبی و SVM. برای بهینه‌سازی پارامترها از معروف‌ترین روش‌ها جستجوی حریصانه، جستجوی بیزی و جستجوی رندم هستند. برنامه‌ریزی راهبردی
۸. رضائیان، علی (۱۳۸۰). «مبانی سازمان و مدیریت». تهران: سازمان مطالعه و تدوین کتب علوم انسانی دانشگاه‌ها (سمت). علم اطلاعات و کامپیوتر
این مطالعه ای است در مورد الگوریتم‌های بنیادی رایانه که اساس برنامه‌های رایانه ای هستند. بدون الگوریتم‌ها، هیچ برنامه کامپیوتری وجود نخواهد داشت. این امر همچنین شامل فرایند جستجوی توابع مختلف ریاضی پشت الگوریتم‌های محاسباتی، تئوری پایه ای و برنامه‌نویسی عملکردی (سطح پایین) است. یادگیری تفاوت زمانی
Imran Ghory. Reinforcement Learning in Board Games. S. P. Meyn, 2007. Control Techniques for Complex Networks, Cambridge University Press, 2007. See final chapter, and appendix with abridged Meyn & Tweedie. هنر الگوریتمی
این مقاله شامل لیستی از مراجع، مربوط به مطالعه یا پیوندهای خارجی است اما منابع باقی‌مانده واضح نیستند چون فاقد نقل و قول برخط هستند. لطفاً این مقاله را با مطرح کردن نقل و قول دقیق‌تری در جای مناسب بهبود دهید. هنر الگوریتمی همچنین به عنوان الگوریتم هنر شناخته شده، هنر اساساً هنر دیداری است، که طراحی به وسیلهٔ یک الگوریتم تولید می‌شود. هنرمندان الگوریتمی بعضی اوقات الگوریست‌ها نامیده می‌شوند. الگوی طراحی نرم‌افزار
الگوهای طراحی ممکن است تنها حاکی از کمبود برخی قابلیت‌ها و ویژگی‌ها در یک زبان برنامه‌نویسی (مانند جاوا یا سی++) باشد. پیتر نورویگ نشان داد که ۱۶ تا از ۲۳ الگوی طراحی در کتاب الگوهای طراحی (که عمدتاً روی زبان سی‌پلاس‌پلاس متمرکز شده‌است) از طریق پشتیبانی مستقیم در زبان‌های لیسپ یا دیلان ساده‌سازی یا زدوده شده‌است. اظهارات مشابهی نیز توسط هانمان و کیکزالس که شماری از ۲۳ الگوی طراحی را به کمک یک زبان برنامه‌نویسی جنبه‌گرا (AspectJ) پیاده‌سازی کرده بودند، انجام شد. این دو نشان دادند که وابستگی‌های سطح کد در پیاده‌سازی ۱۷ تا از ۲۳ الگوی طراحی از بین رفت و برنامه‌نویسی جنبه‌گرا توانست پیاده‌سازی الگوهای طراحی را ساده‌سازی کند. هم‌چنین، مقالهٔ پاول گراهام را با عنوان «انتقام نردها» ببینید. کاربرد الگوریتم‌ها
علاوه بر کاربردهای ذکر شده، کاربردهای دیگری نیز برای الگوریتم‌ها در ریاضیات و سایر زمینه‌های علمی وجود دارد مانند یافتن طویل‌ترین زیر دنباله مشترک، یافتن پوش محدب نقاط، انتخاب بهینه فعالیت‌ها و بسیاری نمونه‌های دیگر.۱. ↑کورمن، مقدمه‌ای بر الگوریتم‌ها. ۲. ↑نیپولیتان، طراحی الگوریتم‌ها. الگوریتم ژنتیک
الگوریتم‌های ژنتیک تکنیک جستجو در علم رایانه برای یافتن راه‌حل تقریبی برای بهینه‌سازی مدل، ریاضی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتم‌های تکاملی است که از تکنیک‌های زیست‌شناسی فرگشتی مانند وراثت، جهش زیست‌شناسی و اصول انتخابی داروین برای یافتن فرمول بهینه جهت پیش‌بینی یا تطبیق الگو استفاده می‌شود. الگوریتم‌های ژنتیک اغلب گزینه خوبی برای تکنیک‌های پیش‌بینی بر مبنای رگرسیون هستند. در مدل‌سازی الگوریتم ژنتیک یک تکنیک برنامه‌نویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می‌کند. مسئله‌ای که باید حل شود دارای ورودی‌هایی می‌باشد که طی یک فرایند الگوبرداری شده از تکامل ژنتیکی به راه‌حل‌ها تبدیل می‌شود سپس راه حل‌ها به عنوان کاندیداها توسط تابع برازش یا تابع برازندگی (Fitness Function) مورد ارزیابی قرار می‌گیرند و چنانچه شرط خروج مسئله فراهم شده باشد الگوریتم خاتمه می‌یابد. به‌طور کلی یک الگوریتم مبتنی بر تکرار است که اغلب بخش‌های آن به صورت فرایندهای تصادفی انتخاب می‌شوند که این الگوریتم‌ها از بخش‌های تابع برازش، نمایش، انتخاب و تغییر تشکیل می‌شوند. مرتب‌سازی مسابقه‌ای
Donald Knuth, The Art of Computer Programming, Sorting and Searching, Volume 3, 1973. Stepanov, Alexander and Aaron Kershenbaum. Using Tournament Trees to Sort, Brooklyn: Center for Advanced Technology in Telecommunications, 1986. https://www.cise.ufl.edu/~sahni/cop3530/slides/lec252.pdf الگول
الگول ( مخفف عبارت زبان الگوریتمی Algorithmic Language) از خانوادهٔ زبان‌های برنامه‌نویسی امری کامپیوتری است و در اصل در میانه‌های سال ۱۹۵۰ توسعه یافته که بسیاری از زبان‌های دیگر را تحت تأثیر قرار داده است. عملاً راهی شده‌است که الگوریتم‌ها در کتاب‌های درسی و فعالیت‌های علمی برای تقریباً ۳۰ سال آینده توصیف شوند. الگول برای دوری از برخی مشکلات که در فورترن دیده شده بود طراحی شد و سرانجام باعث پیشرفت بسیاری از زبان‌های برنامه‌نویسی دیگر شد. الگول کدها را به‌صورت بلوکی معرفی کرد و اولین زبانی بود که از دو جفت begin و end برای مرزبندی بلوک‌ها استفاده کرد. قسمت‌هایی از الگول مانند syntax بعضی اوقات برای ثبت و یادداشت الگوریتم‌ها استفاده می‌شود. به همین خاطر به آن Pidgin Algol (الگول دست و پا شکسته) می‌گفتند. سه خصوصیت اصلی الگول به شرح زیر است: طراحی الگوریتم روس تقسیم و حل
نیپولیتان، ریچارد و کیومرث نعیمی پور. طراحی الگوریتم‌ها. ترجمه جعفرنژاد قمی. بابل:نشر علوم رایانه، ۱۳۹۰. الگوریتم
از آنجایی که هدف اصلی طراحی الگوریتم برای حل یک مسئله دستیابی به خواسته‌های مسئله می‌باشد بنابراین طی مراحل ۵ گانهٔ بالا در ارائهٔ الگوریتم الزامی است. علی کاوه
- شبکه‌های عصبی در بهینه‌یابی سازه‌ها، مرکز تحقیقات ساختمان و مسکن، 1381، 1385. الگوریتم Goldberg و Tarjan
[3] R.G. Busacker, and P.J. Gowen (1961) A Procedure for Determining a Family of Minimum-Cost Network Flow Patterns. O.R.O. Technical Paper 15 هوش مصنوعی
این کتب، پراستفاده‌ترین کتب درسی AI در ۲۰۰۸ میلادی بوده‌اند. برنامه‌نویسی رایانه‌ای
یکی از مهم‌ترین پیش‌نیازهای برنامه‌نویسی اطلاع داشتن از نحوهٔ حل مسئله و الگوریتم‌های برنامه‌نویسی است، الگوریتم‌ها به صورت خاص نحوهٔ حل و منطق زبان برنامه‌نویسی را بیان می‌کنند، نمای تصویری الگوریتم را روندنما می‌نامند، پس از نوشتن یک الگوریتم کامل برنامه‌نویسی می‌توان اقدام به رسم روندنما کرد تا نمود بصری الگوریتم به خوبی نمایان گردد. هنر برنامه‌نویسی رایانه
هنر برنامه‌نویسی رایانه که به اختصار TAOCP نامیده می‌شود کتابی است جامع دربارهٔ مفاهیم برنامه‌نویسی برای رایانه که توسط دونالد کنوت نوشته شده‌است. این کتاب دربارهٔ الگوریتم‌های کامپیوتری و تحلیل‌های آن نوشته شده‌است. نگارش این کتاب در سال ۱۹۶۲ به صورت یک تک کتاب با دوازده فصل در ذهن کنوث نقش بست. سه کتاب از هفت کتابی که قرار بود به چاپ برسد، در سال‌های ۱۹۶۸، ۱۹۶۹ و ۱۹۷۳ به چاپ رسید. هوش مصنوعی: رهیافتی نوین
هوش مصنوعی: رهیافتی نوین کتابی‌ست از استوارت جی راسل و پیتر نورویگ که به عنوان یکی از منابع اصلی درس هوش مصنوعی در بیش از ۱۱۰۰ دانشگاه سراسر دنیا تدریس می‌شود و برخی آن را محبوب‌ترین کتاب هوش مصنوعی در جهان دانسته‌اند. ویراست سوم این کتاب در سال ۲۰۰۹ منتشر و به فارسی نیز ترجمه شد. آهنگسازی الگوریتمی
مدل‌های ریاضی مبتنی بر معادلات ریاضی و پیشامدهای تصادفی هستند. متعارف‌ترین روش برای ساخت آهنگ‌ها از طریق ریاضی، فرایندهای تصادفی است. در مدل‌های تصادفی یک قطعه موسیقی به عنوان نتیجه متدهای غیرقطعی ساخته می‌شود. فرایند آهنگسازی تا اندازه‌ای با استفاده از توزین احتمال رویدادهای تصادفی توسط آهنگساز، کنترل می‌شود. مثال‌های برجسته‌ای از الگوریتم‌های تصادفی، زنجیر مارکوف و کاربردهای مختلف توزیع نرمال می‌باشند. الگوریتم‌های تصادفی اغلب باهمدیگر به همراه دیگر الگوریتم‌ها در فرایندهای تصمیم‌گیری استفاده می‌شوند. موسیقی همچنین از طریق نمودهای طبیعت ساخته می‌شود. این مدل‌های بی نظم آثاری موسیقائی از الهامات موزون و ناموزون طبیعت می‌سازند. برای مثال از سال ۱۹۷۰ برخال‌ها به عنوان مدلی برای آهنگسازی‌های الگوریتمی مورد مطالعه قرار گرفتند. پیچیدگی زمانی
زمان اجرای یک الگوریتم از مسائل مهم طراحی الگوریتم است و غالباً کارایی الگوریتم‌ها را از روی زمان اجرای آن‌ها بررسی می‌شود. همان‌طور که می‌دانیم الگوریتم عبارتست از: مجموعه‌ای از دستورها و دستورالعمل‌ها برای حل مسئله که شرایط زیر را باید دارا باشد: گومز
Kieras, D. , John, B. , The GOMS Family of Analysis Techniques: Tools for Design and Evaluation, CMU-HCII-94-106, 1994 Judith Reitman Olson, Gary M. Olson: The Growth of Cognitive Modeling in Human-Computer Interaction Since GOMS, in: R. M. Baecker, J. Grudin, W. A. S. Buxton, S. Greenberg: Readings in Human-Computer Interaction: Towards the Year 2000. 1995, San Francisco, CA: Morgan Kaufmann. Card, S.K. ; Moran, T.P. ; Newell, A. (1983), The Psychology of Human-Computer Interaction, London: Lawrence Erlbaum Associates Card, Moran, Newell (1980). The Keystroke-Level Model for User Performance Time With Interactive Systems, Communications of the ACM, July, 23(7), 396-410. Reason, J. (1990), Human Error, Manchester: Cambridge University Press John, Bonnie E. (1995), Why GOMS?, ACM, ISSN 1072-5520 Kieras, David (1999), A Guide to GOMS Model Usability Evaluation using GOMSL and GLEAN3, Citeseer Gray, Wayne D (1993), Project Ernestine: Validating a GOMS Analysis for Predicting and Explaining Real-World Task Performance, ACM, ISSN 0737-0024 Haunold, Peter (1994), A Keystroke Level Analysis of a Graphics Application: Manual Map Digitizing, ACM بازاریابی و هوش مصنوعی
۱.Whitby, B. (2003). A beginner's guide: Artificial Intelligence. Oxford, England: Oneworld Publications. الگوریتم‌های فراابتکاری
فرایند طراحی و پیاده‌سازی الگوریتم‌های فراابتکاری دارای سه مرحلهٔ متوالی است که هر کدام از آن‌ها دارای گام‌های مختلفی هستند. در هر گام فعالیت‌هایی باید انجام شود تا آن گام کامل شود. مرحلهٔ ۱ آماده‌سازی است که در آن باید شناخت دقیقی از مسئله‌ای که می‌خواهیم حل کنیم بدست آوریم، و اهداف طراحی الگوریتم فراابتکاری برای آن باید با توجه به روش‌های حل موجود برای این مسئله به‌طور واضح و شفاف مشخص شود. مرحلهٔ بعدی، ساخت نام دارد. مهم‌ترین اهداف این مرحله انتخاب استراتژی حل، تعریف معیارهای اندازه‌گیری عملکرد، و طراحی الگوریتم برای استراتژی حل انتخابی می‌باشد. آخرین مرحله پیاده‌سازی است که در آن پیاده‌سازی الگوریتم طراحی شده در مرحلهٔ قبل، شامل تنظیم پارامترها، تحلیل عملکرد، و در نهایت تدوین و تهیه گزارش نتایج باید انجام شود. کتابخانه استاندارد قالب
شمول شدن کتابخانه الگوریتم توابعی را به همراه دارد که در ترتیب دهی و جستجو در آرایه‌ها بسیار مفید است.الگوریتم‌ها در ظروف نقش بسیار مفیدی دارند. مدلسازی معنایی داده
Alagic, Suad (1986). Relational Database Technology. Available from http://books.google.com/books?id=MY6gcNxhxPcC&printsec=frontcover&dq=database&source=bl&ots=I-ivfiUwmo&sig=XYeftoA-jvzNlr1GJctxa33cPqs&hl=en&sa=X&ei=Q5QaUOrvOsTRhAestoGQBA&ved=0CEgQ6AEwBDgK#v=onepage&q=database&f=false درخت مسابقه
Donald Knuth, The Art of Computer Programming, Sorting and Searching, Volume 3, 1973. Stepanov, Alexander and Aaron Kershenbaum. Using Tournament Trees to Sort, Brooklyn: Center for Advanced Technology in Telecommunications, 1986. https://www.cise.ufl.edu/~sahni/cop3530/slides/lec252.pdf الگوریتم جستجوی ممنوعه
. کورش عشقی؛ مهدی کریمی نسب؛ تحلیل الگوریتمها و طراحی روشهای فرابتکاری؛ انتشارات دانشگاه شریف؛ ۱۳۹۵ الگوریتم‌های مافوق بازگشتی
برای دیگر مثال‌های عملی الگوریتم‌های مافوق بازگشتی به کتاب بورگین مراجعه نمایید. راه بی‌زمان ساختن
راه بی‌زمان ساختن کتابی اثر کریستوفر الکساندر است که تئوری جدیدی در معماری (و به‌طور کلی طراحی) ارائه می‌دهد که به درک و پیکربندی الگوهای طراحی متکی است. الکساندر این کتاب را در ۱۹۷۹ نوشت. اگرچه این کتاب دیرتر چاپ شد، اما در اصل مقدمه‌ای بر دو کتاب دیگر او، « «زبان الگو» و «تجربهٔ اورگان» است که زمینهٔ فلسفی را برای مجموعهٔ ساختارهای محیطی فراهم می‌کند. ابزارهای محاسباتی برای هوش مصنوعی
بسیاری از مشکلات در هوش مصنوعی می‌توانند از نظر تئوری با جستجوی هوشمندانه در میان بسیاری از راه حل‌های ممکن حل شوند: استدلال را می‌توان به انجام یک جستجو کاهش داد. به عنوان مثال، اثبات منطقی را می‌توان جستجوی مسیری دانست که از مقدمات به نتیجه می‌رسد، که هر مرحله، استفاده از یک قانون استنتاج است. الگوریتم‌های برنامه‌ریزی در درختان اهداف و اهداف فرعی جستجو کرده، تلاش می‌کنند برای یافتن راهی برای رسیدن به یک هدف، که فرایندی به نام تجزیه و تحلیل معنی و هدف است. الگوریتم‌های رباتیک برای حرکت دادن اندام‌ها و گرفتن اشیا از جستجوهای محلی در فضای پیکربندی استفاده می‌کنند. بسیاری از الگوریتم‌های یادگیری از الگوریتم‌های جستجو مبتنی بر بهینه‌سازی استفاده می‌کنند. برنامه‌نویسی پویا
چه زمان‌هایی الگوریتم‌های برنامه‌نویسی پویا درست هستند؟ ادوارد جی. کافمن
پروفسور گافمن بهترین شناخته شده‌است برای تحقیقات اصلی با هم با همکاری بین‌المللی، شمرده می‌شود در قسمت‌هایی به وسیلهٔ ۱۵۰ نویسنده در کالکشن نشریه‌اش. کارش ممکن اس پیدا شود در ۱۸۰ تیتر در مجله‌های تکنولوژیکی که سهم تحقیقات اصلی اش است. او ۴ کتاب متنی درجه‌بندی شده را چاپ کرد؛ و روزنامه‌هایی از بیش از ۲۵۰ کنفرانس و کارگاهش. بیشتر این‌ها ورژن‌های اصلی عنوان‌های مجله می‌شدند. در تحقیقاتش گافمن یک دنباله عمومی در مسیرهای موازی در مهندسی و ریاضیات داشت. مسیری که او در پیش گرفته بود روی ابزارهای ترکیبی بهینه و نظریه‌های الگوریتم بود؛ که در طول این‌ها که به کار گرفته شده فرایندهای احتمالی و اتفاقی بود. فرایندهایی که شامل این‌ها بود در نظریه‌های زمانبندی، بین پکینگ، دنباله انتخابی، گراف‌ها، تخصیص پویا و همچنین در صف بندی، گرده افشانی، رزرو کردن، حرکت سرور، شبکه و توزیع سیستم‌های محلی (اوتومات سلولی). این ترکیبات بین شالوده ریاضیات و طراحی و تحلیل الگوریتم‌های تقریب تقسیم می‌شوند که پایه‌ای را برای حل مسایل Np-hard فراهم می‌کند. کاربردهای مهندسی کامپیوتر و شبکه حوزه‌های وسیعی دارد. یک لیست جزئی که شامل آدرس مسآله تحقیقاتی در زمانبندی و توابع تخصیص ذخیره‌سازی در سیستم عامل کامپیوتر، معماری ذخیره‌سازی، ساختمان داده‌ها، مسئله زمانبندی کامپیوتر مانند بن‌بست و همگام سازی، ازدحام اینترنت، شبکه‌های تقسیم فایل جفت جفت، ادغام جریان، فرایندهای خود انجمنی محاسبه پذیر مولکولی، الگوریتم‌های مینیمم در شبکه‌های حساس، مسیریابی انفجار بصری و مدیریت طیف پویا درشبکه‌های ادراک. لیست توسعه پیدا می‌کند وقتی که شامل کاربردهای بیشمار در مهندسی صنایع و پژوهش عملیاتی تحقیقات گافمن در نظریه‌های زمانبندی و بین پکینگ در یک و دو بعد. گافمن به صورت حرفه‌ای در خدمت کردن روی چندین مقاله فعال مانده است. دوجین از کمیته برنامه‌های تکنولوژیکی موضوع تحقیق روز خود را قرار داده‌اند در کارگاه‌شان در کنسول تحقیقات ملیدر کشف نشست روی سیستم‌های عامل و گروه‌های خاص روی کارایی سنجش هردویَ ACM و IFIPS. سامانه مدل‌سازی چندبعدی تعاملی پیشرفته
Kallrath, Joseph (2004). Modeling Languages in Mathematical Optimization. Kluwer Academic Publishing. . Roelofs, Marcel (2010). AIMMS Language Reference (PDF). lulu.com. . Paragon Decision Technology (2009). "AIMMS Open Solver Interface API" الگوریتم Goldberg و Tarjan
[4] J. Edmonds, and R.M. Karp (1972) Theoretical Improvements in Algorithmic E_- ciency for Network Flow Problems. Journal of the ACM 19, 248-264 جستجوی موتیف گماشته‌شده
الگوریتم های بسیاری برای این مسئله پیشنهاد شده اند. این الگوریتم های را می توان به دو دسته ی الگوریتم های تقریبی و الگوریتم های دقیق دسته بندی کرد. جوابی که از الگوریتم های دقیق می گیریم، جواب بهینه است، ولی الگوریتم های تقریبی همواره جواب بهینه نمی‌دهند. برخی از الگوریتم های تقریبی برای پیدا کردن موتیف ها شامل Random Projection, PatternBranching، MULTIPROFILER، CONSENSUS، و ProfileBranching. می باشند. گراف مور
کتاب Graphs, Algorithms, and optimization هندسه محاسباتی
لیستی از مجله‌های معتبر که در زمینه الگوریتم‌های هندسی، پژوهش‌هایی را چاپ کرده‌اند، آمده‌است. توجه کنید که با آمدن مجله‌هایی که به هندسه محاسباتی اختصاص یافته‌اند، سهم انتشارات هندسی در مجله‌های علوم کامپیوتر با هدف عمومی و مجله‌های گرافیک کامپیوتری کاهش یافت. لیست مجلات در زمینهٔ مدلسازی هندسی الگوریتم Goldberg و Tarjan
[9] A.V. Goldberg, and R.E. Tarjan (1990) Finding Minimum{Cost Circulations by Successive Approximation. Mathematics of Operations Research 15, 430-466 الگوی طراحی
در طراحی نرم‌افزارهای مختلف مسایلی دایماً بروز می‌یابند که در پروژه‌های قبلی، که حتی دارای قلمرو کاربردی مختلفی هستند، نیز وجود دارند. راه حل موجود برای این روش‌های غالباً یکسان است و یافتن طراحی مناسب برای این موارد تکراری وقت‌گیر و هزینه‌بر است. از این رو می‌توان راه‌حل‌هایی را ارائه نمود که مسایل را ساده نماید. از طرفی روح برنامه‌نویسی شیءگرا بر مبنای قابلیت باز-استفادگی و جز-محوری است، موجب ایجاد برنامه‌هایی قابل استفاده در آینده خواهد شد. اریک گاما ،ریچارد هلم، رالف جانسون، جام ولیسایدز که بعدها به دستهٔ۴ معروف شدند در سال ۱۹۹۴ کتاب الگوهای طراحی را به همراه مقدمه‌ای از سوی گریدی بوش به رشتهٔ تحریر درآوردند. این کتاب به دسته‌بندی ۲۳ الگوهای طراحی می‌پرداخت که تا آن زمان ابداع شده‌بودند. گریدی بوش در مقدمهٔ کتاب "الگوهای طراحی" از الگوهای طراحی به عنوان راه حلی برای ایجاد سیستم‌های پیچیده نام می‌برد و از آن به عنوان زبانی نام می‌برد که می‌تواند بر روی دامنه‌های مختلفی مورد استفاده قرار گیرند. محسن وزیری‌مقدم
کتب تألیفی او در زمینه طراحی، از جمله کتاب "شیوهٔ طراحی" (چاپ اول: ۱۳۶۰)، سال‌ها در زمره کتب درسی و پایهٔ طراحی در ایران بوده‌است. الگوریتم
یک الگوریتم شامل دستورالعمل‌های پشت سر هم است که جهت ارائهٔ یک خروجی معتبر باید به ترتیب اجرا شوند، از این رو رعایت ترتیب در مولفه‌های اصلی نیز مؤثر است، چرا که اساساً بدون وجود خواستهٔ مسئله عملیات محاسباتی نیز وجود نخواهد داشت. الگوی طراحی نرم‌افزار
در مهندسی نرم‌افزار، الگوی طراحی یک راه‌حل عمومی قابل تکرار برای مشکلات متداول در زمینه طراحی نرم‌افزار است. الگوی طراحی، یک طراحی تمام‌شده نیست که به صورت مستقیم بتواند تبدیل به کد منبع یا ماشین شود؛ بلکه، یک توضیح یا قالب برای حل یک مسئله در شرایط مختلف است. الگوها در واقع بهترین روش ممکن هستند که یک برنامه‌نویس می‌تواند در هنگام طراحی یک برنامه برای حل مشکلاتش از آن‌ها استفاده کند. الگوهای طراحی شیءگرا نوعاً نشان‌دهندهٔ روابط و تعامل‌ها بین کلاس‌ها و شیء‌ها هستند، بدون این‌که کلاس‌ها یا اشیا نهایی برنامه را مشخص کند. الگوهایی که در خود وضعیت‌های تغییرپذیر دارند، شاید مناسب زبان‌های برنامه‌نویسی تابعی نباشند. هم‌چنین، در بعضی از زبان‌ها که برای حل یک مسئله راه‌حل‌های آمادهٔ از پیش تعریف‌شده وجود دارد، استفاده از بعضی الگوها برای حل مسئلهٔ مشابه می‌تواند لازم نباشد. به همین ترتیب، الگوهای طراحی شیءگرا ممکن است برای زبان‌های غیر شیءگرا مناسب نباشند. هندسه محاسباتی
1. هندسه محاسباتی: الگوریتم‌ها و کاربردها (ویراست سوم)- تألیف: مارک دی برگ، اوتفرید چیونگ، مارک وان کریولد، مارک اُورمارس- ترجمه: مهدی ایمان پرست- انتشارات دانش نگار- تهران- چاپ اول- 1394. قضیه اصلی واکاوی الگوریتم‌ها
قضیه اصلی واکاوی (تحلیل) الگوریتم‌ها که حالتی خاص از روش اکرا-بازی در تحلیل الگوریتم‌ها است ، یک راه حل سرراست برای حالت‌های مجانبی که در عمل برای حل انواع روابط بازگشتی رخ می‌دهند، ارائه می‌کند. این قضیه با کتاب درسی معروف "مقدمه‌ای بر الگوریتم‌ها" نوشتهٔ کرمن، لیسرسن، ریوست و استین به شهرت رسید. این قضیه در بخش ۴٫۳ دراین کتاب معرفی شده‌است و متعاقباً در بخش ۴٫۴ به اثبات رسیده‌است. هرچند که نمی‌توان تمامی روابط بازگشتی را به کمک قضیهٔ اصلی حل کرد. برنامه‌نویسی استقرایی
اولین کارگاه‌های آموزشی رویکرد هاو اپلیکیشن‌های برنامه‌نویسی‌استقرایی که همراه با ICML 2005 برگزار شد اپلیکیشن‌های کاربردی را شناسایی کرد که «فراگیری برنامه‌ها یا قوانین بازگشتی فراخوانده می‌شود، ابتدا در حوزه مهندسی نرم‌افزار که در ان یادگیری ساختاری، دستیاران نرم‌افزار و عوامل نرم‌افزار می‌توانند به راحتی برنامه نویسان از کارهای پیش پا افتاده، پشتیبانی برنامه‌نویسی برای کاربران نهایی، یا پشتیبانی از برنامه نویسان تازه‌کار و سیستم‌های آموزش برنامه‌نویسی کمک کنند. حوزه‌های بیشتر کاربرد عبارت اند: از یادگیری قوانین کنترل بازگشتی برای برنامه ریزی هوش مصنوعی، یادگیری مفاهیم بازگشتی در وب کاوی یا برای دگرگونی قالب‌های داده.» پیچیدگی زمانی
به معنای تحلیل کارایی برحسب زمان یا حافظه است. Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein Kenneth H. Rosen, Discrete Mathematics and Its Applications 5th ed. McGraw Hill. Jalal Marhon Almaa - Time Travel E-Book آنالیز عددی
امروزه بیشتر الگوریتم‌ها توسط رایانه اجرا می‌شوند. زبان‌ها و نرم‌افزارهای مختلفی برای این کار طراحی شده‌اند. از مهم‌ترین و کاربردی‌ترین آن‌ها می‌توان به موارد زیر اشاره کرد: نظریه مرجع و نظریه‌پردازان این حوزه
۱- گزینش مواد: گزینش مواد شامل شناخت انواع گوناگون مواد لازم برای خدمت مرجع است این مواد علاوه بر کتاب، شامل ادواریها، نسخ خطی، روزنامه‌ها و سایر موادی می‌شود که به کتابدار در خدمات مستقیم کمک می‌کند انتخاب و تهیه و وجین این نوع مواد بخش مهمی از کار مرجع است بسیاری از منابع مرجع بخصوص آن گروه از آن‌ها که برای پاسخگویی سئوالات فوری به کار می‌رود به صورت سالانه منشر می‌شود اگر هر ساله برای تهیه ویرایش جدید آنم‌ها اقدام نشود پس از چند سال بخش مرجع قدرت پاسخگویی خود را شاید از دستندهند ولی بدون شک ف پاسخهای آن‌ها روزامد نخواهد بود ساختار و تفسیر برنامه‌های رایانه‌ای
ساختار و تفسیر برنامه های رایانه ای ( SICP ) یک کتاب درسی علوم کامپیوتر است که توسط اساتید موسسه فناوری ماساچوست ، هارولد آبلسون و جرالد جی ساسمن به همراه جولی ساسمن تهیه شده است. در فرهنگ هکرها به عنوان کتاب جادوگر شناخته می شود. این اصول اساسی برنامه نویسی کامپیوتر ، از جمله بازگشت ، انتزاع ، مدولار بودن ، و طراحی و اجرای زبان برنامه نویسی را آموزش می دهد . مطبوعات MIT چاپ اول را در سال 1985 ، و چاپ دوم را در سال 1996 منتشر کرد. این کتاب قبلاً به عنوان کتاب درسی برای دوره مقدماتی MIT در مهندسی برق و علوم کامپیوتر استفاده می شد. SICP بر کشف الگوهای کلی برای حل مشکلات خاص و ساخت سیستم های نرم‌افزاری استفاده می کند که از این الگوها استفاده می کنند. مسئله ژوزفوس
۱-توماس کرمن، چارلز لیزرسون، رونالد ریوست، کلیفورد استین، مقدمه‌ای بر الگوریتم ها، چاپ دوم، ۲۰۰۱، شابک ۰-۲۶۲-۰۳۲۹۳-۷، فصل ۱۴، بحثی در مورد ساختمان داده‌ها، صفحه ۱۱۸ التفهیم
David Plant زندگینامه ابوریحان بیرونی Carl Brockelmann Geschichte der Arabischen Litteratur A New Edition, with a Preface by Jan Just Witkam Brill Academic Pub, 1996  ترجمه انگلیسی التفهیم ابوریحان بیرونی - Robert Ramsay wrightThe Book of Instruction in the Elements of the Art of Astrology الگوریتم کلونی مورچگان
کورش عشقی؛ مهدی کریمی نسب؛ تحلیل الگوریتمها و طراحی روشهای فرابتکاری؛ انتشارات دانشگاه شریف؛ ۱۳۹۵ یادگیری سازمانی
۱-سبحانی نژاد، مهدی؛ یوزباشی، علی(۱۳۸۵) سازمان یادگیرنده؛ مبانی نظری، الگوهای تحقق و سنجش. تهران: انتشارات یسطرون یادگیری ماشینی
ممکن است فرد دیگری در فرایند یادگیری ماشینی نیاز به پردازش تصویر داشته باشد. در چنین حالتی زبان‌های متلب و پایتون بهترین گزینه هستند. چرا که کتابخانه‌های قوی برای پردازش تصویر دارند. در حالتی که افراد بخواهند در تئوری‌های مربوط به یادگیری ماشینی عمیق شده و از روش‌های آماری خاص استفاده کنند گزینه مناسب R خواهد بود. البته سی شارپ که به تازگی با ارائه عمومی model builder وارد این مبحث شده (قبل از این هم از model builder در برخی تکنولوژی‌های خود مانند bing استفاده کرده بود) قطعاً حرف‌های زیادی در این زمینه خواهد داشت. همچنین با توجه به سادگی استفاده از آن و تنها با تسلط به زبان #C و حتی با دانش اندک ریاضی محبوبیت خود را به دست می‌آورد.نرم‌افزارهایی که عموماً در یادگیری ماشینی کاربردی هستند. نیک رابینسون (اوریگامیست)
رابینسون در طول زندگی حرفه ای خود از مهارت‌های اریگامی خود در بسیاری از پروژه‌های تجاری استفاده کرده‌است، از جمله ایجاد یک جایزه برای جوایز طراحی و تولید کتاب انگلیس و طراحی مدل‌های تبلیغات "Art Attack" Kelloggs. وی همچنین با Verve Clicquot، موزه ویکتوریا و آلبرت، N-Power، زیراکس، ریبنا، پنگوئن، گوگل، روزنامه گاردین، وادینگتون، نورسکه اسکوگ، خانه چتسورث، بیبی، ساپی و بسیاری دیگر همکاری کرد. وی همچنین به عنوان بخشی از تلاش برای ترویج کتابی به نام "The Airman" از Eion Colfer مدل‌های اریگامی را ایجاد کرد. مدلسازی معنایی داده
Powell, Gevin (2006). Beginning Database Design. Available from http://books.google.com/books?id=HbAhv1zAIQ8C&printsec=frontcover&dq=database&source=bl&ots=iUQ01XBO8X&sig=oXm9N_LsdqZMunF-4MGrJrYfqkE&hl=en&sa=X&ei=Q5QaUOrvOsTRhAestoGQBA&ved=0CE4Q6AEwBTgK#v=onepage&q=database&f=false : • ریاضی نیا، مهدی (۱۳۸۸). پایگاه داده (کامپیوتر). تهران، جهاد دانشگاهی الگوریتم
مفهوم الگوریتم را معمولاً با تشبیه به دستور آشپزی توضیح می‌دهند. به طور مثال اگر بخواهیم آبگوشت درست کنیم (عمل مورد نظر) با فرض اینکه مواد خام را داریم (حالت اولیه) مراحل مشخصی را باید طبق دستور آشپزی طی کنیم (دستورالعمل‌ها) تا به آبگوشت آماده (حالت پایانی) برسیم. البته الگوریتم‌ها معمولاً پیچیده‌تر از این هستند. کاهش پیچیدگی
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms, MIT Press, 2001, مهندسی به کمک رایانه
واژه CAE به این معنی است که تحلیل‌های استاتیکی، دینامیکی و حرارتی روی قطعات شبیه‌سازی شده در رایانه انجام می‌گیرد. در این مرحله توزیع تنش، تغییر مکان و در مواردی دما در حین عملکرد قطعه و مجموعه بدست می‌آید. کتاب "طراحی و ساخت به کمک کامپیوتر CAD/CAM/CAE"، تألیف: محمدحسین صادقی، احسان شکوری انتشارات: عابد مقدمه‌ای بر الگوریتم‌ها
تصویر مجسمه متحرک نشان داده شده بر روی جلد، اثری است از الکساندر کالدر با نام "قرمز بزرگ"، که می‌توان آن را در موزه هنر آمریکایی ویتنی در شهر نیویورک یافت. الگوریتم‌ها و محاسبات
این مبحث پس از آشنایی دانشجویان با نظریه زبان‌ها و ماشین‌ها مطرح می‌شود. در این مبحث مدل‌ها و روش‌های مختلف محاسبات مورد مطالعه قرار می‌گیرد . همچنین محدودیت‌های محاسبات به ویژه در الگوریتم‌های کامپیوتری مورد مطالعه قرار می‌گیرد. راه حل‌هایی برای مسائلی که حتی با پیشرفته‌ترین سیستم‌ها هم مدت زمانی طولانی برای اجرای الگوریتمشان نیاز است، در این مبحث ارائه می‌شود. اقتصادسنجی
برای اقتصادسنجی سری زمانی، کتاب «اقتصادسنجی کاربردی سری زمانی» نوشتهٔ والتر اندرز را می‌توان ذکر کرد. این کتاب توسط مهدی شاهدانی و سعید شوال‌پور به فارسی ترجمه شده‌است. برای یادگیری روش‌های اقتصادسنجی خرد، کتاب روش‌های انتخاب گسسته با شبیه‌سازی (Discrete Choice methods with simulation) نوشتهٔ کِنِت تِرِین و کتاب تحلیل داده خرد (Analysis of Microdata) نوشتهٔ وینکلمن و بوئِس از مراجع اصلی هستند. بادی بالتاجی و آریس اسپانوس از دیگر مؤلفان مطرح در زمینه‌های مختلف اقتصادسنجی هستند. هنر الگوریتمی
در این بخش هیچ منبع و ماخذی ذکرنشده‌است. لطفاً به بهبود این بخش با اضافه کردن نقل و قول در منابع معتبر کمک کنید. بازاریابی و هوش مصنوعی
2.Tedesco, B. G. (1992), Neural Analysis: Artificial Intelligence Neural Networks Applied to Single Source and Geodemographic Data. Chicage, IL: Grey Associates. شبه‌کد
کتاب‌های درسی و منتشرات علمی مربوط به کامپیوتر و محاسبات عددی غالباً از شبه کد برای بیان الگوریتم‌ها استفاده می‌کنند، تا برنامه نویسان آن‌ها را بفهمند، حتی اگر آن‌ها تمام آن زبان برنامه نویسی را بلد نباشند. در کتاب‌های درسی، معمولاً بخشی برای معرفی قراردادها و توضیح ویژگی کدها و سبک کدنویسی وجود دارد تا خواننده بتواند منظور نویسنده را به سادگی متوجه شود و در طول مطالعه کتاب مشکلی با کدهای نوشته شده در کتاب نداشته باشد. میزان جزئیات این زبان‌ها ممکن است در برخی موارد به زبان‌های همه منظوره رسمی نزدیک باشد –برای مثال، کتاب مرجع کنوت " هنر برنامه‌نویسی کامپیوتر" الگوریتم‌ها را در زبان اسمبلی کاملاً صریح که برای ریزپردازنده ناموجود است نوشته شده‌است. برنامه‌نویسی که می‌خواهد الگوریتم مشخصی را پیاده کند، مخصوصاً الگوریتمی که با آن آشنایی ندارد، غالباً با توضیح شبه کد آن شروع خواهد کرد، و سپس آن شرح را به سادگی به زبان برنامه‌نویسی هدف ترجمه خواهد کرد و سپس آن را تغییر خواهد داد تا به درستی با سایر قسمت‌های برنامه هماهنگی داشته باشد. برنامه نویسان ممکن است همچنین یک پروژه را با بیان کلیات آن به صورت شبه کد و بر روی کاغذ شروع کنند و سپس آن را به زبان واقعی بنویسند، به عنوان یک روش حل ساختاری بالا به پایین. همانگونه که از اسم آن مشخص است، شبه کد معمولاً از گرامر هیچ زبان مشخصی پیروی نمی‌کند، و هیچ فرم سیستماتیک استاندارد یا ساخت یافته‌ای وجود ندارد، هرچند هر نویسنده‌ای ممکن است به‌طور کلی سبک و گرامر زبان خاصی را استفاده کند برای مثال ممکن است برای بیان کدهای درون یک بلوک مانند زبان‌های برنامه نویسی C و جاوا از گیومه استفاده کند یا اینکه صرفاً مانند زبان برنامه‌نویسی پایتون از فاصله‌ها استفاده کند. انتخاب روش نوشتن شبه کد قراردادی است که نویسنده دارد و می‌تواند مستقل از یک زبان برنامه‌نویسی خاص باشد. اما نویسندگان معمولاً از گرامر و سبک زبان‌های محبوب و معروفی مثل پاسکال، بیسیک، C،C++، جاوا، لیسپ و ALGOL استفاده می‌کنند. تعریف متغیرها در یک شبه کد ذکر نمی‌شود. صدا کردن توابع و بلوک‌ها برای مثال کدهای درون حلقه غالباً با کد یک خطی طبیعی جایگزین می‌شوند. در نتیجه وابسته به نویسنده، شبه کد ممکن است در سبک و سیاق گستردگی زیادی داشته باشد، از پیاده‌سازی تقریباً دقیق یک زبان مشخص در یک سو تا توصیف توضیحی کد به زبان انسانی در سوی دیگر. codice_1 برای دیدن مثال‌های بیشتر می‌توانی به مقالات با مثال‌های شبه کد مراجعه کنید. در محاسبات عددی، شبه کد غالباً شامل نماد گذاری ریاضی است، نوعاً از مجموعه و تئوری ماتریس، ترکیب شده با یک زبان قراردادی، و شاید توضیحات زبان طبیعی. این یک نماد گذاری فشرده و غالباً غیررسمی است که تعداد زیادی از ریاضی آموختگان می‌توانند آن را متوجه شوند، و یک روش بسیار متداول است برای بیان آلگوریتم‌های ریاضی. معمولاً حروف چینی غیر اسکی برای معادلات ریاضی مورد استفاده قرار می‌گیرد، برای مثال به وسیله Tex یا MathML یا ویرایشگران فرمول اختصاصی. شبه کدهای ریاضی گاهی اوقات کد دست وپا شکسته(pidgin) نامیده می‌شوند، برای مثال pidgin ALGOL، pidgin fortran، pidgin basic، pidgin pascal، pidgin C، pidgin Ada. غالباً پیشنهاد می‌شود که زبان‌های برنامه‌نویسی آینده بیشتر از زبان‌های متداول امروز به زبان طبیعی و زبان انسان نزدیک باشند؛ نکته اینجاست که با رو به افزایش بودن سرعت کامپیوترها و پیشرفت‌های حاصل در زمینه کامپایل کردن به کامپیوترها این اجازه را خواهد داد که از توضیح الگوریتم‌ها برنامه را ایجاد کنند، به جای اینکه نیاز داشته باشند تا انسان تمام جزئیات را پیاده کند. دستور زبان طبیعی در زبان‌های برنامه نویسی تلاش‌های گسترده برای وارد کردن دستور زبان طبیعی به زبان‌های برنامه‌نویسی منجر به ایجاد زبان‌های برنامه‌نویسی از قبیل HyperTalk، Lingo، AppleScript، SQL و Inform شده‌است. در این زبان ها، پرانتزها و کاراکترهای خاص با حروف اضافه جایگزین شده‌اند تا کد به زبان طبیعی نزدیک تر باشد. این کار باعث می‌شود که انسانی که با زبان آشنایی ندارد متوجه کد شود و حتی یک زبان را نیز بیاموزد. در هر حال، شباهت به زبان طبیعی بیشتر جنبه زیبایی دارد تا اصالت. قواعد گرامری دقیقاً مانند زبان‌های برنامه‌نویسی قراردادی محض و رسمی هستند، و لزوماً نوشتن برنامه‌ها را آسان تر نمی‌کنند. یک جایگزین برای استفاده شبه کد ریاضی (شامل نظریه مجموعه‌ها و عملیات ماتریسی) برای مستند سازی الگوریتم‌ها استفاده از یک زبان برنامه‌نویسی ریاضی وار است که از ترکیبی از نمادگذاری ریاضی غیر اسکی و ساختارهای کنترل برنامه باشد. سپس کد می‌تواند توسط ماشین تجزیه و تفسیر شود. چند زبان‌های خصوصیات رسمی نماد گذاری نظریه مجموعه‌ها را با کمک کاراکترهای ویژه شامل می‌شوند. برای مثال: نماد گذاری Z الگوریتم
تمام الگوریتم‌ها (خوارزمی‌ها) باید شرایط و معیارهای زیر را دارا باشند: یک الگوریتم باید هیچ یا حداقل یک پارامتر را به عنوان ورودی بپذیرد الگوریتم بایستی حداقل یک کمیت به عنوان خروجی (نتیجهٔ عملیات) تولید کند دستورهای الگوریتم باید با زبانی دقیق و بی‌ابهام بیان شوند. هر دستورالعمل نیز باید انجام‌پذیر باشد. دستورهایی نظیر «مقدار ۶ یا ۷ را به x اضافه کنید» یا «حاصل تقسیم پنج بر صفر را محاسبه کنید» مجاز نیستند؛ چرا که در مورد مثال اول، معلوم نیست که بالاخره چه عددی باید انتخاب شود، و در خصوص مثال دوم هم تقسیم بر صفر در ریاضیات تعریف نشده‌است. الگوریتم باید دارای شروع و پایان مشخصی باشد، به نحوی که اگر دستورهای آن را دنبال کنیم، برای تمامی حالت‌ها، الگوریتم پس از طی مراحل، خاتمه یابد. به علاوه، زمان لازم برای خاتمه الگوریتم هم باید به گونه‌ای معقول و کوتاه باشد. تحلیل الگوریتم‌ها
در نظریه پیچیدگی محاسباتی نیز همین روش را پی‌می‌گیریم ولی به جای روش‌های تجربی از روش‌های ریاضی استفاده می‌کنیم. به این منظور ابتدا برای ورودی مسئله یک اندازه تعریف می‌کنیم. این اندازه می‌تواند میزان حافظهٔ مورد نیاز برای ذخیره کردن ورودی مسئله باشد. سپس زمان (یا فضای) مورد نیاز برای حل مسئله توسط یک الگوریتم به صورت تابعی از اندازهٔ مسئله محاسبه می‌شود. به محاسبه یا تقریب زدن این چنین تابعی تحلیل الگوریتم گفته می‌شود. طراحی الگوریتم روس تقسیم و حل
۱. ↑کورمن، مقدمه‌ای بر الگوریتم‌ها. الگوریتم Goldberg و Tarjan
[10] A.V. Goldberg, _E. Tardos, and R.E. Tarjan (1990) Network Flow Algorithms. In: B. Korte, L. Lov_asz, H. J. Promel, A. Schrijver (eds.): Flows, Paths and VLSI Layout, Springer, Berlin, 101-164 پرویز جبه‌دار مارالانی
پرویز جبه‌دار چندین کتاب در زمینه مهندسی برق ترجمه و تألیف کرده‌است که بیشتر آن‌ها (مانند کتاب‌های "نظریه اساسی مدارها"، "الکترومغناطیس میدان و موج" و "سیگنال‌ها و سیستم‌ها") در دانشکده‌های مهندسی برق ایران به عنوان مرجع استفاده می‌شود. همچنین دو عدد از این کتب («روش‌های کامپیوتری طرح و تحلیل مدار» و «سیستم‌های کنترل نوین» در سال‌ها ۱۳۶۷ و ۱۳۷۰ به عنوان کتاب سال جمهوری اسلامی معرفی گشته‌است. مقدمه‌ای بر الگوریتم‌ها
ویراست دوم کتاب که توسط انتشارات مک گروهیل منتشر شد، یک عدد لوح فشرده نیز به همراه داشت که در آن مثال‌هایی به زبان جاوا قرار داشت. نمادهای توابع رشد الگوریتم‌ها
الگوریتم ابزاری است که از آن برای حل‌مسئله استفاده می‌شود. گاهی‌اوقات بیش از یک الگوریتم برای حل یک مسئله وجود دارد؛ بنابراین بهینه بودن ابزارها حایز اهمیت است. مهم‌ترین پارامترهای بهینگی یک الگوریتم، میزان حافظه و زمانی است که برای اجرا مصرف می‌کند و این دو پارامتر، معیارهایی برای سنجش کارایی الگوریتم هستند. در این مقاله به تحلیل‌زمانی الگوریتم‌ها می‌پردازیم. یکی از روش‌های تحلیل‌زمانی الگوریتم بررسی زمان اجرا در بدترین‌حالت و حالت‌میانگین می‌باشد. توجه کنید که بهترین زمان اجرای الگوریتم اهمیت چندانی ندارد، چرا که این حالت معمولاً برای ورودی با تعداد کم و در شرایط خاص اتفاق می‌افتد و زمان اجرا هم اغلب آنقدر کوتاه است که مهم نیست از چه الگوریتمی استفاده می‌شود. بعضی مواقع پیچیدگی (منظور از پیچیدگی، تابعی است برحسب اندازه ورودی که زمان اجرای الگوریتم را بیان می‌کند. در ادامه بحث به چگونگی محاسبهٔ آن خواهیم‌پرداخت) حالت‌میانگین و بدترین‌حالت با یکدیگر تفاوت چندانی نمی‌کند اما معمولاً پیچیدگی الگوریتم در حالت‌میانگین بهتر از پیچیدگی آن در بدترین‌حالت است؛ چراکه اغلب بدترین‌حالت الگوریتم به‌ندرت اتفاق می‌افتد. از این رو پیچیدگی حالت‌میانگین الگوریتم‌ها همان رفتار مورد انتظار ماست. با استفاده از پیچیدگی الگوریتم‌ها، می‌توانیم آن‌ها را از نظر میزان کارایی با یکدیگر مقایسه کنیم. برای مثال، زمان اجرای الگوریتم‌های مرتب‌سازی ادغامی و مرتب‌سازی درجی را مقایسه می‌کنیم. می‌دانیم الگوریتم مرتب‌سازی ادغامی از مرتبه‌ی(O(log n و الگوریتم مرتب‌سازی درجی از مرتبهformula_1 می‌باشد. همان‌طور که مشاهده می‌شود، برای مقادیر کوچک مانند ۱ یا ۲ الگوریتم مرتب‌سازی درجی سریع‌تر از الگوریتم مرتب‌سازی ادغامی عمل می‌کند اما هرچه مقدار n افزایش می‌یابد، الگوریتم مرتب‌سازی ادغامی بسیار سریع‌تر از الگوریتم مرتب‌سازی درجی عمل می‌کند؛ بنابراین از آنجا که اغلب برای ورودی‌های خیلی بزرگ از الگوریتم‌ها استفاده می‌کنیم، به تحلیل الگوریتم‌ها برای nهای بزرگ می‌پردازیم. در این مقاله سعی شده تا روش‌هایی برای مقایسه زمان اجرای الگوریتم‌ها بیان کنیم تا به درک روشنی از میزان بهینه بودن آن‌ها برسیم. در ابتدا به معرفی علایم قراردادی پرداخته سپس مفاهیم، تعاریف و مثال‌هایی از آن‌ها بیان می‌کنیم. زمان اجرای الگوریتم
زمان اجرای یک الگوریتم ((T(n) از مسائل مهم طراحی الگوریتم می‌باشد و غالباً کارایی الگوریتم‌ها، از روی زمان اجرای آن‌ها بررسی می‌شود. همان‌طور که می‌دانیم الگوریتم عبارتست از: مجموعه‌ای از دستورها و دستورالعمل‌ها برای حل مسئله، که شرایط زیر را باید دارا باشد: مقدمه‌ای بر الگوریتم‌ها
کتاب مقدمه‌ای بر الگوریتم‌ها به زبان فارسی توسط عین الله جعفرنژاد قمی ترجمه شده و در ۲ جلد به چاپ رسیده‌است: یادگیری قانون وابستگی
بعضی الگوریتم‌های معروف در این زمینه عبارتند از: آپریوری، اکلات (Eclat) و FP-Growth. تمامی این الگوریتم‌ها تنها انجام دهنده نیمی از مسیر تولید قوانین وابستگی هستند. چرا که این الگوریتم‌ها برای کاوش مجموعه آیتم‌های مکرر ساخته شده‌اند و پروسه دیگری روی مجموعه آیتم‌های مکرر باید انجام شود تا منتهی به قوانین وابستگی شوند. الگوریتم ژنتیک
کتاب: پیاده‌سازی و حل مسائل کاربردی با الگوریتم ژنتیک ISBN 9789648821659 فرایادگیری (علوم کامپیوتر)
با استفاده از انواع مختلف فراداده، مانند خصوصیات مسئله یادگیری، خصوصیات الگوریتم (مانند معیارهای عملکرد)، یا الگوهایی که قبلاً از داده‌ها کشف شده‌است، می‌توان الگوریتم‌های یادگیری مختلف را آموخت، انتخاب کرد، تغییر داد، یا ترکیب کرد تا به‌طور مؤثر یک مسئله یادگیری داده شده را حل کرد. انتقادهای وارد شده بر رویکردهای مبتنی بر فرا یادگیری شباهت‌های زیادی به انتقادهای وارد شده بر رویکردهای مبتنی بر الگوریتم‌های فراابتکاری، به عنوان مسئله‌ای حدوداً مرتبط، دارند. یک تشبیه خوب برای فرا یادگیری، و همچنین منبع الهام بخش کارهای اولیه (1987) و کارهای یوشوا بنگیو و دیگران (۱۹۹۱)، بیان می‌کند که تکامل ژنتیکی فرایند یادگیری که در ژن‌ها رمزگذاری شده و در مغز هر فرد اجرا می‌شود را یادمی‌گیرد. در یک سیستم فرا یادگیر سلسله مراتبی پایان باز که از برنامه‌نویسی ژنتیکی استفاده می‌شود، روش‌های تکاملی بهتر می‌توانند توسط فرا تکامل آموخته شوند، که خود می‌تواند با فرا فرا تکامل و غیره بهبود یابد. بازاریابی و هوش مصنوعی
3.Tedesco, B. G. (1992). Neural Marketing: Artificial Intelligence Neural Networks In Measuring Consumer Expectations. Chicago, IL: Grey Associates. الگوریتم سیمپل
بسیاری از کتاب های محبوب در دینامیک سیالات محاسباتی در مورد الگوریتم سیمپل و جزئیات آن پرداخته‌اند. نوع تغییریافته این الگوریتم سیمپلرتوسط پاتانکار در ۱۹۷۹ ارایه شد. سیستم‌عامل‌ها: طراحی و پیاده‌سازی
سیستم‌عامل‌ها: طراحی و پیاده‌سازی نام یک کتاب شناخته‌شده دربارهٔ مفاهیم و ساختار سیستم‌عامل‌ها است که توسط اندرو تننباوم و با همکاری آلبرت وودهال نوشته شده‌است. این کتاب دربرگیرنده سیستم‌عامل مینیکس است که تننباوم آن را برای اهداف آموزشی نوشته و به همراه کتاب عرضه کرده‌است. مینیکس یک سیستم‌عامل شبه یونیکس است و با استاندارد پازیکس هم سازگاری دارد. این کتاب در سال ۱۹۸۷ توسط انتشارات پرنتیس هال به چاپ رسیده است. در نسخه‌های اولیه این کتاب، کد منبع سیستم‌عامل مینیکس به صورت چاپ شده و در ۷۱۹ صفحه در کتاب قرار داده شده بود، اما در نسخه‌های جدیدتر، مینیکس به صورت دیسکی ضمیمه کتاب شده‌است. تا کنون ترجمه‌های مختلفی از این کتاب در ایران صورت گرفته‌است. کتاب در حال حاضر در ویرایش سوم خود به سر می‌برد و از ۵ فصل تشکیل شده‌است: الگوریتم
در ریاضیات و علوم کامپیوتر، یک الگوریتم یک دنباله محدود از دستورالعمل های کاملاً تعریف شده است که معمولاً برای حل یک کلاس از مسائل خاص یا انجام یک محاسبات استفاده می شود. الگوریتم ها به عنوان مشخصاتی برای انجام محاسبات، پردازش داده ها، استدلال خودکار، تصمیم گیری خودکار و سایر وظایف استفاده می شوند. شیوه محاسبه معدل در مدرسه، یکی از نمونه‌های الگوریتم است. الگوریتم جریان داده‌ها
اگرچه مطالعه الگوریتم جریان توسط مونرو و پاترسون دراوایل ۱۹۸۰ آغاز شد اما توسط و نایجل مارتین در ۱۹۸۲–۱۹۸۳ باعث شد موضوعات مرتبط به الگوریتم‌های جریان برای اولین بار به رسمیت شناخته شود و در یک مقاله در سال ۱۹۹۶ توسط نوگا آلون، یوسی ماتیاس، و ماریو محبوب شد. نویسندگان این مقاله بعداً جایزه گودل در سال ۲۰۰۵ را «برای سهم بنیادی شان نسبت به الگوریتم‌های جریانی» کسب کردند. از آن زمان کار زیادی حول الگوریتم‌های جریان داده انجام شد که طیف متنوعی از زمینه‌های علوم کامپیوتر از قبیل تئوری، پایگاه داده، شبکه و پردازش زبان طبیعی را گسترش داد. الگوریتم‌های نیمه جریانی در سال ۲۰۰۵ به عنوان یک فرمت از الگوریتم‌های جریانی ارائه شد که برای تعداد ثابت یا لگاریتمی از گذرگاه‌ها روی مجموعهٔ داده‌ها امکان‌پذیر است. کاربرد الگوریتم‌ها
کورمن، توماس اچ. ،و دیگران، مقدمه‌ای بر الگوریتم‌ها. ترجمه عین الله جعفرنژاد قمی، بابل:نشر علوم رایانه،۱۳۸۹. نیپولیتان، ریچارد، و کیومرث نعیمی پور. طراحی الگوریتم‌ها. بابل:علوم رایانه،۱۳۹۰. طراحی الگوریتم
هم اکنون در ایران طراحی الگوریتم‌ها به عنوان درسی در رشته مهندسی کامپیوتر (نرم‌افزار و سخت‌افزار) و فناوری اطلاعات تدریس می‌شود. در طراحی الگوریتم‌ها مباحثی همچون پیچیدگی زمانی، بازگشتی، روش تقسیم و غلبه، روش حریصانه، روش برنامه‌سازی پویا، تکنیک عقب‌گرد، نظریه P و NP تدریس می‌شود. زبان‌های برنامه‌نویسی رایانه‌های بزرگ مانند زبان ALGOL (برای زبان الگوریتمی)، زبان FORTRAN، زبان COBOL، زبان PL/I، زبان SAIL و SNOBOL ابزار محاسبات برای به اجرا درآوردن یک طراحی الگوریتم است؛ اما یک طراحی الگوریتم (a/d) یک زبان نیست، یک a/d می‌تواند یک روش دست نوشته باشد، به‌طور مثال مجموعه‌ای از معادلات. یک سری از فرایندهای مکانیک انجام‌شده توسط دست، قطعه آنالوگ از تجهیزات یا فرایند دیجیتال و پردازنده است. یکی از مهم‌ترین جنبه‌های طراحی الگوریتم، ایجاد یک الگوریتم است که دارای یک زمان اجرای کارآمد باشد، که به عنوان او بزرگ (big O) شناخته شده‌است. الگوریتم‌های تطبیقی
در زمینه یادگیری ماشین و بهینه‌سازی بسیاری از الگوریتم‌ها تطبیقی می‌باشند. در واقع پارامترهای الگوریتم به‌طور خودکار براساس آمارهایی که برای بهینه‌سازی الگوریتم تا به اینجای کار به دست آمده تنظیم می‌گردد. چند مثال برای کاربرد الگوریتم‌های تطبیقی در یادگیری‌ماشین چهارگوشه تطبیقی و آدابوست می‌باشد. عامل هوشمند
Artificial Intelligence, A Modern Approach, Russel & Norvige, Printice Hall, 2003, 2nd edition نظریه مرجع و نظریه‌پردازان این حوزه
در دهه ۱۹۴۰، رانگاناتان، ویرایش نخست کتاب خدمات مرجع و کتابشناسی را منتشر کرد این کتاب و دیگر آثاری که رانگاناتان در زمینه خدمات مرجع در سال‌های بعد منتشر کرد، جملگی براساس پنج قانون کتابداری او تدوین و تألیف شده‌اند این پنج قانون عبارتند از: به نظر رانگاناتان خدمات مرجع کارکرد نهایی و غایی هر کتابخانه‌است، بدون آنکه کوچک یا بزرگ بودن آن کتابخانه تأثیری داشته باشد (مرادی، ۱۳۷۲، ص۴) تکنیک‌های تحلیل ریزآرایه
سیستم های تجاری (مانند Ingenuity و Pathway studio) برای تجزیه و تحلیل شبکه های ژن, نمایش های بصری از ژن های متفاوت بیان شده را بر اساس علم امروز ایجاد می کنند. ابزارهای غیر تجاری (مانند FunRich ،GenMAPP و Moksiskaan) همچنین در سازماندهی و تجسم داده های شبکه ژنی(که از یک یا چند آزمایش ریزآرایه تهیه‌ شده‌اند) کمک می کنند. طیف گسترده ای از ابزارهای تحلیل ریزآرایه‌ها از طریق Bioconductor (که به زبان برنامه نویسی R نوشته شده است) ، در دسترس هستند. ماژول SAM که اغلب به آن استناد می شود و سایر ابزارهای ریزآرایه ای [21] از طریق دانشگاه استنفورد, هاروارد و موسسه تکنولوژی ماساچوست در دسترس است. الگوریتم Goldberg و Tarjan
[12] W.S. Jewell (1958) Optimal Flow through Networks. Interim Technical Report 8, MIT سیستم‌عامل روبات
نرم‌افزارها در اکوسیستم ROS را می‌توان به سه گروه مجزا تقسیم‌بندی کرد: هر دو ابزار مستقل از زبان و کتابخانه‌های کلاینت اصلی (C++، پایتون و Lisp) تحت مجوز BSD منتشر شده‌اند و بنابراین متن‌باز هستند و برای استفاده تجاری و تحقیقاتی رایگان می‌باشند. اغلب سایر بسته‌های تحت سایر مجوزهای متن‌باز هستند که عملیات‌های معمول و کاربردهایی مثل درایورهای سخت‌افزار، مدل‌های ربات، انواع‌داده‌ای، طرح‌ریزی، ادراک، محلی‌سازی و نقشه‌برداری همزمان (Simultaneous localization and mapping)، ابزارهای شبیه‌سازی، و سایر الگوریتم‌ها را پیاده‌سازی می‌کنند. هندسه محاسباتی
مجلات در زمینهٔ الگوریتم‌های هندسی الگوریتم Goldberg و Tarjan
[7] A.V. Goldberg, and M. Kharitonov (1993) On Implementing Scaling Push-Relabel Algorithms for the Minimum-Cost Flow Problem. In: DIMACS Series in Discrete Mathematics and Theoretical Computer Science, Vol. 12, 157-198 الگوریتم Goldberg و Tarjan
[6] A.V. Goldberg (1992) An E_cient Implementation of a scaling Minimum{Cost Flow Algorithm. Departement of Computer Science, Stanford University, August 1992; NEC Research Institute, Princeton, October 1992; Journal of Algorithms 22 (1997), 1-29 دستان طراح
به این لیتوگرافی در کتاب گودل، اشر، باخ اثر داگلاس هافستادر اشاره شده‌است. در این کتاب هافستادر این اثر را نمونه‌ای از یک حلقه عجیب بر می‌شمرد. در کتاب ساختار و تفسیر برنامه‌های کامپیوتری نوشتهٔ هارولد ابلسن و جرالد جی ساسمن نیز به این طرح به عنوان تمثیلی برای شیوهٔ کار تابع‌های codice_1 و codice_2 (که یکدیگر را تغذیه می‌کنند) در مفسرهای زبان‌های برنامه‌نویسی اشاره شده‌است. نظریه مرجع و نظریه‌پردازان این حوزه
۲- راهنمای استفاده از کتابخانه:بسیاری از مراجه کنندگان به راحتی قادر به استفاده از امکانات و مجموعه کتابخانه نیستند طرز استفاده از برگه دان را نمی‌دانند ازنظام رده‌بندی کتابخاه اطلاع درستی ندارند به دنبال قسمت مجلات، یا انشارات دولتی می‌گردند، حتی ازکتابدارکتابخانه سراغ مداد تراش را می‌گیرند به منظور سهولت در استفاده از کتابخه و برای صرفه جویی در وقت مراجعه‌کننده، راهنمایی این گروه بر عهده کتابداربخش مرجع است. آرایه (ساختار داده)
در زبان پی اچ پی $array = array(); $array[] = "IRAN"; // It's Index will be 0 $array[] = "Persia"; // It's Index will be 1 echo $array[0]; // Answer : IRAN echo $array[1]; // Answer : Persiaجعفرنژاد قمی، عین‌الله. طراحی الگوریتم‌ها. چاپ ششم، انتشارات علوم رایانه، ۱۳۸۳. یادگیری ماشینی
Richard S. Sutton and Andrew G. Barto, Reinforcement Learning: An Introduction, MIT Press, 1998 (online version). آکادمی داده‌کاوی محلی‌سازی و نقشه‌برداری همزمان
الگوریتم‌های مختلف SLAM در سیستم عامل روبات (ROS) منبع باز استفاده می‌شود که اغلب با استفاده از کتابخانه ابر نقطه برای نقشه‌های سه‌بعدی یا ویژگی‌های بصری مورد استفاده قرار می‌گیرد.