moaminsharifi/fa-wiki-spell-checker huggingface dataset:
این تصادفی بودن عدد و رمز عبور می‌تواند درجه‌های مختلفی داشته باشد. تعداد زیادی سایت‌ها و برنامه‌های مختلفی وجود دارند که توابع مختلفی برای ساخت زمز عبور تصادفی ارائه می‌دهند و تعدادی از این توابع را در ادامه نشان داده شده‌اند .رمز عبورها در واقع کلیدی برای دسترسی به اطلاعات اشخاص هستند بنابراین اهمیت آنها بسیار واضح است اما اهمیت رمز عبورهای تصادفی را می‌توان زمانی فهمید که مرورگرهای اینترنت از جمله گوگل کروم و فایر فاکس و از این دست مرورگرهای معتبر در خود مولد رمز عبور تصادفی دارند و هنگامی که متوجه می‌شوند که می‌خواهید در سایتی ثبت نام و رمز عبور انتخاب کنید، به شما یک رمز عبور تصادفی پیشنهاد می‌دهند و پس از زدن رمز عبور، آن را در خود ذخیره می‌کنند که در واقع یکی از ابزارهای این مرورگرها مدیریت رمز عبور هامی باشد. این گونه ابزارها برای برنامه‌های مختلف در سیستم عامل اندروید از طریق برنامهٔ اصلی گوگل تعبیه شده‌اند .از آنجایی که کد منبع اینگونه برنامه‌ها را در اختیار نداریم برای اطمینان بیشتر از تابع مولد رمز عبور تصادفی و میزان تصادفی بودن آن می‌توان از منابع آزاد (متن‌باز) که کد منبع آنها در دسترس است، استفاده کرد .برای اینکه میزان تصادفی بودن رمز عبور را زیاد یا کم کرد می‌توان از عناصر مختلفی در رمز عبور استفاده کرد. به عنوان مثال رمز عبور می‌تواند تنها از اعداد تشکیل شده باشد یا حاوی کاراکترهای الفبایی یا کاراکترهای نگارشی مثل " _ ,) , (, [,] , * , # , @ " باشد. در واقع هدف از رمز عبور تصادفی این است که رمزهای عبور به راحتی قابل حدس زدن نباشند از طرفی به قدری هم سخت نباشند که قابل بازیابی نباشند .
مولد رمز عبور تصادفی هم با استفاده از اعداد تصادفی و هم با استفاده از شبه تصادفی که از طریق مولد اعداد شبه تصادفی ساخته می‌شود کار می‌کند اما اعداد شبه تصادفی کاملاً تصادفی نیستند و در واقع یک دنبالهٔ از قبل تعیین شده دارند و قابل پیش‌بینی هستند؛ بنابراین از توابعی مانند تابع ()rand که در زبان‌های برنامه‌نویسی هست می‌توان استفاده کرد اما امنیت لازم را ندارد.
function randomPassword() {
از تابع مذکور و تنها از حروف کوچک و بزرگ الفبای انگلیسی و اعداد استفاده شده‌است.
در کد زیر که نشان داده شده‌است میزان خوبی از عناصری که می‌توانند در رمز عبور بیایند گنجانده شده‌اند و در صورت نیاز کاربر می‌توان از عنصرهای مختلفی استفاده کرد.
//Written by Paul Seal. Licensed under MIT. Free for private and commercial uses.
using System.Text.RegularExpressions;
using CodeShare.Library.Passwords;
namespace CodeShare.Library.Passwords
در زبان جاوا مانند زبان‌های دیگر یک تابع پیش‌فرض برای تولید عدد تصادفی دارد که گفته شد که در اصل شبه‌تصادفی است. در این زبان برای اینکه عدد تصادفی واقعی داشته باشیم کلاسی به نام SecureRandom به وجود آورده‌اند که در پایین کد مربوط به آن را می‌بینید.
public class GenerateSecurePassword {
از این دست کلاس‌ها مانند SecureRandom که عدد شبه تصادفی ایجاد نمی‌کنند می‌توان به CryptGenRandom نیز اشاره کرد که کاربردهای زیادی از جمله در ساختن کلید در سیستم عامل ویندوز دارد.
در کامپیوترها و در محاسبات دستگاهی وجود دارد که با استفاده از الگوریتمی خاص و پروسه‌های فیزیکی یک عدد تصادفی ایجاد می‌کند که سخت‌افزار مولد عدد تصادفی نامیده می‌شود. تعداد کل کاراکترهایی که در اسکی (استاندارد) وجود دارند ۹۵ کاراکتر است. حال اگر یک جدول ۵×۱۹ داشته باشیم که خانه‌های آن را با کاراکترهای اسکی پر کرده باشیم، با سخت‌افزار مولد عدد تصادفی ابتدا عددی در بازه ۱ تا ۵ و سپس عددی در بازهٔ ۱ تا ۱۹ بدست آورده و کاراکتر خانهٔ متناظر آن در جدول را می‌خوانیم و در رشتهٔ رمز عبور قرار می‌دهیم .نسخهٔ جدول ۶×۶ برای حروف الفبای لاتین و اعداد به صورت زیر می‌باشد.
در سایت‌های مختلف دیده می‌شود زمانی که قصد انتخاب رمز عبور داریم نواری در مقابل آن وجود دارد که نشان می‌دهد که رمز عبوری که انتخاب کرده‌ایم از استحکام کافی برخوردار است یا خیر. استحکام گذرواژه مبحثی است که برای تمامی رمز عبورها مطرح می‌شود و بستگی به احتمال این دارد که در چند آزمایش یک فرد مهاجم می‌تواند این گذرواژه را حدس بزند .
در رابطه با استحکام رمز عبورهای تصادفی می‌توان گفت که در صورتی که هیچ‌کدام از کاراکترهایی که در رمز می‌آیند به هم وابسته نباشند، با استفاده از آنتروپی اطلاعات می‌توان فرمول زیر را نوشت (L طول رمز و N تعداد کل کاراکترهایی است که می‌توان در رمز به کار برد) :
همان‌طور که در این فرمول مشاهده می‌شود، کارایی رمز عبور ایجاد شده به تعداد کاراکتری که می‌تواند استفاده کند (N) محدود می‌شود.
بهینه‌سازی پرسش پرسش یک درخواست اطلاعات از پایگاه داده‌است.مفاهیم بنیادی پایگاه داده‌ها - محمد تقی روحانی رانکوهی- ویرایش چهارم - نشر جلوه پرسش می‌تواند به سادگی یک عبارت مثل" پیدا کن آدرس فردی را با شماره ملی ۱۲۳۴۵۶۷۸۹" یا یک عبارت پیچیده مثل " پیدا کن نام دانشجویانی از دانشکده کامپیوتر دانشگاه شریف که درس پایگاه داده را اخذ کرده‌اند ولی درس ساختمان داده را اخذ نکرده‌اند و درس طراحی الگوریتم را با نمره بیشتر از ۱۷ گذرانده‌اند سپس آنها را بر حسب شماره دانشجویی مرتب کن"
یکی از وظایف سیستم‌های مدیریت پایگاه‌های داده رابطه ای بهینه‌سازی پرسش است. بهینه‌ساز پرسش به معنی انتخاب پربازده‌ترین راه اجرای پرسش در میان تمام راه‌های ممکن برای اجرای آن پرسش است. این موضوع وقتی که پرسش شامل عبارت‌های پیچیده‌است بسیار مهم است.
ابتد مروری می‌کنیم بر نحوه اجرای پرسش در پایگاه داده. ترتیب اجرای عمومی پرسش به شکل زیر است.
ابتدا با یک مثال تشریح می‌کنیم برای اجرای یک پرسش راه‌های مختلفی وجود دارد، سپس در ادامه اهمیت بهینه‌سازی پرسش را نشان خواهیم داد.
پرسش زیر را در نظر بگیرید:
select student.stuID,course.course_name,course.grade
from student , course
where student.stuID=course.stuID and course_name="database" and course.grade = 20
فرض می‌کنیم در جدول student تعداد ۱۰۰ سطر و در جدول course، تعداد ۱۰۰۰ سطر را داریم. در بین ۱۰۰۰ سطر جدول course، تعداد ۳۰۰ سطر فقط شرط "course_name="database و تعداد ۲۵۰ سطر فقط شرط
course.grade = ۲۰ را ارضا می‌کنند و تعداد ۲۰۰ سطر هر دو شرط را ارضا می‌کنند.
با روش‌های مختلفی می‌توان پرسش ذکر شده را اجرا کرد که در اینجا به دو روش اشاره می‌کنیم:
روشن است که خروجی هر دو روش یکسان است اما روش اول به مراتب منابع بیشتری برای اجرا نیاز دارد (نگهداری ۱۰۰٬۰۰۰ سطر حافظه بیشتری نسبت به ۲۰٬۰۰۰ سطر نیاز دارد) و زمان پردازش آن نیز بیشتر خواهد بود. این مثال لزوم انتخاب روش درست برای اجرای پرسش را تأیید می‌کند.
به‌طور کلی، کاربران نمی‌توانند به شکل مستقیم به بهینه‌ساز پرسش دسترسی داشته باشند. البته بعضی از سیستم‌های مدیریت پایگاه داده اجازه راهنمایی بهینه‌ساز را توسط راهنماها می‌دهند. راهنما یک دستورالعمل اضافه نسبت به زبان SQL استاندارد است که به بهینه‌ساز در جهت بدست آوردن بهترین روش اجرای پرسش کمک می‌کند.
از آنجایی که ساختار پایگاه‌های داده پیچیده‌است، به جز در پرسش‌های ساده نیاز است تا اطلاعات مورد نیاز برای پرسش از راه‌های مختلفی تأمین گردد، به عنوان نمونه از جداول مختلف، از داده ساختارهای مختلف، از داده‌ها با ترتیب‌های مختلف؛ و هر راه هم‌زمان اجرای خاص خود را دارد. همان گونه که در مثال بالا نشان داده شد برای یک پرسش واحد زمان پردازش می‌تواند از کسری از ثانیه تا چندین ساعت متغیر باشد و این زمان بستگی به روش اجرای پرسش دارد. هدف بهینه‌سازی پرسش به عنوان یک فرایند خودکار پیدا کردن راهی است که بتوان پرسش را در حداقل زمان ممکن اجرا کرد. همان‌طور که ذکر شد بازه زمانی اجرای پرسش می‌تواند خیلی متغیر باشد و این موضوع لزوم بهینه‌سازی پرسش را برای رسیدن به بهینه‌ترین راه اجرا تأیید می‌کند. از آنجایی که پیدا کردن راه بهینه از میان تمام راه‌های ممکن خیلی پیچیده‌است و زمان صرف شده برای این موضوع خیلی مهم است و همین زمان باعث می‌شود از لحاظ عملی بررسی تمام راه‌ها برای اجرای پرسش غیرممکن باشد؛ بنابراین در بهینه‌سازی پرسش تلاش می‌کنیم تا به شکل تقریبی نقشه‌های اجرایی را برای پرسش بدست آوریم که از لحاظ زمانی قابل قبول بوده و تفاوت زیادی با زمان بهینه نداشته باشد.
همان‌طور که قبلاً گفته شد هر پرسش می‌تواند از راه‌های متفاوتی با هزینه‌های متفاوت اجرا شود. دو عبارت جبر رابطه ای را یکسان گوییم هرگاه خروجی‌های آن دو عبارت با یکدیگر برابر باشد. در نظر داشته باشید در این تعریف ترتیب سطرهای خروجی مهم نیست.
در این مقاله از نمادهای زیر استفاده می‌کنیم:
قوانین برابری جبر رابطه ای بیان می‌کنند چگونه دو عبارت با هم برابر هستند و می‌توان آنها را به جای یکدیگر استفاده کرد.
از این قوانین می‌توان برای بدست آوردن درخت پرسش استفاده کرد و نقشه‌های اجرا را بدست آورد.
در سیستم‌های مدیریت پایگاه‌های داده ممکن است اجزای متفاوتی وجود داشته باشد، اما می‌توان به‌طور کلی گفت همه آن‌ها دارای اجزا زیر هستند (این اجزا به ترتیب مرحله اجرا ذکر شده‌اند).
در این مرحله تشخیص داده می‌شود آیا بازنویسی پرسش به شکلی که خروجی با پرسش اولیه یکسان باشد مفید است یا خیر. مثال زیر می‌تواند این موضوع را روشن کند.
پرسش اولیه به شکل زیر به پایگاه داده فرستاده می‌شود. هدف از این پرسش بدست آوردن اسم درس و نمرات دو دانشجو با شماره دانشجویی‌های ۱۲۳ یا ۲۳۴ است.
select course.name , course.grade
from course
where course.stuID = '123' or course.stuID='234'
این پرسش پس از گذر از تبدیل کننده پرسش به شکل زیر در خواهد آمد.
where course.stuID = '123'
where course.stuID='234'
با استفاده از دستور UNION، پرسش به شکل معادل خود تبدیل شده‌است.
تخمین زننده از سه معیار برای انجام کار خود استفاده می‌کند.
کم هزینه‌ترین نقشه اجرا برای یک بلاک از پرسش را انتخاب می‌کند. برای درک بهتر این موضوع در نظر بگیرید برای یک عملیات join می‌توان از سه روش متفاوتnested loop joint,sort merge یا hash join استفاده کرد. برای هر کدام از این روش‌ها زمان‌های زیر تخمین زده شده‌است.
Best Nested Loop join cost: 13.17
Sort Merge cost: 6.08
Hash join cost: 4.57
Best:: JoinMethod: Hash
مشاهده می‌شود که کمترین زمان اجرا متعلق به روش hash join است، پس از این روش برای اجرای نقشه پرسش استفاده می‌شود.
همیشه یک معامله بین زمان صرف شده برای بدست آوردن بهترین نقشه اجرای پرسش و کیفیت نقشه انتخاب شده وجود دارد. بهینه‌ساز مستقلاً نمی‌تواند بهترین انتخاب را داشته باشد. سیستم‌های مدیریت پایگاه داده متفاوت راه‌های متفاوتی برای ایجاد تعادل بین دو فاکتور ذکر شده دارند. بهینه‌سازهای هزینه محور میزان استفاده پرسش را از منابع سیستم ارزیابی می‌کنند و آن را به عنوان مبنایی برای انتخاب یک نقشه اجرا در نظر می‌گیرند. این مدل از بهینه‌سازها به هر نقشه ممکن برای اجرای پرسش یک هزینه تخمین می‌زنند و سپس کمترین آنها را انتخاب می‌کنند. هزینه‌هایی که برای تخمین زدن زمان اجرای یک پرسش در نظر گرفته می‌شوند عبارتند از تعداد عملیات‌های I/O مورد نیاز، میزان دستور مورد نیاز به زبان ماشین برای اجرای پرسش، میزان حافظه بافر مورد نیاز از دیسک، زمان مورد نیاز دیسک و عامل‌های دیگر که توسط فرهنگ داده مشخصی می‌شود.
دو نوع بهینه‌سازی وجود دارد. بهینه‌ساز منطقی -که زنجیره ای از جبر رابطه ای برای اجرای پرسش تولید می‌کند-و بهینه‌سازی فیزیکی برای مشخص کردن مجری هر عملیات استفاده می‌شود.
تعداد زیادی از بهینه‌سازهای پرسش، نقشه‌های پرسش را به شکل درختی نشان می‌دهند که از تعدادی گره تشکیل شده‌است. هر گره این درخت یک عملیات مورد نیاز برای اجرای نقشه پرسش را نشان می‌دهد. این گره‌ها به شکل یک درخت مرتب شده‌اند که برای به دست آوردن نتیجه نهایی باید گره‌های درخت را به ترتیب از پایین به بالا اجرا کنیم و نتیجه هر گره را به عنوان ورودی گره پدر در نظر بگیریم. تعداد بچه‌های هر گره می‌تواند صفر یا بیشتر باشد به عنوان مثال یک گره که حاوی دستور join است دو بچه دارد که شامل عملوندهای ورودی آن است ولی یک دستور sort صرفاً یک ورودی (ورودی که می‌خواهیم مرتب شود) دارد. برگ‌های درخت گره‌هایی هستند که نتایج را با پویش دیسک انجام می‌دهند. برای مثال این گره‌ها می‌توانند اینکار را با index scan یا sequential scan انجام دهند.
یک نمونه :جبر رابطه‌ای عبارت formula_12 است.
یکی از دشوارترین مسائل در بهینه‌سازی پرسش، تخمین دقیق هزینه برای نقشه‌های پرسش است. بهینه‌سازها هزینه نقشه‌های پرسش را با استفاده از مدل‌های ریاضی که شدیداً به اندازه یا تعداد زوج‌ها (سطرها) که در یال‌های درخت اجرای پرسش قرار دارد وابسته است تخمین می‌زنند. تخمین اندازه بستگی به تخمین (درصد یا کسری از رکوردها در یک فایل که با رکوردهای یک فایل دیگر پیوند(join) می‌شود) در گزاره‌های پرسش دارد.
سیستم‌های پایگاه‌های داده قدیمی تعداد منتخب‌ها را از طریق آمارهای جزئی توزیع مقادیر در هر ستون مثل نمودارهای histogram تخمین می‌زنند. این روش برای تخمین منتخب‌های یک گزاره خوب کار می‌کند. اگرچه تعداد زیادی از پرسش‌ها چندین شرط را تواماً با هم دارند به‌طور مثال:
select student.ID ,student.name ,student.last_name
from student
where student.name= 'ali' and student.major = "cs"
یک بهینه‌ساز پرسش تنها به درخت پرسش وابسته نیست، بهینه‌ساز پرسش هزینه اجرای یک پرسش را با رویکردها و الگوریتم‌های مختلف تخمین زده و مقایسه می‌کند و در نهایت رویکردی را انتخاب می‌کند که کمترین هزینه را داشته باشد. برای اینکه این دیدگاه بتواند درست کار کند باید بتوان تخمین دقیقی از هزینه اجرای پرسش بدست آورد تا در نهایت رویکردهای مختلف اجرای پرسش عادلانه و واقع گرایانه مقایسه شوند. همچین باید این نکته را در نظر گرفت بهینه‌ساز باید تعداد محدودی رویکرد اجرای پرسش را بررسی کند در واقع اگر قرار باشد تمام حالت‌های اجرا را در نظر بگیرد زمان زیادی از دست می‌رود. بنابر این دیدگاه بهینه‌سازی هزینه محور مناسب پرسش‌های کامپایل شده‌است.
تصمیم‌گیری در فرایند بهینه‌سازی پرسش ساده و چالش‌های زیاده دارد. فرایند کلی بهینه‌سازی هزینه محور را می‌توان به شکل زیر خلاصه کرد:
هزینه انتقال (خواندن یا نوشتن) بلاک‌های اطلاعات بین دیسک حافظه ثانویه و بافرهای حافظه اصلی. این هزینه به اسم هزینه ورودی و خروجی دیسک ((disk I/O (input/output) هم شناخته می‌شود. هزینه جستجوی یک فایل در دیسک به نوع دسترسی به آن فایل بستگی دارد به‌طور مثال آیا فایل مرتب شده‌است؟ در هم سازی صورت گرفته‌است؟ اندیس گذاری انجام شده‌است؟ و… عوامل مختلف دیگر.
هزینه ذخیره‌سازی هر فایل میانی که با اجرای پرسش تولید شده‌است برروی دیسک را گویند.
این هزینه شامل هزینه انجام عملیات روی رکوردهای حافظه اصلی در طول اجرای پرسش است. این هزینه شامل عملیاتی است که در داخل حافظه انجام می‌شود مثل:جستجو، مرتب‌سازی، ادغام چند رکورد برای یک عملیات join. این هزینه به اسم CPU cost(واحد پردازش مرکزی) هم شناخته می‌شود.
این هزینه مربوط به تعداد بافر مورد نیاز از حافظه در طول اجرای پرسش می‌باشد.
هزینه انتقال پرسش و نتایج آن از محل پایگاه داده به محل یا ترمینالی که پرسش از آنجا فرستاد شده‌است. در :پایگاه داده توزیع‌شده، این هزینه شامل هزینه انتقال جدول‌ها و نتایج آن بین کامپیوترهای مختلف در طول ارزیابی پرسش است.
خلیل‌بیگ خاصمحمدف () سردمدار و دیپلمات آذربایجانی بود. وی زمامداری وزارت‌های دادگستری و داخله (کشور) در جمهوری دمکراتیک آذربایجان را در سال ۱۹۱۸ بر عهده داشت.
خلیل‌بیگ خاصمحمدف در سال ۱۸۷۳، در خانواده ای وکیل در شهر گنجه به دنیا آمد. وی دانش‌آموخته رشته حقوق از دانشگاه دولتی مسکو در سال ۱۸۹۵ بود. خلیل‌بیگ تأثیرات زیادی در رابطه با شکل‌گیری جهان‌بینی خود از «اسمائیل‌بیگ گاسپیرانلی» گرفت. شروع فعالیت سیاسی خلیل‌بیگ خاصمحمدف به دوران دانشجویی اش برمی گردد؛ زمانی که وی عضو «سازمان هم‌میهنان مسلمان قفقاز» بود. او سپس به عنوان وکیل مدافع در دادگاههای منطقه ای کراسنودار و گنجه کار کرد.
خلیل‌بیگ خاصمحمدف در پاییز سال ۱۹۰۵، همراه با برادرش «علی اکبر» در تأسیس سازمان «دفاعی» حضور پیدا کردن؛ سازمانی سیاسی که در گنجه فعال بود. این گروه که شامل روشنفکرانی نظیر نصیب بیگ یوسف بیگلی، «اسماعیل زیادخانف» و احمدبیگ آقایف بود، با هدف مقابله با فعالیت‌های فدراسیون انقلابی ارمنی پایه‌گذاری شده بود."İSTİQLAL BƏYANNAMƏSİNİN QƏBUL EDİLMƏSİ VƏ AZƏRBAYCAN XALQ CÜMHURİYYƏTİNİN YARANMASI". Archived from the original
خاصمحمدف نماینده دوره اول و دوم دومای روسیه بود. در نوامبر ۱۹۱۱، وی به همراه ۵ نماینده آذربایجانی دیگر در سخنرانی کم سابقه ای در دومای روسیه، سیاست تبعیضآمیزی را که، آذربایجانیان و سایر مردمان مسلمان قفقاز را با تحمیل پرداخت مالیات از گذراندن خدمت سربازی در نیروهای مسلح این امپراتوری منع می‌کرد، به باد انتقاد شدید گرفت. او به عنوان عضو حزب مساوات، فعالانه در جنبش ملی آذربایجان برای تأسیس جمهوری خودمختار در داخل مرزهای امپراتوری روسیه مشارکت داشت.Xəlil bəy Xasməmmədov - 140. azhistorymuseum.az
خلیل‌بیگ خاصمحمدف در تأسیس جمهوری دمکراتیک آذربایجان به سال ۱۹۱۸ نقش چشمگیری ایفا نمود. او نماینده شورای ملی و از امضاکنندگان اعلامیهٔ استقلال جمهوری دمکراتیک آذربایجان در ۲۸ ماه مه سال ۱۹۱۸ در شهر تفلیس بود.
در دوره جمهوری دمکراتیک آذربایجان، خواصمحمدف به ترتیب سکانداری چند وزارت را در ۴ کابینه دولت از مجموع ۵ کابینه بر عهده داشت. او در ۲۸ ماه مه سال ۱۹۱۸، به عنوان وزیر دادگستری منصوب شده و تا ۱۷ ژوئن همان سال در این سمت باقی ماند. از ۲۶ دسامبر ۱۹۱۸ تا ۱۶ ژوئن ۱۹۱۹ سکان هدایت وزارت داخله در دست او بود. این سیاستمدار آذربایجانی در ۲۴ دسامبر ۱۹۱۹ مجدداً به زمامداری وزارت دادگستری رسید، که تا ۱ آوریل ۱۹۲۰، یعنی پایان هیئت دولت پنجم عهده‌دار آن شد. وی در دوران ریاست خود بر چند وزارتخانه مختلف، همکاری قوی ای بین وزارت‌های دفاع، امنیت ملی و کشور نسبت به تهدیدهای خارجی علیه حاکمیت ملی و دولت‌داری ایجاد کرد."Ministry of Internal Affairs of Azerbaijan. Historic background of the MIA"
در اویل ماه آوریل سال ۱۹۲۹، خواصمحمدف به عنوان سفیر جمهوری دمکراتیک آذربایجان در ترکیه تعیین شد؛ ولی از آنجا که همزمان با ورود او به استانبول، دولت متبوعش به دست بلشویکها سقوط کرد، تا آخر عمرش در این کشور پنادنده شد و در سال ۱۹۴۵ درگذشت.Cümhuriyyətin ilk ədliyyə naziri - Xəlil bəy Xasməmmədov. kaspi.az
روش تنظیم برنده یا برنده تنظیم شده الگوریتمی است برای تقسیم formula_1 کالا بین دو گروه به منصفانه‌ترین شکل ممکن. این روش توسط (به انگلیسی: Steven Brams) و (به انگلیسی: Alan D. Taylor) طراحی شده‌است.http://www.nyu.edu/projects/adjustedwinner/
این الگوریتم formula_1 کالا را به گونه ای بین دو گروه تقسیم می‌کند که:
با گذشت بیش از نیم قرن از تولد نظریه بازی‌ها به عنوان یک رشته دانشگاهی، همچنان بسیاری از مذاکره کنندگان و واسطه‌های با تجربه بدون استفاده از نظریهٔ بازی‌ها و موضوعات مربوط به آن به کار خود ادامه می‌دهند. در دهه‌های گذشته امیدها افزایش یافته‌است که روش‌های ریاضی برای تقسیم منصفانه بتواند این فاصله را کم کند.Rudolf Avenhaus, I. William Zartman.Diplomacy Games: Formal Models and International Negotiations.ISBN 978-3-540-68303-2
از این روش می‌توان برای حل و فصل اختلاف‌های بین‌المللی، فسخ مشارکت و همچنین در زمینه طلاق استفاده کرد.
هدف، تقسیم مجموعه ای از اشیا، اجناس، ابزار و هر چیز مورد اختلاف بین دو نفر به منصفانه‌ترین شکل ممکن است.
فرض کنیم علی و رضا می‌خواهند مجموعه ای از دارایی‌ها را با استفاده از این روش بین خود تقسیم کنند. این دارایی‌ها شامل خانه، قایق، کلبه کوهستانی و آپارتمان ساحلی است. فرض کنیم هر کدام صد امتیاز را مطابق جدول زیر بین چهار مورد ذکر شده تقسیم کرده باشند:
در مرحله اول هر یک از دارایی‌ها به کسی تعلق می‌گیرد که مقدار ارزش بیشتری برای آن تعیین کرده باشد. پس در مرحله اول داریم:
همان‌طور که در شکل بالا می‌بینید، جمع امتیازها برابر نیست. چون این مقدار برای علی بیشتر از رضا است پس لازم است از دارایی فعلی علی کسر و به دارایی رضا اضافه کنیم. برای این که تصمیم بگیریم کدام شی را منتقل کنیم، نسبت امتیاز علی به امتیاز رضا را برای «خانه» و «کلبه» که فعلاً در جمع دارایی‌های علی است، به دست می‌آوریم:
این نسبت، میزان اهمیت شی برای افراد نسبت به یکدیگر را اندازه‌گیری می‌کند. همان‌طور که می‌بینید این عدد برای «خانه» به نسبت «کلبه» عدد کوچکتری است؛ به این معنا که «خانه» نسبت به «کلبه» برای علی ارزش کمتری دارد برای همین ابتدا خانه را از علی گرفته به رضا می‌دهیم:
با این کار این بار جمع امتیاز رضا بیشتر از علی می‌شود پس باید «خانه» را به علی بازگردانیم و این بار کسری از «خانه» را از علی به رضا منتقل کنیم به طوریکه جمع امتیاز آنان پس از این انتقال برابر شود. چون مقدار امتیازها قرار است برابر شود، معادله زیر برقرار خواهد بود:
با انتقال formula_4 از سهم «خانه» به رضا، مجموع امتیاز هر دو طرف برابر formula_5 خواهد شد و کار تقسیم به پایان می‌رسد. با این روش هر دو به میزان برابری از رضایتمندی رسیده‌اند.Harold Parks, Gary Musser, Lynn Trimpe, Vikki Maurer, Roger Maurer.A Mathematical View of Our World.ISBN 978-0-495-01061-6
در استفاده از این روش اگر یکی از طرف‌ها ارزش گذاری طرف مقابل را از قبل بداند و مطمئن باشد که طرف مقابل طبق همان ارزش گذاری عمل می‌کند، می‌تواند تقلب کند و با استفاده از این اطلاعات ارزش گذاری خود را به گونه ایxvhpd ;vni تا سهم بیشتری را از آن خود کند. به عنوان نمونه مثال زیر را در نظر بگیرید:
فرض کنید جدول ارزش گذاری نسبی زیر را داشته باشیم:
طبق روش تنظیم برنده ، formula_6 ،formula_7 و formula_8 از formula_9 به نفر اول و formula_10 ،formula_11 و formula_12 از formula_9 هم به نفر دوم می‌رسد و مجموع امتیاز برای هر کدام برابر formula_14 خواهد بود. اگر نفر اول از ارزش گذاری نفر دوم با خبر باشد، می‌داند که formula_6 و formula_7 به او می‌رسد پس کافی است امتیاز آن دو را تنها به میزان خیلی کمی بیشتر از امتیاز نفر دوم ارزش گذاری کند و باقی امتیاز خود را به اشیا دیگری که تمایل به گرفتن آنها دارد، اضافه کند. برای مثال می‌تواند به formula_6 عدد formula_18 و به formula_7 عدد formula_20 را نسبت دهد. بدین شکل formula_21 امتیاز اضافه برای او باقی می‌ماند که می‌توانند آن را بین بقیه اشیا مورد علاقه اش توزیع کند. اگر به شی formula_9 سه امتیاز بیشتر، به شی formula_10 دو امتیاز بیشتر و به formula_11 نه امتیاز بیشتر بدهد، آنگاه داریم:
اگر روش تنظیم برنده را برای این مقادیر جدید اجرا کنیم formula_6 ،formula_7 و formula_27 از formula_9 به نفر اول و formula_10 ،formula_11 و formula_31 از formula_9 به نفر دوم می‌رسد و این بار مجموع امتیاز برای هر کدام برابر formula_33 خواهد بود که به نسبت قبل عدد کمتری است ولی نفر اول با اعمال این تغییرها درصد بیشتری از formula_9 را به نسبت قبل از آن خود کرده‌است و برای نفر اول این نتیجه در حقیقت رضایتمندی و مطلوبیت بهتری دارد که ناشی از دانستن اطلاعات توزیع امتیازهای نفر مقابل بوده‌است.https://www.math.uni.edu/~campbell/mdm/adj.html
این روش تنها برای تقسیم بین دو نفر پاسخ گو خواهد بود و برای تعداد افراد بیشتر، نتیجه یک تقسیم عادلانه نخواهد بود. به مثالی از کتاب تقسیم عادلانهBrams, Steven J. ; Taylor, Alan D. (1996). Fair division: from cake-cutting to dispute resolution. Cambridge University Press. ISBN 0-521-55644-9.توجه کنید:
برای این که تقسیم به گونه ای باشد که میزان رضایتمندی سه طرف برابر باشد و نیز کارایی پارتو را داشته باشد باید formula_10 را به نفر سوم، formula_6 را به نفر دوم و formula_9 را به نفر اول بدهیم؛ ولی با این کار نتیجه، حسادت برانگیز خواهد بود؛ زیرا شی formula_6 برای فرد سوم نسبت به نفر دوم ارزشمندتر است.
برای این مسئله نمی‌توان با استفاده از این روش یک تقسیم عادلانه ارائه داد و باید از روش‌های جایگزین دیگری استفاده کرد.
در مبحث محاسبات، الگوریتمهای حافظه خارجی (الگوریتم‌های خارج از هسته) به الگوریتم‌هایی می‌گویند که به منظور پردازش داده‌هایی طراحی می‌شوند که به دلیل حجم بالا، در حافظه اصلی رایانه گنجانده نمی‌شوند. این الگوریتم‌ها باید به گونه‌ای طراحی شوند که در بهترین زمان بتوانند به داده‌های درون حافظه‌های کمکی مانند هارد درایودسترسی داشته باشند و آن‌ها را استخراج کنند., J. S. (2001). "External Memory Algorithms and Data Structures: Dealing with MASSIVE DATA". "ACM Computing Surveys". 33 (2): 209–271. CiteSeerX 10.1.1.42.7064. doi:Vitter, J. S. (2008). "Algorithms and Data Structures for External Memory" (PDF). "Foundations and Trends in Theoretical Computer Science". Series on Foundations and Trends in Theoretical Computer Science. 2. Hanover, MA: Now Publishers. pp. 305–474. CiteSeerX 10.1.1.140.3731. doi:. ISBN <bdi></bdi>. الگوریتم‌های حافظه خارجی، در مدل حافظه خارجی بررسی می‌شوند.
مدل حافظه خارجی (مدل I/O یا مدل disk access) یک نوع مدل محاسبه ایده‌آل شده‌است که منظور آنالیز الگوریتم حافظه خارجی به کار می‌رود. این مدل یک ماشین انتزاعیمانند مدل ماشین RAM می‌باشد با این تفاوت که علاوه بر حافظه اصلی حافظه cache هم وجود دارد.
زمان اجرای یک الگوریتم در مدل حافظه خارجی را تعداد خواندن و نوشتن‌هایی که بر روی حافظه انجام می‌شود تعیین می‌کند.Zhang, Donghui; Tsotras, Vassilis J. ; Levialdi, Stefano; Grinstein, Georges; Berry, Damon Andrew; Gouet-Brunet, Valerie; Kosch, Harald; Döller, Mario; Döller, Mario; Kosch, Harald; Maier, Paul; Bhattacharya, Arnab; Ljosa, Vebjorn; Nack, Frank; Bartolini, Ilaria; Gouet-Brunet, Valerie; Mei, Tao; Rui, Yong; Crucianu, Michel; Shih, Frank Y. ; Fan, Wenfei; Ullman-Cullere, Mollie; Clark, Eugene; Aronson, Samuel; Mellin, Jonas; Berndtsson, Mikael; Grahne, Gösta; Bertossi, Leopoldo; Dong, Guozhu; et al. (2009). "I/O Model of Computation". "Encyclopedia of Database Systems". Springer Science+Business Media. pp. 1333–1334. doi:. ISBN: <bdi></bdi> این مدل همچنین بیان می‌کند که خواندن و نوشتن از حافظه cache بسیار سریع تر از حافظه اصلی است. مدل حافظه خارجی نخستین بار از سوی الوک آگاروال و جفری ویتر در سال ۱۹۸۸ معرفی شد.Aggarwal, Alok; Vitter, Jeffrey (1988). "The input/output complexity of sorting and related problems". 31 (9): 1116–1127. doi: این مدل کمی مرتبط با مدل cache-oblivious می‌باشد ولی الگوریتم‌ها در مدل حافظه خارجی ممکن است هم، اندازه بلاک و هم، اندازه حافظه cache را بدانند به همین دلیل گاهی از این مدل تحت عنوان مدل cache-aware یاد می‌کنندDemaine, Eric(2002)cache-oblivious algorithms and data structures. Lecture Notes from the EEF Summer School on Massive Data Sets. Aarhus: BRICS. .
این مدل شامل یک پردازنده و حافظه داخلی می‌باشد و همچنین یک حافظه cache در این مدل وجود دارد که اندازه آن را M در نظر می‌گیریم. این cache به یک حافظه خارجی بدون محدودیت متصل است. هردو حافظهٔ داخلی و خارجی بهبلاک‌هایی با اندازه B تقسیم می‌شوند. یک عملیات ورودی/خروجی یا انتقال حافظه در واقع انتقال یک بلاک شامل B عنصر پیوسته از حافظه خارجی به حافظه داخلی می‌باشد و زمان اجرای این الگوریتم با استفاده از تعداد این عملیات‌ها بدست می‌آید.
الگوریتم‌ها در مدل حافظه خارجی این مزیت را دارند که با بدست آوردن یک شیء از حافظهٔ خارجی می‌توان کل بلاک آن شیء را بدست آورد. پیدا کردن یک عنصر میان N عنصر در این مدل با استفاده از یک درخت بی امکان‌پذیر است؛ که در این درخت هر یک از عملیات پیدا کردن، درج کردن و حذف کردن در زمان formula_1 انجام می‌شود. مرتب‌سازی خارجی، یک نوع مرتب‌سازی است که روی حافظه خارجی صورت می‌گیرد. این مرتب‌سازی را می‌توان با استفاده از مرتب‌سازی تجمعی که مشابه مرتب‌سازی سریع است انجام داد. زمان این مرتب‌سازی برای مرتب کردن N عنصر formula_2 می‌باشد.
این مدل برای تحلیل و بررسی داده‌هایی که به دلیل حجم بالا در حافظه داخلی جا نمی‌شوند بسیار مناسب است. برای مثال در سیستم‌های جغرافیایی، به خصوص سیستم‌های مدلسازی ارتفاعات که حجم داده‌ها از چندین گیگابایت و حتی ترابایت نیز بیشتر می‌شود از مدل حافظه خارجی استفاده می‌شود.
الگوریتم جابه‌جایی یای انحصاری، الگوریتمی است که با استفاده از عملگر بیتی یای انحصاری مقدار دو متغیر را بدون استفاده از متغیر دیگری یا تغییر نوع متغیرها با یکدیگر جابه‌جا می‌کند.
الگوریتم به شرح زیر است:
این الگوریتم معادل ۳ دستور در زبان ماشین است. همچنین چون یای انحصاری خاصیت جابه‌جایی دارد، دو عبارت X XOR Y و Y XOR X برابرند.
این الگوریتم در حالتی که دو متغیر X و Y برابر باشند (منظور از برابری دو متغیر، یکی بودن آدرس آن‌هاست نه یکی بودن مقادیر آن‌ها)، به درستی کار نمی‌کند زیرا پس از خط اول مقدار X برابر ۰ شده و چون آدرس X و Y یکی است، مقدار Y هم برابر ۰ می‌شود و دو متغیر مقادیر واقعی خود را از دست می‌دهند.
ویژگی‌های یای انحصاری عبارتند از:
فرض کنید ثباتهای R۱ و R۲ به ترتیب دارای مقادیر A و B باشند، الگوریتم را برای R۱ و R۲ مرحله به مرحله اجرا می‌کنیم:
یای انحصاری را می‌توان به عنوان جمع دودویی و ۲ بیت را به عنوان یک بردار در میدان ۲ در نظر گرفت. در این‌صورت الگوریتم را می‌توان با ضرب یک ماتریس ۲ formula_12۲ در میدان ۲ معادل کرد. برای سادگی فرض می‌کنیم X و Y یک بیت باشند. در این‌صورت مرحله اول الگوریتم معادل خواهدبود با:
Y := Y
که معادل ماتریسی آن formula_13است. داریم:
دنباله دستورات الگوریتم را می‌توان به صورت ضرب ماتریس‌های ۲ formula_12۲ نشان داد:
برای تعمیم به وقتی که X و Y برادارهای بیتی به طول n اند، یای انحصاری معادل ماتریس ۲n formula_12۲n formula_18است. باید توجه کرد که این ماتریس بر روی متغیرها (که در حافظه آدرس دارند) اعمال نمی‌شوند بلکه بر روی مقادیر اعمال می‌شوند.
کد زیر، کد الگوریتم به زبان C است:
باید توجه‌کرد که کد ابتدا بررسی می‌کند که آیا آدرس دو متغیر یکی است یا خیر زیرا اگر یکی باشد، همان‌گونه که پیش از این گفته‌شد مقدار متغیر ۰ خواهدشد. همچنین می‌توان الگوریتم را به صورت یک ماکرو تعریف کرد:
/* درصورتی که دو متغیر برابر باشند، به درستی کار نمی‌کند. */
/* ابتدا یکی نبودن آدرس‌ها را بررسی می‌کند، سپس دو متغیر را جابه‌جا می‌کند. */
در بیشتر موارد در عمل استفاده از یک ثبات دیگر برای جابه‌جایی بهینه‌تر است و در موارد محدودی جابه‌جایی با یای نحصاری ممکن است در عمل به کار بیاید مانند:
بیشتر کامپایلرهای جدید متغیرهای موقت را پس از استفاده، آزاد می‌کنند لذا از نظر حافظه و زمان الگوریتم جابه‌جایی سه طرفه با این الگوریتم تفاوتی ندارد. ضمن آنکه این الگوریتم برای کسی که با روش آن آشنا نباشد نامفهوم است.
در کامپوترهای جدید، الگوریتم جابه‌جایی یای انحصاری از الگوریتم جابه‌جایی سه طرفه کنتر است. از پردازنده‌های x۸۶ اینتل و ای‌ام‌دی به بعد، جابه‌جایی بین ثبات‌ها بدون تأخیر انجام می‌شود. حتی اگر ثباتی برای استفاده نباشد، دستور XCHG حداقل به اندازه سه عملیات یای انحصاری سریع خواهدبود. دلیل دیگر آن است که پردازنده‌ها حتی‌الامکان دستورات را موازی اجرا می‌کنند. در الگوریتم یای انحصاری، ورودی‌های هر عملگر به خروجی مرحله قبل بستگی دارد لذا نمی‌توان مراحل آن را موازی اجرا کرد.
در این الگوریتم، یای انحصاری می‌تواند با هر عملگری که ۴ خاصیت گفته‌شده را داشته‌باشد، جایگزین شود. با جایگزین کردن یای انحصاری با جمع و تفریق خواهیم‌داشت:
void addSwap (unsigned int *x, unsigned int *y)
برخلاف یای انحصاری، در این نوع پردازنده یا زبان برنامه‌نویسی استفاده‌شده باید از هم‌نهشتی یا اعداد بزرگ استفاده کنند تا بتوان مطمئن شد که عملگرها سرریز ندارند؛ لذا کاربرد این از کاربرد یای انحصاری کمتر خواهدبود.
پمپ یونی نوعی پمپ خلاء است که در شرایط ایدئال به کمک آن می‌توان تا فشارهای formula_1میلی بار را ایجاد کرد. پمپ یونی به کمک یک ولتاژ نسبتاً بالا، در حدود ۳ تا ۷ کیلوولت، گازهای درون محفظه خلاء را یونیزه می‌کند، که اینکار باعث می‌شود یون‌ها شتاب پیدا کرده و توسط یک الکترود صلب جذب شوند.
سه گونه عمده از پمپ‌های یونی وجود دارد: مدل استاندارد و متعارف آن یعنی پمپ دیودی، پمپ دیودی خاص (noble diode pump) و پمپ تریود (triode pump).
ضرب ماتریس یکی از اعمال پایه در بسیاری از الگوریتم‌های آنالیز عددی محسوب می‌شود به همین دلیل در راستای بهبود زمان آن تلاش‌های بسیاری انجام شده‌است. کاربردهای ضرب ماتریس در بسیاری از زمینه‌های مختلف همچون علم محاسبه، بازشناخت الگو ، پردازش تصویر ، کار با نرم افزارهای ۳ بعدی و حتی زمینه‌های به ظاهر بی‌ربط مانند شمردن تعداد گشت‌ها در یک گراف دیده می‌شود. الگوریتم‌های بسیاری برای این‌ کار روی سیستم‌های رایانش موازی طراحی شده‌ است که در آن چند هسته به صورت همزمان و موازی عملیات را انجام می‌دهند.
اگر از تعریف ضرب ماتریس به صورت مستقیم استفاده کنیم برای ضرب دو ماتریس زمان طول خواهد کشید که به صورت می‌توانیم نمایش دهیم. الگوریتم‌هایی با زمان اجرای بهتری برای این‌کار ارائه شده‌اند. برای مثال در ده سال ۱۹۶۹ استراسن در این زمینه الگوریتمی بر پایه ماتریس های 2×2 ارائه داد اما به‌طور کلی هنوز نمی‌دانیم بهترین الگوریتم برای این کار چیست. (در واقع پیچیدگی زمانی آن مشخص نیست)https://en.wikipedia.org/wiki/Matrix_multiplication_algorithm
طبق تعریف ضرب ماتریس می‌توانیم یک الگوریتم برای این کار ارائه دهیم. به ازای ماتریس
که یک ماتریس
است و ماتریس
است می‌خواهیم ماتریس
که ماتریسی
است را محسابه کنیم. طبق تعریف ضرب ماتریس
بنابراین به ازای هر دوتایی
می‌توانیم با
را محاسبه کنیم. یعنی در کل الگوریتمی با زمان اجرای
خواهیم داشت. اگر فرض کنیم هر سه ماتریس
هستند آنگاه الگوریتم
در الگوریتم بالا ترتیب حلقه‌ها را می‌توانیم جابه‌جا کنیم. اگر چه این جابه‌جایی در مدت زمان اجرای الگوریتم تأثیری نخواهد داشت اما این ترتیب در بحث‌های مربوط به دسترسی حافظه (access pattern) و مسائل مربوط به استفاده از حافظه نهان پردازنده مهم است. مثلاً اینکه ماتریس‌ها به ترتیب سطری یا ستونی (یا ترکیبی از این دو) ذخیره شوند در زمان حافظهٔ نهان پردازنده تأثیر گذار خواهد بود.
حتی اگر حالت بهینه را در نظر بگیریم که حافظهٔ کش شرکت پذیر کامل با
سطر حافظهٔ
بیتی باشد و ماتریس‌های
به صورت سطری ذخیره شده‌باشند، این الگوریتم بهینه نخواهد بود. هنگامی که
از آنجایی که ماتریس‌ها به صورت سطری ذخیره شده‌اند هر پیمایش حلقهٔ داخلی در الگوریتم (یک پیمایش روی سطر ماتریس اول و ستون ماتریس دوم) یک خطای کش به هنگام دسترسی به خانه‌ی‌های ماتریس دوم به همراه خواهد داشت؛ و این به این معناست که الگوریتم در بدترین حالت حاوی
خطای کش خواهد بود. امروزه -یعنی از سال ۲۰۱۰- خطای کش‌ها به نسبت اعمال پردازنده تأثیر بیشتری روی زمان اجرا می‌گذارند بنابراین بهتر است با روشی این خطای کش‌ها را کاهش دهیم.
برای حل این مشکل ماتریس‌ها را به بلوک‌هایی از اردر
تایی تقسیم می‌کنیم. با اینکار کل یک زیرجدول در حافظهٔ کش قرار می‌گیرد و این بلوک‌ها در هم ضرب می‌شوند. ضرب هر بلوکی هیچ خطای کشی به همراه نخواهد داشت.
تعداد خطاهای کش در این مدل برابر
خواهدبود. مخرج
باعث می‌شود در پردازنده‌های جدید خطاهای کش در زمان اجرا تأثیر گذار نشوند و صرفاً تحلیل زمانی الگوریتم تأثیر گذار باشد.
حال سعی می‌کنیم روشی تقسیم و حل برای ضرب ماتریس‌ها ارائه دهیم. ابتدا فرض کنید ماتریس‌هایمان
هستند. در این روش مطابق زیر ماتریس‌ها را به چهار بلوک تقسیم می‌کنیم که اندازهٔ آن‌ها تقریباً برابرند.
اگر ماتریس‌های‌مان اندازه‌شان توانی از دو باشد (یعنی ماتریسی با ابعاد
) می‌توانیم این الگوریتم را به کار بگیریم. به صورت زیر دو ماتریس را در هم ضرب می‌کنیم.
این الگوریتم شامل ۸ ضرب ماتریس‌های کوچکتر
خواهد بود که به‌صورت بازگشتی محاسبه می‌شود و پایهٔ آن ضرب اسکالر
است. همچنین جمع کردن ماتریس‌ها به صورتی که در بالا گفته‌شده
طول خواهد کشید.
توجه کنید اگر ماتریس ما ابعادش توانی از ۲ نبود باز هم می‌توانیم این الگوریتم را به کار ببریم. کافیست با اضافه کردن سطرهایی تمام صفر و ستون‌هایی تمام صفر به پایین و راست ماتریس ابعادش را توانی از دو کنیم. با اضافه کردن آن‌ها اندازهٔ ماتریس حداکثر ۴ برابر خواهد شد (تعداد ستون‌ها و سطرها هر کدام ۲ برابر خواهند شد) بنابراین تفاوتی در تحلیل زمانی ایجاد نمی‌شود به‌علاوه افزودن سطر و ستون تمام صفر تأثیری در حاصل‌ضرب نخواهدگذاشت.
با توجه به مطالب گفته‌شده برای تحلیل زمانی آن می‌توانیم رابطهٔ زیر را بنویسیم:
بر طبق قضیه‌ی اصلی Cormen, Thomas H. ; Leiserson, Charles E. ; Rivest, Ronald L. ; Stein, Clifford (2009) [1990]. "Introduction to Algorithms" (3rd ed.). MIT Press and McGraw-Hill. ISBN 0-262-03384-4. می‌توانیم این الگوریتم را تحلیل زمانی کنیم. می‌دانیم
در نتیجه این الگوریتم با الگوریتم ابتدایی‌ای که بررسی کردیم تفاوتی از نظر زمانی ندارد.
این الگوریتم در عمل برای ماتریس‌های غیر مربعی سریع‌تر عمل می‌کند. کافیست به جای تقسیم کردن هر دو ماتریس به چهار تکه یکی از ماتریس‌ها را به دو تکهٔ برابر (یا تقریباً برابر) با تقسیم کردن سطرها یا ستون‌ها تقسیم کنیم. در زیر می‌توانید الگوریتم چنین کاری را ببینید:
الگوریتم گفته‌شده در این بخش تقسیم‌بندی را تا جایی می‌تواند ادامه دهد که کل ماتریس در حافظهٔ کش جا شوند و بنابراین از نظر تعداد خطاهای کش مانند روش تقسیم‌بندی بلوکی عمل می‌کند. با این تفاوت که در آن الگوریتم خود پیاده‌سازی الگوریتم با توجه به اندازهٔ کش پردازندهٔ هدف انجام می‌شود (پارامتر
ای را باید در خود متن الگوریتم تعیین کنیم) در حالیکه این الگوریتم برای کش‌های پویا با اندازه‌های مختلف بهینه‌تر عمل خواهد کرد.
تعداد خطاهای کش در این الگوریتم با
خط حافظهٔ کش که هر خط
بیت دارد به صورت زیر خواهد بود:
الگوریتم‌هایی وجود دارند که زمان اجرای بهتری از الگوریتم‌های فوق دارند. اولین الگوریتم کشف شده که اینگونه بود الگوریتم استراسن بود که در سال ۱۹۶۹ توسط وولکر استراسن (Volker Strassen) کشف شد. این الگوریتم به «الگوریتم سریع ضرب ماتریس» نیز معروف است. این الگوریتم بر مبنای ضرب دو ماتریس
با ۷ عملیات ضرب است که در عوض تعداد بیشتری جمع و عملیات ریاضی این‌چنینی لازم دارد. با استفاده از این ایده به‌صورت بازگشتی الگوریتمی از
به ما می‌دهد. این الگوریتم پیچیده‌است و ضرایب ثابت آن در تحلیل زمانی به اندازه‌ای زیاد است که تنها برای ماتریس‌های بزرگ کارامدتر از الگوریتم‌های قبلی عمل خواهد کرد.
سریعترین الگوریتم با
الگوریتمی است که از تعمیم الگوریتم کوپراسمیت–وینوگارد به‌دست آمده و از نظر زمانی
می‌باشد. این الگوریتم توسط François Le Gall کشف شد و به قدری ضرایب زیادی دارد و سربار الگوریتم بالاست که تنها برای ماتریس‌های بسیار بزرگی که هم‌اکنون در علوم کامپیوتر کاربردی ندارند، کارامد خواهد بود.
با توجه به این‌که باید حداقل روی همهٔ اعضای دو ماتریس
پیمایش انجام بشود کران‌پایین
برای الگوریتم‌های ضرب ماتریس وجود دارد. راز (Raz) ثابت کرد که کران پایین
نیز برای هر الگوریتم ضرب ماتریس نیز وجود دارد.Alon, Shpilka, Umans, On Sunflowers and Matrix MultiplicationHenry Cohn, Robert Kleinberg, Balázs Szegedy, and Chris Umans. Group-theoretic Algorithms for Matrix Multiplication. . "Proceedings of the 46th Annual Symposium on Foundations of Computer Science", 23–25 October 2005, Pittsburgh, PA, IEEE Computer Society, pp. 379–388.Henry Cohn, Chris Umans. A Group-theoretic Approach to Fast Matrix Multiplication. . "Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science", 11–14 October 2003, Cambridge, MA, IEEE Computer Society, pp. 438–449.
همچنین الگوریتم الگوریتم فریوالد یک الگوریتم احتمالی و مونت کارلو است که در
چک می‌کند که آیا ضرب دو ماتریس
هست یا نه.
شبکه دسترسی () از زیرساخت‌های ارتباطاتی و گونه‌ای از شبکه‌های مخابراتی می‌باشد، که مشترکین (کاربران) را به رسانندگان خدمات مخابراتی متصل می‌کند.
مجید اسدی زندانی سیاسی محبوس در زندان رجایی شهر کرج می‌باشد که اواخر بهمن ماه ۱۳۹۵ در کرج بازداشت و به بند ۲۰۹ زندان اوین تهران منتقل شد. او توسط شعبه ۲۶ دادگاه انقلاب تهران به ریاست قاضی ماشاالله احمدزاده به اتهام «اقدام علیه امنیت ملی از طریق اجتماع و تبانی» و «تبلیغ علیه نظام» به ۶ سال حبس تعزیری محکوم شد.
او فارغ‌التحصیل رشته اقتصاد از دانشگاه علامه طباطبایی و عضو شورای مرکزی انجمن اسلامی دانشکده اقتصاد بوده‌است.
اسدی پیش از این به‌خاطر فعالیت‌های سیاسی در تیر ماه ۱۳۸۷ دستگیر و به اتهام «اجتماع و تبانی برای اقدام علیه امنیت ملی» به چهار سال زندان محکوم شد و دوره محکومیت خود را در فاصله سال‌های ۱۳۹۰ تا ۱۳۹۴ گذراند. وی چندین ماه در سلول انفرادی ۲۰۹ اوین زندانی بود.
مجید اسدی در ا مرداد ۱۳۹۹ به همراه دو زندانی سیاسی دیگر از زندان رجایی شهر کرج به بازداشتگاه وزارت اطلاعات بند ۲۰۹ زندان اوین برای بازجویی منتقل شد، وی از همان بدو ورود دست به اعتصاب غذا زده و از دریافت دارو نیز محروم و در وضعیت نامناسبی می‌باشد. این زندانیان سیاسی که سومین سال محکومیت خود را در زندان به‌سر می‌برند در سلول‌های انفرادی بند ۲۴۰ زندان اوین محبوس هستند.زندان اوین؛ تداوم نگهداری مجید اسدی، محمد بنازاده امیرخیزی و پیام شکیبا در بازداشتگاه وزارت اطلاعات
روز شنبه ۱۸ بهمن ۱۳۹۹ مجید اسدی در حالی که اتهام «تبلیغ علیه نظام» را رد کرده‌بود، برای یک پرونده دیگر به یک سال زندان محکوم شد. مادر مجید، فاطمه وکیلی گفته‌است: «قرار بود روز دوشنبه ۳۰ تیر ماه، پس از سپری کردن سه سال و شش ماه از مجموع شش سال دوران محکومیت خود، از زندان رجایی شهر کرج آزاد شود؛ اما «با پرونده‌سازی جدید توسط وزارت اطلاعات» به همراه دو زندانی دیگر به نام‌های محمد بنازاده امیرخیزی و پیام شکیبا به بند ۲۰۹ زندان اوین منتقل شده‌است.»مجید اسدی، زندانی سیاسی در زندان اوین، در یک پرونده جدید به یک سال زندان دیگر محکوم شد
مجید اسدی از وضعیت نامناسب جسمی و بیماری‌های گوارشی از جمله زخم معده و زخم اثنی‌عشر و همچنین کیست کبد، دیسک کمر و رماتیسم ستون فقرات رنج می‌برد؛ از آنجا که پروندهٔ پزشکی وی در بیمارستان خمینی موجود است، به توصیه بهداری زندان و تشخیص پزشکان وی باید در بیمارستان تحت نظارت پزشکان قرار بگیرد؛ ولی با ممانعت رئیس زندان رجایی‌شهر کرج از اعزام وی به بیمارستان جلوگیری شده و با وجود وخامت حال از خدمات درمانی مناسب محروم است.
واژه الکتریسیته از لاتین نوین و در نهایت یونانی مشتق شده‌است. در نوشته‌های فرانسیس بیکن نخستین بار در زبان انگلیسی این واژه مشاهده می‌شود. بسته به متن، کلمه ممکن است به «بار الکتریکی»، «توان الکتریکی» یا «انرژی الکتریکی» اشاره کند.
کلمه "الکتریک" برای اولین بار توسط فرانسیس بیکن برای توصیف مواد مانند کهربا که اشیاء دیگر را جذب می‌کند استفاده شده‌است.electric, "adj." and "n.", Oxford English Dictionary, Draft Revision Mar. 2008Bacon F, "Physiological Remains", before 1626, in "Baconiana" (1679)
رقص حباب ، مبتکر رقص حباب بازیگر مشهور آمریکایی دهه ۳۰ میلادی سالی رند است . اولین رقص حباب در فیلم روتوسکوپی رویای هالیوود (۱۹۴۱) توسط سالی راند اجرا شد . سالی رند با یک توپ بزرگ حبابی شکل به صورت برهنه وارد صحنه شد و رقص حباب را اجرا کرد و ناگهان توپ با شلیگ گلوله ترکید و رقص به پایان رسید .
لیگ برتر فوتبال ایران ۹۹–۱۳۹۸ نوزدهمین دوره جام خلیج فارس و سی و هشتمین دوره لیگ فوتبال ایران که توسط فدراسیون فوتبال ایران برگزار شد که پس از انجام هفته ۲۱ام مسابقات و در پی دنیاگیری کروناویروس در ایران، به مدت ۴ ماه تعلیق شد و سپس از تاریخ ۴ تیر ۱۳۹۹ با رعایت نکات بهداشتی ادامه یافت.
تیم پرسپولیس تهران برای سیزدهمین بار قهرمان این دوره از رقابت‌ها شد و به مسابقات لیگ قهرمانان آسیا ۲۰۲۱ و مسابقات سوپر جام فوتبال ایران ۱۳۹۹ راه پیدا کرد و تیم استقلال تهران نایب قهرمان و تیم فولاد خوزستان مقام سومی لیگ برتر هم به همراه تیم پرسپولیس به لیگ قهرمانان آسیا راه یافتند.
کلت پایتون نام یک هفت‌تیر ساخت شرکت تولیدی کلت است. گاه این اسلحه را کمبت مگنوم هم خوانده‌اند. تاریخ ساخت کلت پایتون به ۱۹۵۵ میلادی بازمی‌گردد. گروهی از کلکسیونرهای اسلحه آن را بهترین ششلولی که تاکنون ساخته شده‌است دانسته‌اند.
Wikipedia contributors, "Colt Python," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=Colt_Python&oldid=893380590 (accessed May 31, 2019).
سکانس () در موسیقی، بیان مجدد یا توالی یک موتیف، یک ملودی بلند یا فیگور هارمونیک است در گام که با عبور به بالاتر یا پایین‌تر از ارتفاع صدا شکل می‌گیرد. سکانس، یکی از رایج‌ترین روش‌های گسترش ملودی در قرن هجدهم و نوزدهم میلادی بود که موسیقی دوره باروک، کلاسیک و رمانتیک را در بر می‌گرفت.
خصوصیات توالی سکانس بدین شرح است:
ممکن است برای ملودی یا هارمونی، یک سکانس دیگر مستقل از بخش‌ها ایجاد شود.
انواع مختلفی از سکانس وجود دارد که هر کدام یک الگوی منحصر به فرد دارند مانند: سکانس ملودیک، سکانس هارمونیک، سکانس ریتمیک.
در یک ملودی، سکانس رئال انتقالِ دقیق یک سکانس به بخش بعدی است. روش دوم، سکانسِ تونال نامیده می‌شود که انتقالِ دیاتونیک بخش اول به بخش دوم است. مثال زیر از یوهان سباستیان باخ هر دو سکانس را نشان می‌دهد.
پنجم‌های نزولی به عنوان «سکانس پنجم‌ها» نیز شناخته می‌شوند. این نوع سکانس در برخی آثار کلودیو مونته‌وردی و هاینریش شوتس تکامل یافته‌است. سکانس پنجم‌ها، مجموعه‌ای از آکوردها است که نت‌های «باس» یا «پایه» در آن یک الگوی پنجم نزولی (یا چهارم صعودی) را دنبال می‌کنند.
سکانس پنجم‌های صعودی بر خلاف سکانس نزولی شامل یک الگوی پنجم صعودی (یا چهارم نزولی) می‌شود. این نوع سکانس نسبت به سکانس نزولی کمتر متداول است.
یک سکانس ریتمیک، تکرار ریتم با استفاده آزاد از زیروبمی‌ها است.
ایبوگین یا ایبوگائین یک سایکو اکتیو روان‌گردان طبیعی است که در خانواده گیاهان خرزهره‌ایان می‌باشد مانند "تبرنارته ایبوگا"، "وواکانگا آفریکانا". ایبوگائین روانگردان با خواص متفرقه است.
تحقیقات مقدماتی نشان می‌دهد که ممکن است به ترک اعتیاد به مواد مخدر کمک کند؛ با این حال، اطلاعات دقیقی در مورد انسان وجود ندارد. استفاده از آن با عوارض جانبی جدی و مرگ مرتبط است. بین سال‌های ۱۹۹۰ و ۲۰۰۸، ۱۹ مورد مرگ و میر ناشی از مصرف ایبوگائین به‌طور مشکوک گزارش شد، که از این تعداد شش نفر از نارسایی حاد قلبی یا گرفتگی قلبی رنج می‌بردند. از تعداد افرادی که بدون عوارض از این دارو استفاده کرده و نتیجه مثبت گرفته‌اند اطلاعی در دست نیست. این دارو به عنوان یک درمان برای اعتیاد به مواد مخدر در برخی کشورها مورد استفاده قرار می‌گیرد. اما ممنوعیت آن در کشورهای دیگر باعث کند شدن تحقیقات علمی روی آن شده‌است. ایبوگائین نیز برای تسهیل خودآزمایی روانشناختی و روان‌شناسی روانشناختی مورد استفاده قرار می‌گیرد. شایان ذکر است که مشتقات ایبوگائین با خواص روانگردانی در حال توسعه هستند.
تولید و مصرف صمغ درخت "تبرنارته ایبوگ"، برای اولین بار توسط افراد قبیله کوتوله‌های پیگمه‌ها واقع در قبیله گابن آفریقای مرکزی که دانش بوتی را دارند انجام شده‌است. کاشفان فرانسوی که به آفریقا رفته بودند به نوبه خود از قبیله بوتی یادگرفتند و در ۱۸۹۹ تا ۱۹۰۰ ایبگا را به اروپا وارد کردند و در فرانسه، در لامارنر به بازار عرضه شدند.
مواد حاوی ایبوگائین برای اهداف دارویی و مراسم مذهبی توسط روحانیون بوتی استفاده می‌شوند که ادعا می‌کنند از پیگمه‌ها آموخته‌اند. اولین بار در سال ۱۹۶۲ توسط هوارد لتسف به عنوان داروی ضد اعتیادآور معرفی شد، اما استفاده از آن در غرب به حداقل یک قرن پیش از آن بر می‌گردد. در فرانسه از آن به عنوان لیمبرین "Lambarène" به عنوان محرک مورد استفاده قرار گرفت. همچنین، سازمان اطلاعات مرکزی ایالات متحده (CIA) اثرات ایبوگائین را در دهه ۱۹۵۰ مورد مطالعه قرار داده‌است.
ایبوگائین یک ایندول آلکالوئید است که توسط استخراج از گیاه ایبوگا یا نیمه سنتز از وکانژین ترکیبی مواد اولیه،Chris Jenks: Extracting Ibogaine Chris Jenks tells about the findings of his Extraction Studies.Iboga Extraction Manual Compiled 2009 by Dr. Chris Jenks. دیگر آلکالوئیدهای گیاهی به دست می‌آید. سنتز کامل ایبوگائین در سال ۱۹۵۶ انجام شد. توضیح ساختاری توسط کریستالوگرافی اشعه ایکس در سال ۱۹۶۰ تکمیل شد.
"ایبوگائین" از ریشه "Tabernanthe Iboga"، گیاه شناخته شده با اثرات روان‌گردان در کاربران آن، شناخته می‌شود. تأثیر ایبوگائین دارای دو مرحله است، مرحله اول فاز رؤیایی شدن به عنوان یونیزوژن، با اشاره به ماهیت اثرات رؤیای روانگردان، به مدت ۴ تا ۶ ساعت. فاز دوم، فاز درونوزی، مسئول اثرات روان درمانی است؛ که باعث ترس و احساسات منفی می‌شود. ایبوگائین یک حالت تغییر یافته از آگاهی را به وجود می‌آورد که یادآور رؤیایی است، در حالی که فرد کاملاً آگاه است می‌تواند خاطرات، تجربیات زندگی و مسائل مربوط به تروما را پردازش کند.
ایبوگائین در حال حاضر برای استفاده‌های پزشکی مورد تأیید نیست. مطالعات بالینی بر روی ایبوگائین برای درمان اعتیاد به مواد مخدر در اوایل دهه ۱۹۹۰ شروع شد، اما نگرانی در مورد اثرات بد روی قلب منجر به خاتمه این مطالعات شد. در حال حاضر اطلاعات کافی برای اثبات اینکه آیا برای درمان اعتیاد مفید است، وجود ندارد. با این وجود، برخی از کلینیک‌های ترک برای این منظور، ایبوگائین را تجویز می‌کنند، به این معنی که «آزمایش گسترده و بدون کنترل» انجام می‌شود. آزمایش‌ها بالینی ایبوگائین برای درمان اعتیاد به الکل، در حال حاضر در کشور برزیل ادامه دارد.
در مراسم مذهبی بوتی‌ها، پوست ریشه گیاه را به‌صورت پودر شده در مقادیر زیادی مصرف می‌کنند تا اثرات شدید روانگردانی و روانشناختی ایجاد کند.
یکی از اولین اثرات قابل توجه در مصرف دوز زیاد ایبوگائین آتاکسی می‌باشد، مشکل در هماهنگ‌کردن حرکت عضلانی است که باعث می‌شود فرد نتواند به تنهایی بایستد یا راه برود. خشکی دهان، تهوع و استفراغ از دیگر عوارض آن است. این علائم ممکن است در برخی موارد از ۴ تا ۲۴ ساعت طول بکشد. برای جلوگیری از تهوع و استفراغ، ایبوگائین گاهی به شکل تنقیه تجویز می‌شود.
دوزهای درمانی ایبوگائین باعث ایجاد سندرم کیوتی طولانی مدت می‌شود، ظاهراً با مسدود کردن کانال‌های پتاسیم hERG در قلب این مشکل ایجاد می‌شود.
تحقیقات آزمایشگاه مارک مولیور در دانشگاه جان هاپکینز نشان دهنده انحطاط یاخته پورکینیه مغزی است که در موش‌های صحرایی که میزان قابل توجهی از ایبوگائین مصرف گرفته‌اند دیده می‌شود که در مقایسه با آنهایی که برای مطالعه خودآزمایی بدون مصرف ایبوگائین نگهداری شده‌اند مشهود است. البته، تحقیقات صورت گرفته بعدی هیچ نشانی از اثرات عصبی در میمونها یا موشها در دوزهای تولیدکننده انسداد مخچه مشابه مورد موشهای قبلی ایجاد نکرد و نتیجه‌گیری شده‌است که انحطاط یاخته پورکینیه مغزی ممکن است یک پدیده محدود به یک گونه خاص باشد. شایان ذکر است سازمان غذا و دارو (آمریکا) FDA از تحقیقات مولیور در فاز ۱ که در آن ایبوگائین روی انسان در سال ۱۹۹۳ آزمایش شده بود آگاهی داشت. معاینه نوروپاتولوژی هیچ شواهدی از تغییرات دژنراتیو در خانمی که چهار دوز جداگانه ایبوگائین بین ۱۰ تا 30 mg / kg در طی یک دوره ۱۵ ماهه قبل از مرگش (به علت ترومبوز شرطی مزانترال با آنفارکتوس کولون کوچک) ۲۵ روز پس از آخرین مصرف ایبوگائین نشان نداده‌است. در تمام مرگ و میرهایی که افراد به‌طور موقت ایبوگائین مصرف می‌نموده هیچ شواهدی از سندرم عصبی دیده نشده‌است.
تداخلات جانبی بین مصرف ایبوگائین با داروهای روانپزشکی ممکن است رخ دهد. بعضی از مطالعات همچنین امکان بروز نارسایی قلبی را نشان می‌دهد.
از آنجایی که ایبوگائین یکی از داروهایی است که بخشی از آن توسط سیتوکروم پی ۴۵۰ متابولیزه می‌شود، باید از مصرف همزبان با خواکی‌هایی که توسط سی‌پی ۴۵۰ متابولیزه می‌شوند خودداری نمود مانند موادی که حاوی برگاموتین، هستند مانند آب گریپ فروت، و روغن آن.
ایبوگائین به‌طور همزمان بر روی بسیاری از سیستم‌های پیام‌رسان عصبی تأثیر می‌گذارد.
نوروبوگین از بازدارنده جذب سروتونین قوی‌تر است؛ و به عنوان یک آگونیست گیرنده کروماتین متوسط و آگونیست گیرنده μ-opioid ضعیفNoribogaine is a G-protein biased κ-opioid receptor agonist.
Maillet EL, Milon N, Heghinian MD, Fishback J, Schürer SC, Garamszegi N, Mash DC.
Neuropharmacology |date=December 2015 |99:675-88. . Epub 2015 Aug 21.
ایبوگائین در بدن انسان توسط سیتوکروم پی ۴۵۰ 2D6 به نوریبوگایین (در حقیقت، O-desmethylibogaine یا 12-hydroxyibogamine) متابولیزه می‌شود. ایبوگائین و نوروبوگین نیمه‌عمر (داروشناسی) حدود دو ساعته در موش صحرایی دارند، هرچند نیمه عمر نوروبوگین کمی طولانی‌تر از ترکیب اصلی آن است. همچنین مشاهده شده که ایبوگائین به صورت چربی ذخیره شود و به نوریبوگایین متابولیزه می‌شود. پس از مصرف ایبوگائین در انسان، نوروبوگین سطح پلاسمایی بالاتری نسبت به ایبوگائین از خود نشان می‌دهد و برای مدت طولانی‌تری از ایبوگائین قابل تشخیص است.
ایبوگائین یک تریپتامین است. دو مرکز جداگانه کریال (دست‌سانی (شیمی)) دارد، به این معنی است که چهار استئوزایمر مختلف از ایبوگائین وجود دارد. تشخیص این چهار ایزومر از هم دشوار است.
هیدروکلراید کریستال ایبوگائین معمولاً توسط سنتز نیمه کاره از وکانژین در آزمایشگاه‌های تجاری تولید می‌شود.
مشتق مصنوعی از ایبوگائین، 18-methoxycoronaridine (18-MC)، یک آنتاگونیست انتخابی α۳β۴ است که به‌طور مشترک توسط متخصص مغز و اعصاب استنلی دی گلیک Stanley D. Glick (آلبانیایی) و شیمیدان مارتین ای کونه Martin E. Kuene (ورمونتی) توسعه یافته‌است. این کشف در ادامه تحقیقات قدیمی‌تر بر روی دیگر ترکیب طبیعی از ایبوگائین مانند coronaridine و وکانژین بود که نشان داد این ترکیبات همچنان خواص ضد اعتیادی دارند.
ایبوگائین به‌طور طبیعی در پوست ریشه ایبوژ وجود دارد و همچنین در عصاره آلکالوئیدهای گیاه "تبرنارته ایبوگ" "موجود" است که شامل تمام آلکالوئیدهای دیگر ایبوگا می‌باشد و در نتیجه نیمی از آن به عنوان هیدروکلراید ایبوگائین استاندارد وجود دارد.
استفاده از ایبوگا در مراسم مذهبی آفریقایی، نخستین بار توسط مهاجران فرانسوی و بلژیکی در قرن نوزدهم گزارش شده‌است. اولین توصیف گیاهی از گیاه "تبرناته ایبوگا" در سال ۱۸۸۹ نگاشته شد. "ایبوگائین" اولین بار در سال ۱۹۰۱ به شکل نمونه‌های "تی. ایبوگا" توسط دیوفسکی و لاندرین همچنین به‌طور جداگانه توسط هالر و هکلل در همان سال از گابن به اروپا منتقل شد. اولین روش سنتز کامل ایبوگائین توسط جی. بوجی در سال ۱۹۶۶ انجام شد. از آن پس تا کنون چندین روش سنتز دیگر ابداع شده‌است.
از دهه ۱۹۳۰ تا دهه ۱۹۶۰، ایبوگائین در فرانسه به عنوان لیمبرین - Lambarène، عصاره گیاه "تبرناته مانی" "فروخته شده‌است" و به عنوان یک محرک روحی و فیزیکی ارتقا یافته. این دارو در بین بعضی از ورزشکاران پس از جنگ جهانی دوم از محبوبیت برخوردار بود. لیمبرین در سال ۱۹۶۶ از بازار جمع‌آوری شد، از آن پس فروش محصولات حاوی ایبوگائین در فرانسه غیرقانونی اعلام شده‌است.Ibogaine: A Novel Anti-Addictive Compound – A Comprehensive Literature Review Jonathan Freedlander, University of Maryland Baltimore County, Journal of Drug Education and Awareness, 2003; 1:79–98.
در اواخر دهه ۱۹۶۰ مجمع جهانی بهداشت «آن را جزء موادی که احتمالاً باعث وابستگی یا مخل سلامت انسان است،» دسته‌بندی کرد، سازمان غذا و دارو (آمریکا) (FDA) آن را در طبقه‌بندی I قرار داد و کمیته بین‌المللی المپیک آن را به عنوان یک عامل احتمالی دوپینگ ممنوع اعلام کرد.Ibogaine – Scientific Literature Overview The International Center for Ethnobotanical Education, Research & Service (ICEERS) 2012