الگوریتم ها چگونه اجرا می شوند؟


معاملات الگوریتمی چیست؟

معاملات الگوریتمی چیست؟ تاثیر هوش مصنوعی در معاملات الگوریتمی چیست؟ آیا فرق اتو تریدینگ و الگو تریدینگ را می‌دانید؟ مزایا و معایب این نوع معاملات چیست؟ تا به‌حال نام معاملات الگوریتمی به گوشتان خورده است؟ زمانی که معاملات بورس راه افتاد هنوز رایانه‌ها به شکل امروزی در دنیای مالی نفوذ نکرده بودند و معاملات به‌صورت فیزیکی و سنتی انجام می‌شد. برای خرید و فروش یک سهم باید با ماشین یا اتوبوس به خیابان حافظ رفته و تازه قیمت روز سهم خود را روی تابلو می‌دیدید و فرم خرید و یا فروش را پر می‌کردید. اما امروز به لطف دنیای مجازی و اینترنت، پشت لپ‌تاپ شخصی خود نشسته و قیمت سهم‌ها را به‌صورت آنلاین در سایت کارگزاری می‌بینیم و معامله می‌کنیم.

معاملات الگوریتمی چیست؟

معاملات الگوریتمی یا معاملات خودکار یک ابزار برای معامله در بازارهای سرمایه است. بر این اساس شما می‌توانید با استفاده از هوش مصنوعی به‌صورت اتوماتیک و یا نیمه اتوماتیک و با استفاده از کدهای برنامه نویسی شده، موقعیت‌های مناسب در بازار را شناسایی و آن‌ها را شکار کنید.

خیلی‌ها معاملات الگوریتمی را با استراتژی معاملاتی یا فیلترنویسی اشتباه می‌گیرند. در‌صورتی که همه این‌ها زیرمجموعه‌ای از معاملات الگوریتمی هستند. درواقع معاملات الگوریتمی یک ابزار معاملاتی کامل است که شما با استفاده از این ابزار می‌توانید معاملات دقیق‌تر و سریع‌تری انجام دهید تا خطای کار را کاهش و نتایج معاملات را بهبود بخشید.

الگوریتم‌ها می‌توانند بیش از یکی باشند و به‌صورت ترکیبی و پیچیده مورد استفاده قرار گیرند. آن‌ها برای الگوریتم ها چگونه اجرا می شوند؟ انجام معاملات، بررسی‌های مختلفی از جمله زمان‌بندی، قیمت و حجم را در بازار انجام می‌دهند و بر اساس دیتاهای موجود برای معاملات تصمیم‌گیری می‌کنند. این ابزار کمک می‌کند تا بدون درگیر شدن احساسات، در بازار معامله کرد که در نهایت موجب افزایش حجم معاملات می‌شود.

معاملات الگوریتمی برای چه کسانی کاربرد دارد؟

هر شخصی می‌تواند از این ابزارها برای معاملات خود در بازارهای مالی استفاده کند. از این ابزار در بازارهای بورس داخلی و خارجی نظیر بورس آمریکا، فارکس و ارزهای دیجیتال الگوریتم ها چگونه اجرا می شوند؟ استفاده می‌شود.

منتهی از این ابزار فقط به قصد گرفتن سود در بازار استفاده نمی‌شود؛ بلکه گاهی اوقات از این ابزار فقط برای سیگنال‌گیری و محدود کردن تعداد فرصت‌های معاملاتی، اردرگذاری اتوماتیک یا مدیریت ریسک و سرمایه نیز استفاده می‌شود.

پیش‌نیازهای معاملات الگوریتمی

نتیجه مطلوب از معاملات الگوریتمی نیاز به بستری مناسب برای اجرایی شدن آن دارد. بستر معاملات الگوریتمی به سه عامل مهم بستگی دارد.

مطابقت‌دهنده‌های بازار یا منبع تغذیه داده‌ها

این مطابقت دهنده‌ها فرمت اطلاعات بازار را به فرمتی که برای سیستم قابل درک باشد، تبدیل می‌کنند. همچنین دسترسی لازم به اطلاعات حساب و دیتاهای بازار فراهم می‌کنند. این کار از طریق رابط برنامه‌نویسی یا همان API که بازار معاملاتی در اختیار معامله‌گر قرار داده، انجام می‌شود.

موتور پردازش داده‌های معاملات الگوریتمی

این موتور مغز متفکر معاملات الگوریتمی است. موتور پردازش‌گر در این مرحله الگوریتم‌های برنامه‌ریزی شده توسط استراتژی‌های معاملاتی و شروط تعیین شده ما را باهم و در آن واحد روی کل بازار اعمال می‌کند و هرگاه شرایط لازم در سهمی پیدا شد، برای معامله تصمیم‌گیری می‌کند. به‌عنوان مثال فرض کنید که ما می‌خواهیم سهم‌هایی که در بازار RSI آن‌ها زیر 30 است را شناسایی کنیم. از بین صدها سهم بازار شاید برای انسان این کار بسیار زمان‌بر و دشوار باشد، اما برای یک موتور پردازش کننده بسیار راحت است.

ارسال سفارشات به بازار توسط الگوریتم‌ها

در این مرحله سفارشاتی که با الگوریتم‌های ما مطابقت دارند به بازار ارسال می‌شود. تنها نکته‌ای که اینجا مهم است این است که بستری که الگوریتم ما روی آن کار می‌کند، برای بازاری که در آن معامله می‌کنیم، قابل درک باشد.

الگوریتم‌های معاملاتی چه وظایفی دارند؟

معاملات الگوریتمی برای انجام درست و کامل بر اساس استراتژی مشخص‌ شده چهار وظیفه کلی دارند:

  • رصد و تحلیل کل بازار به‌صورت دقیق و با بیشترین سرعت ممکن
  • ثبت اردرها و پوزیشن‌گیری
  • مدیریت پوزیشن
  • مدیریت ریسک و سرمایه

هر الگوریتم معاملاتی می‌تواند هریک این چهار مورد را به‌طور کاملا اتوماتیک و با استفاده از ربات‌های معامله‌گر انجام دهد که به آن معاملات خودکار یا کاملا اتوماتیک می‌گویند. گاهی هم این چهار مورد به‌صورت ترکیبی با هوش انسانی در معاملات به‌کار گرفته می‌شود که در این‌صورت به آن معاملات نیمه خودکار می‌گویند.

طبقه‌بندی عملکردی معاملات الگوریتمی

الگوریتم‌ معاملاتی یا الگوریتم‌های معاملاتی در بازار بر اساس کارهایی که انجام می‌دهند و وظایفی که برعهده دارند، در طبقه‌بندی‌های مختلفی قرار می‌گیرند.

الگوریتم‌های اجرای معاملات

این نوع الگوریتم‌ها صرفا برای مدیریت اردرگذاری و اجرای معاملات به‌کار گرفته می‌شوند. تحلیل داده‌ها پس از پردازش برای این الگوریتم‌ها ارسال و آن‌ها براساس داده‌های موجود اقدام به اردر‌گذاری سفارشات بر اساس استراتژی تعیین شده می‌کنند. نحوه اردرگذاری در این نوع الگوریتم‌ها هم می‌تواند به‌صورت اتوماتیک و هم به‌صورت دستی باشد و الگوریتم تنها موظف به اجرای آن‌ها است.

به‌عنوان مثال فرض کنید یک شخص حقوقی می‌خواهد به اندازه 100 میلیارد تومان از یک سهم و در بازه قیمتی مشخصی خرید کند. خوب قطعا یک اردر 100 میلیارد تومانی مشکل‌ساز خواهد بود. زیرا در این صورت ممکن است قیمت تغییر کند و یا اصلا اردر ما باعث ایجاد تشکیل صف خرید شود. برای حل چنین مشکلی از الگوریتم‌های اجرای معاملات استفاده می‌شود که کار را برای ما راحت‌تر کنند. با استفاده از قابلیت مدیریت اردرها، این الگوریتم‌ها می‌توانند اردر بزرگ شما را با توجه به حجم بازار به هزاران اردر ریز تبدیل کنند تا خریدتان راحت‌تر انجام شود. این عملیات در زمان فروش نیز به همین شکل خواهد بود.

الگوریتم‌های سیگنال‌دهی

الگوریتم‌های سیگنال‌دهی همان‌طور که از اسمشان پیدا است، تنها وظیفه رصد و تحلیل بازار را بر عهده دارند و به تنهایی سودآور نیستند. این الگوریتم‌ها داده‌های کل بازار را به‌صورت همزمان زیر نظر می‌گیرند و هرگاه شرایط یک سهم با استراتژی از پیش تعیین شده ما مطابقت پیدا کرد آن را به ما گزارش می‌دهند. به‌عبارت دیگر یکی از مهم‌ترین کاربردهای این نوع الگوریتم‌ها در فیلتر بازار و شناسایی سهم‌های خوب است.

الگوریتم‌های بهینه‌ساز کننده

این الگوریتم‌ها کار پایش استراتژی و مطابقت آن با شرایط روز بازار را برعهده دارند. همان‌طور که می‌دانیم، میزان سود و ضررهای یک استراتژی در شرایط بازار صعودی و نزولی الگوریتم ها چگونه اجرا می شوند؟ یکسان نخواهد بود. این الگوریتم‌ها، استراتژی ما را با شرایط بازار در گذشته تست می‌کنند. تغییرات بازار از گذشته تا به زمان حال را در بهینه‌ترین حالت ممکن برای ما پیدا می‌کنند و آن تغییرات را روی استراتژی ما اعمال می‌کنند.

بهینه‌سازی استراتژی می‌تواند معیارهای زیادی داشته باشد که ما بر اساس اولویت‌مان آن‌ها را برای الگوریتم‌مشخص می‌کنیم. به‌عنوان مثال ممکن است اولیت‌ها را بر اساس بیشترین سود، کمترین ضرر یا ترکیبی از این دو حالت تنظیم کنیم. این الگوریتم‌ها باعث می‌شوند تا ما بتوانیم استراتژی معاملاتی خود را با توجه به شرایط بازار همیشه به‌روز و در بهینه‌ترین حالت ممکن نگهداریم.

الگوریتم‌های تریدینگ

الگوریتم‌های تریدینگ وظیفه خرید و فروش سهم بر اساس استراتژی از قبل تعیین شده معامله‌گر را دارند. به‌عنوان مثال فرض کنید که استراتژی ما خرید پلکانی سهم در صف فروش و فروش آن در صف خرید است. بر همین اساس این الگوریتم به محض دیدن صف فروش درسهم مورد نظر عملیات خرید را آغاز و در قیمت‌های از پیش تعیین شده و صف خرید، عملیات فروش سهم را آغاز می‌کند.

این نوع الگوریتم‌ها براساس دوره زمانی ازقبل برنامه‌ریزی شده به دو نوع کم‌بسامد و پربسامد تقسیم می‌شوند.

الگوریتم‌های کم‌بسامد (LFT)

منظور از الگوریتم‌های تریدینگ کم‌بسامد (Low Frequency Trading) این است که فاصله زمان دریافت داده‌های بازار زیاد باشد. به‌عبارت دیگر در این نوع الگوریتم‌ها بالا بودن سرعت دریافت و پردازش داده‌ها خیلی مهم نیست. بر همین اساس استراتژی‌های معاملاتی در این الگوریتم‌ها برای تایم‌های میان مدت و بلند مدت برنامه‌ریزی می‌شوند.

این نوع الگوریتم‌ها باتوجه به محدودیت‌ها با شرایط بازارهای داخلی ایران سازگار هستند.

الگوریتم‌های پربسامد (HFT)

الگوریتم‌های پربسامد مخفف عبارت (High Frequency Trading) است. بر خلاف الگوریتم‌های کم‌بسامد، سرعت دریافت داده‌ها در این الگوریتم بسیار اهمیت دارد. همان‌طور که از اسمشان پیداست این الگوریتم‌ها مناسب نوسان‌گیری در تایم‌های کمتر از روزانه مورد استفاده قرار می‌گیرند. هرچه سرعت دریافت داده‌ها در این الگوریتم بیشتر باشد، دقت معامله در آن نیز بیشتر خواهد بود و الگوریتم قادر خواهد بود که در تایم‌های پایین‌تر نیز به معامله بپردازد.

به‌عنوان مثال درمقیاس بازارهای جهانی، سرعت دریافت داده‌ها در برخی از الگوریتم‌های پربسامد، به میکرو ثانیه می‌رسد؛ که آن‌ها را قادر می‌سازد تا درتایم‌های یک دقیقه و حتی کمتر نیز به معامله بپردازند. هدف از این نوع معاملات، دریافت سود کم در تعداد معاملات زیاد است.

نکته مهم دیگر این است که حتی اگر شما به همچین الگوریتمی هم دسترسی داشته باشید، ابتدا باید ببینید هسته معاملاتی بازاری که در آن کار می‌کنید، توان پردزاش داده‌ها را در چنین مقیاس سرعتی دارد یا خیر. زیرا اگر این بستر فراهم نباشد دقیقا مصداق این مثال است که شما پر سرعت‌ترین خودروی جهان را در اختیار دارید، اما در جاده‌ای خاکی. بنابراین این نوع الگوریتم‌ها در ایران با محدودیت‌های زیادی مواجه هستند و کاربرد زیادی ندارند.

درحقیقت معاملات الگوریتمی هم مثل دراختیار داشتن اینترنت یا دانش شکافتن اتم است. خوب یا بد بودن آن بستگی به نوع دیدگاه و نحوه استفاده ما از این ابزار دارد. دقیقا همان‌طور که از شکافتن اتم در الگوریتم ها چگونه اجرا می شوند؟ علوم پزشکی استفاده شد، اما با همان دانش بمب اتم هم تولید کرده‌اند.

اهمیت استراتژی در الگوریتم‌ها

الگوریتم‌ها به تنهایی و بدون داشتن یک استراتژی سودآور نمی‌توانند کاری انجام دهند. لذا داشتن یک استراتژی سودآور با دقت بک تست بالای 90% در الگوریتم‌ها بسیار مهم و حیاتی است. درواقع الگوریتم‌های معاملاتی برای این‌که بتوانند جای ما در بازارهای مالی تصمیم بگیرند، نیاز به استراتژی دارند.

انواع استراتژی در الگوریتم‌های معاملاتی

استراتژی‌های معاملاتی در بازارهای مالی به چند دسته تقسیم‌بندی می‌شوند:

استراتژی‌های Trend Following

استراتژی‌های ترند فالویینگ یا همان دنباله‌روی روند، همان‌طور که از اسمشان مشخص است، به دنبال پیش‌بینی بازار برای آینده نیستند و همزمان با روند در نمودار، جهت معاملات خود را نیز تغییر می‌دهند. این نوع استراتژی یکی از ساده‌ترین انواع استراتژی‌ها است که طرفداران بسیار زیادی نیز در جهان دارد.

اصول و مبنای برنامه‌ریزی چنین استراتژی معاملاتی استفاده از میانگین‌های قیمتی است. سپس براساس اندیکاتور‌ها و سایر شواهد بازار اقدام به صدور سیگنال خرید و فروش در بازار می‌کنند.

استراتژی آربیتراژ (Arbitrage)

به‌طور خلاصه استراتژی آربیتراژ یعنی کسب سود از محل اختلاف قیمت در بازار. در اینجا مفهوم آربیتراژ را با ذکر مثالی برای شما بیان می‌کنیم. فرض کنید شرکتی قصد خرید کالای X را به قیمت 1000 تومان دارد. بر حسب اتفاق شما شخصی را می‌شناسید که می‌خواهد همان کالا را به قیمت 800 تومان به‌فروش برساند. خوب کار بسیار راحت است. شما تمام کالاهای فروشنده را به‌قیمت 800 تومان خریده و تمام آن را به قیمت 1000 تومان به شخص خریدار می‌فروشید. این اختلاف قیمت درواقع همان سود بدون ریسک یا همان آربیتراژ است.

در بازارهای مالی نیز این کار ممکن است. کار استراتژی‌های آربیتراژ کننده نیز همین است که تمام داده‌های قیمتی در بازارهای مختلف را باهم قیاس کنند و درصورت پیدا شدن موردی مشابه از فرصت به‌دست آمده نهایت استفاده را می‌برند. معمولا این نوع استراتژی‌ها در بازارهای متمرکز مورد استفاده قرار می‌گیرند. به‌عنوان مثال اختلاف قیمت بیتکوین در بین صرافی‌های مختلف می‌تواند یکی از این فرصت‌ها را به‌وجود آورد.

استراتژی معامله الگوریتم ها چگونه اجرا می شوند؟ پیش از توازن در صندوق‌های شاخصی

در بازار بورس صندوق‌های سرمایه‌گذاری مختلفی وجود دارند که بر اساس شاخصی خاص (دارایی‌های مسکن، دارایی‌های طلا، اوراق قرضه و. ) مشغول به فعالیت در آن حوزه هستند. معمولا این صندوق‌ها را با شاخص همان حوزه فعالیتشان می‌سنجند. اساس کار این استراتژی این است که بازدهی صندوق‌ها تمایل دارند همیشه خود را به شاخص نزدیک کنند. بر همین اساس زمانی که بازدهی این صندوق‌ها پایین‌تر از شاخصشان باشد، به‌صورت پلکانی شروع به خرید می‌کنند و زمانی که بازدهی آن‌ها بیشتر از شاخص باشد، شروع به فروش آن‌ها می‌کنند. این نوع استراتژی‌ها می‌توانند براساس تایم فریمی که در آن معامله انجام می‌شود، کم‌بسامد (LFT) یا پربسامد (HFT) تعریف شوند.

استراتژی‌های مبتنی بر مدل ریاضی

استراتژی‌های مختلفی در بازار وجود دارند که بر اساس مدل‌های ریاضی ثابت شده، تعریف می‌شوند. مانند استراتژی دلتا، تحلیل پوششی داده‌ها و. ازجمله استراتژی‌های مبتنی بر مدل ریاضی هستند که الگوریتم‌های معاملاتی بر اساس این استراتژی‌ها برنامه‌ریزی می‌شوند. استراتژی‌های گرید تریدینگ (Grade Trading) نیزاز همین دسته استراتژی‌ها هستند که برای رسیدن به سودآوری نیاز به تحلیل ندارند.

به‌عنوان مثال فرض کنید شما با مبلغ 1 دلار در یک شرط‌بندی شیر یا خط (پرتاب یک سکه) شرکت می‌کنید و به‌صورت شانسی یک روی سکه را برای شرط‌بندی خود انتخاب می‌کنید.

دوحالت وجود دارد:

اگر ‌برنده شدید که مشکلی وجود ندارد؛ اما اگر شما برنده نشدید، مجدد روی همان طرف سکه اما به اندازه 2 دلار (دو برابر حجم اولیه) شرط‌بندی می‌کنید. این‌بار اگر ببرید، 4 دلار برنده می‌شوید، درحالی که تنها الگوریتم ها چگونه اجرا می شوند؟ 3 دلار هزینه کرده‌اید (یک دلار سود). اگر بازهم برنده نشدید، دوباره همان شرط را با دو برابر حجم قبلی ادامه دهید (4دلار). این‌بار اگر برنده باشید، 8 دلار برنده می‌شوید درحالی که تنها 7 دلار هزینه کریده‌اید. این قضیه آن‌قدر ادامه پیدا می‌کند تا یک‌بار برنده شوید. در این‌صورت شما به‌اندازه میزان خرج کرد + 1 دلار برنده می‌شوید.

طبق احتمالات و ریاضیات این سیستم در انتها همیشه برنده خواهد بود؛ اما به شرطی که اصول مدیریت حجم و سرمایه الگوریتم ها چگونه اجرا می شوند؟ مخصوص به خود را هم در آن رعایت کنید. این نوع استراتژی‌ها برای ورود به یک معامله نیازبه تحلیل ندارند و تنها متکی به اصول ریاضیات هستند.

استراتژی‌های گرید تریدینگ برای شروع کار حجم اولیه بالایی را نیاز دارند تا ریسک اولیه کار را کاهش دهند. بعد از این‌که استراتژی به سود نشست، دیگر خطری حساب را تهدید نکرده و بعد ازمدتی این الگوریتم به یک ماشین پولسازی تبدیل می‌شود. برای سودآوری بیشتر از این نوع استراتژی‌ها در الگوریتم‌های مدیریت سرمایه نیز می‌توان استفاده کرد.

استراتژی‌های بازگشت به میانگین سهم

ایده بازگشت به میانگین دربازارهای مالی بر این اساس استوار است که یک دارایی همواره میانگینی بین کمترین و بیشترین قیمت خودش در بازار را دارد و در زمان‌هایی که زیر کف میانگین و یا بالاتر از این میانگین قرار دارد، تمایل به برگشت به خط میانگین درآن دیده می‌شود. این نوع استراتِژی‌ها می‌توانند بر اساس نوع داده‌های تحلیلی به سه قسمت استراتژی‌های میانگین قیمتی (WAP)، ماینگین حجمی (VWAP) و میانگین زمانی (TWAP) تقسیم‌بندی شوند.

الگوریتم‌هایی که بر اساس این نوع استراتژی‌ها برنامه‌ریزی می‌شوند، بر اساس محدوده شناسایی شده و تعریف شده‌ای که در اختیار دارند، هنگامی که از محدوده مورد نظر دور می‌شوند، اقدام به خرید و فروش می‌کنند.

مزایا و معایب معاملات الگوریتمی

به‌نظر شما استفاده از ابزار معاملات الگوریتمی در بازار بورس خوب است یا بد؟

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

آشنایی با الگوریتم ها و ساختار داده ها می تواند برای شما بسیار مفید باشد، در این مطلب قصد داریم توضیحاتی جالب درباره ساختارداده ها و الگوریتم ها بدهیم.

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

ممکن است شنیده باشید که توسعه دهندگان نیاز دارند که در زمینه الگوریتم مهارت داشته باشد. الگوریتم چیست؟ واین ساختارداده ها مهم هستند .

این دو کلمه چه معنایی می دهند؟ این دو مفهوم برای برنامه نویسی بسیار مهم و اساسی هستند که برنامه نویسان با تجربه گاهی اوقات بدون این که توجه کنند این کلمات ممکن است برای سایر افراد گیج کننده و نامفهوم باشد از آن استفاده می کنند.برای آشنایی بیشتر، مقاله الگوریتم ها را نیز مطالعه کنید.

از زمانی که Donald knuth کتاب مهارت های برنامه نویسی کامپیوتر را نوشت( که می توان این کتاب را به عنوان دایره المعارف الگوریتم ها و ساختار داده ها دانست) این کلمه کلمه ای گیج کننده بود و شبیه به کسی به بود که الگوریتم و ریاضیات را له می کند.

خلاصه ای درباره این مطلب

منشا کلمه الگوریتم در ریاضیات است، اما در محاسبات استفاده از آن دارای تفاوت هایی می باشد. این عبارت درباره الگوریتم اقلیدسی بیان شده است که آن یک فرایند گام به گام برای این است که شما بتوانید بزرگترین مقسوم علیه مشترک دو عدد را پیدا کنید. اما نیازی به ترسیدن نیست، هنگامی که برنامه های کامپیوتری می نویسید، به ندرت پیش می آید که شما نیاز پیدا کنید که درباره رقیبان خود، شرکت ها و ریاضی دانان اعجوبه از 300 سال قبل از میلاد نگران شوید.

این کلمه برای تعریف یک رویکرد گام به گام که دقیقا در آن یک گام بعدی وجود دارد مورد استفاده قرار می گیرد. درون یک الگوریتم با توجه به گام فعلی و مراحلی که برای ما تعیین شده است تنها یک راه برای عمل کردن است و آن دقیقا راه درست برای انجام شدن فرایند می باشد. بگذارید برویم به سراغ یک مثال واقعی از الگوریتم که در زندگی روزانه ما بسیار مورد استفاده قرار می گیرد. ما قصد داریم الگوریتمی را برای پوشش دادن دوره های cs در کل کشور توصیف کنیم و آن دقیقا الگوریتم جست و جوی دودویی می باشد. ترسناک است؟ واقعا ترسناک نیست.

توضیحاتی درباره این بخش

بیایید ده سال به عقب بازگردیم و وانمود کنیم که دفترچه تلفن ها واقعا عملی هستند. دفترچه تلفن ها دارای یک ویژگی جالب هستند و آن این است که اسامی بر حسب حروف الفبا مرتب شده اند. می گویند شماره جاستین بیبر را پیدا کن. فرض کنید نام جاستین بیبر درون دفترچه تلفن است، پیدا کردن اسم او از چند روش امکان پذیر است.

الگوریتم جست و جوی خطی

راحت ترین راه برای پیدا کردن اسم او این است که شما به تمامی صفحات نگاه کنید و آن را با نام او مقایسه کنید، برای مثال جیمز آرنر مشابه نیست و همین طور جاستین آرک نیز مشابه نیست. و این روند را به صورت نامحدود ادامه دهید تا اسم جاستین بیبر را پیدا کنید همین طور اگر شما بخواهید با شخصی به نام Warren Zevon چت کنید شما باید میلیون ها مقایسه با افرادی که نام خانوادگی آنها با z شروع می شود انجام دهید. جستجوی خطی در واقع یک روند است که از یک نقطه شروع و در نقطه پایان می یابد این جست و جو در یک لیست انجام می شود و مقادیر را با یکدیگر مقایسه می‌ کند. این یک روش فوق العاده است اما بسیار راحت می باشد، شرایط بسیار زیادی وجود دارد که استفاده از این روش برای پیدا کردن یک آیتم در یک لیست منطقی می باشد.

مثلاً اگر به جای دفترچه تلفن یک کاغذ در دست شما باشد و بخواهید از میان ۱۰ نفر شماره تلفن دوست خود را پیدا کنید احتمالاً حرکت از بالا به سمت پایین به صورت خطی بهترین روش و هوشمندانه ترین روش برای پیدا کردن شماره دوست شما است.

الگوریتم جست و جوی chunking

بسیاری از افراد حوصله کافی برای منتظر ماندن برای تمام شدن جستجوی خطی و پیدا کردن یک نام در دفترچه تلفن را ندارند، اگر من تمامی در دفترچه تلفن ها را در دست داشته باشم یک رویکرد بسیار عملی تر را متفاوت ‌تر برای جست و جوی آنها انتخاب خواهند کرد و این رویکرد الگوریتم chunking می باشد.

روند الگوریتم جست و جوی chunking

روند الگوریتم chunking در ابتدا شامل پیدا کردن یک منطقه عمومی برای جست و جو خواهد بود، بعد از آن این روند به بررسی هر یک از مناطق عمومی خواهد پرداخت. بنابراین زمانی که شما به دنبال اسم Bill Maher در دفترچه الگوریتم ها چگونه اجرا می شوند؟ تلفن هستید، شما به صورت 100 صفحه 100 صفحه حرکت خواهید کرد، شما می‌بینید که در 100 صفحه اول آخرین اسم با c شروع می شود بنابراین 100 صفحه به جلو می‌ روید، شما می‌بینید که آخرین اسم در پایان این دویست صفحه با K شروع می شود، حال اگر 75 صفحه به جلو بروید ممکن است به حرف L برسید. حرف L تنها یک حرف با حرف M فاصله دارد بنابراین از این جا به بعد باید حرکت خود را آرام تر کنید. این فرآیند معمولاً روش است که افراد آی تی برای جست و جوی اسامی در دفترچه تلفن به کار می برند. ما به عنوان انسان اغلب روش‌ها را به عنوان شیوه های غریزی به کار میبریم و این الگوریتم یکی از آن روش ها است.

الگوریتم جست و جوی دودویی

کارآمد ترین الگوریتم برای پیدا کردن یک شخص در دفترچه تلفن تقسیم کردن دفترچه تلفن به دو قسمت می باشد، بعد از آن باید تعیین کنید شخص در کدام نیمه از دفترچه تلفن است، به این ترتیب شما در مرحله اول موفق شده‌اید نیمی از دفترچه تلفن را حذف کنید و روند جستجو را در نیمه دیگر صفحات ادامه دهید. فرض کنید دفترچه تلفن 400 صفحه باشد، اگر شما به دنبال اسمی با نام vince Offer باشید که در صفحه 291 قرار دارد شما می‌توانید آن را با استفاده از الگوریتم جست و جوی دودویی پیدا کنید. برای این کار کافی است دفترچه تلفن را به چهار قسمت تقسیم کنید و به احتمال زیاد با این کار به حروف m و n خواهید رسید که خیلی ساده می توانید حرف o را نیز بیابید.

از آن جایی که حرف o بعد از M و N است، این به آن معنا است که می توانیم یک واقعیت را بیان کنیم:

نام vince offer در میان صفحات 200 تا 400 واقع شده است.

به عنوان یک انسان شما می‌دانید که حرف o درست بعد از حرف N می باشد، شما ممکن است وسوسه شوید که چند صفحه را پیش بینی کنید، اما بعد از انجام دادن الگوریتم جست و جوی دودویی شما نمی‌توانید این کار را انجام دهید. بعد از انجام یک مرحله از الگوریتم جست و جوی دودویی شما فقط نیمی از مشکل را پیش رو خواهید داشت. یعنی کافی است شما صفحه 300 را بررسی کنید با انجام دادن این کار احتمالاً در اطراف حرف s قرار خواهید گرفت، حرف O قبل از حرف S است بنابراین شما باید قاعده زیر را پیروی کنید:

نام vince offer در میان صفحات 200 تا 300 قرار گرفته است.

پیدا کردن نام vince offer در این مثال

در ابتدا با 400 صفحه شروع کردیم اما حالا فقط با انجام دو مقایسه مشکل را به 1/4 مشکل اولیه کاهش داده ایم، با توجه به اینکه نام Vince offer در صفحه 291 قرار دارد، مقایسه های زیر را در این الگوریتم انجام خواهیم داد تا نام او را پیدا کنیم:

[200-300] -> [250-300] -> [275-300] -> [287-300] -> [287-293] -> [290-293] -> [290-291] -> 291

با انجام دادن این الگوریتم می توانید یک دفترچه تلفن ۴۰۰ صفحه ای را به هشت قسمت تقسیم کرده و با هشت مقایسه آن را از یکدیگر جدا کنید، این تعداد مقایسه در مقابل سایر الگوریتم هایی که ما بیان کردیم بسیار شگفت انگیز است.

در واقع تعداد مقایسه هایی که شما با استفاده از این الگوریتم زمانی که با یک مسئله برخورد کردید لازم است انجام دهید log 2 (n) می باشد. که ما در این مسئله تنها 8 مقایسه را برای پیدا کردن جواب لازم داشتیم.

Log 2 (400) = 2.64… که یعنی ما در بدترین حالت نیاز به 9 مقایسه داشتیم.

اجازه دهید درباره دفترچه تلفن بزرگتری صحبت کنیم، یک دفترچه تلفن با 4 میلیون صفحه را در نظر بگیرید، حدس بزنید، چه تعداد از مقایسه باید انجام دهیم تا بتوانیم نام Vince Offer را پیدا کنیم؟

Log 2 (4,000,000) = 21.93 که یعنی شما در بدترین حالت تنها نیاز به 22 مقایسه دارید تا بتوانید این نام را پیدا کنید.

مقایسه الگوریتم ما با الگوریتم خطی برای پیدا کردن عناصر در یک دفترچه تلفن

در بدترین حالت زمانی که ما یک دفترچه تلفن را بررسی می‌کنیم ممکن است ورودی مد نظر ما در آخرین صفحه قرار دارد که در این صورت برای یک دفترچه با 4000000 صفحه در جست و جوی خطی شما نیاز به 4000000 مقایسه خواهید داشت ولی در روش جست و جوی دودویی تنها نیاز به 22 مقایسه دارید.

یادگیری الگوریتم یادگیری این موضوع است که چگونه مسئله را به مسئله های کوچکتر بشکنید

همه چیز درباره شکستن مسئله به مسائل مختلف و کوچکتر می باشد، به صورتی که هر شخص با توجه به این سناریو تنها بتواند یک رفتار را داشته باشد. الگوریتم در واقع فهم روند در حال انجام و تبدیل آن به کد است. به صورت کلی فهم عمیق فرایند در حال انجام بسیار سخت تر از تبدیل آن به کدی است که کار کند.

ترفندهایی که شما به آن نیاز دارید

ما مفهوم جستجوی دودویی عناصر را از خودمان نساخته ایم، دانشمندان کامپیوتر ترفند های بسیار زیادی را دارند که تمامی برنامه نویسان باید آنها را در ذهن خود داشته باشند. یادگیری الگوریتم تماماً هنر تسلط بر فرایند ها و تبدیل آنها به کدی است که توسط کامپیوتر اجرا شود. همانطور که در مثال بالا دیدید استفاده از یک ترفند مناسب در یک سناریو باعث شد که کاری که 4,000,000 مقایسه نیاز داشت تنها با 22 مقایسه انجام شود. زمانی که شما بتوانید یک الگوریتم مفید علم کامپیوتر را به یک کد در هر زبان برنامه نویسی تبدیل کنید، شما در واقع این مهارت را دارید که هر کدی که به سمت شما در دنیا ارسال شود را بنویسید.

برخی دیگر از ترفندهایی که شما بعید است بتوانید خودتان به آن ها دست بیابید( در واقع باید از دانشمندان علم کامپیوتر یاد بگیرید) الگوریتم هایی مانند الگوریتم های زیر هستند:

1- الگوریتم جست و جوی عمیق

2- Breadth-first search

3- نوشتن الگوریتم های مرتب سازی

توضیحاتی درباره این بخش

کلید حل این مشکل این است که در ابتدا نحوه کار کردن الگوریتم ها را یاد بگیریم، دقیقا مانند ما که ابتدا مثال دفترچه تلفن را توصیف کردیم و سپس آن را تبدیل به کد کردیم. زمانی که ساختار داده ها وارد کار می شوند شما ممکن است تعجب کنید، واضح است برای اجرای برخی از الگوریتم هایی که دانشمندان علم کامپیوتر با آن رو به ‌رو می‌ شوند شما نیاز به ابزارهای مناسب این کار دارید، برای اینکه بهتر با مفهوم ساختار داده ها آشنا شوید بهتر است در مورد صف ها صحبت کنیم.

صف یک ساختار داده مشخص است که شما نیاز دارید در آن الگوریتم breadth-first search را پیاده سازی کنید، اگر شما ساختار داده های مختلف را درک نکنید شما به عنوان یک برنامه نویس باید با ابزارهای کمتری کار کنید و همین طور برای اجرای برخی از الگوریتم ها زمان زیادی را باید بگذرانید.

شما میتوانید یک مثال بسیار بزرگ از ساختار داده صف را در هنگام غذا خوردن تجربه کنید، زمانی که شما در صف غذا ایستاده اید یک شماره می‌گیرید و منتظر می‌مانید تا شماره شما صدا زده شود. هر کسی که زودتر از شما شماره گرفته باشد زودتر نیز سرویس غذا را دریافت خواهد کرد.

صف ها دارای دو ویژگی بسیار جالب هستند:

1- Enqueue به زمانی گفته می شود که شما شروع به منتظر ماندن می کنید. در واقع آن دقیقا زمانی است که شما یک شماره دریافت می کنید.

2- Dequeue به زمانی گفته می شود که شما باید سرویس دریافت کنید، این دقیقا معادل است با زمانی که شماره شما صدا زده می شود که سرویس غذای خود را دریافت کنید.

بنابراین به صورت خلاصه می‌توان گفت که الگوریتم‌ ها الگوها و رویه های هستند که برای رسیدن به یک هدف خاص مورد استفاده قرار می‌گیرند. ساختار داده ها مانند ابزاری در ذهن شما هستند که می توانید از آنها برای برنامه نویسی استفاده کنید، شما نیازی ندارید که از آنها در برنامه نویسی استفاده کنید و در واقع می ‌توان گفت لزومی ندارد که از آن ها استفاده کنید ولی استفاده از آن ها در هنگام برنامه نویسی برای یک کار خاص باعث می‌شود تا کد شما تمیز تر و راحت تر نوشته شود و استفاده از این ابزارها باعث می شود تا شما برنامه نویس و توسعه دهنده بهتری باشید.

الگوریتم ProgPow چیست؟ | آشنایی با طرح پیشنهادی استخراج اتریوم با ProgPow

الگوریتم ProgPow چیست؟

الگوریتم ها چگونه اجرا می شوند؟ الگوریتم ProgPow چیست؟ ، توسعه دهندگان اتریوم ethereum تصمیمی در رابطه با بکارگیری الگوریتم ProgPow گرفته اند.این الگوریتم بر اساس اثبات کار pow عمل می کند که در مقابل دستگاه های ای سیک مقاوم می باشد.در این مطلب قصد داریم تا شمارا با الگوریتم ProgPow آشنا کنیم و بگوییم که چطور این الگوریتم باعث می شود دستگاهای آیسیک (ASIC) دیگر مثل قبل نتوانند به خوبی به استخراج اتریوم بپردازند.

الگوریتم ProgPow چیست؟

ProgPow مخفف عبارت Programmatic Proof Of Work که به معنای اثبات کار برنامه نویسی است. می توان گفت که این الگوریتم در واقع افزونه ای برای الگوریتم حال حاضر اتریوم یعنی اِتَش Etash می باشد. اتریوم می خواهد با استفاده از این الگوریتم، ایسیک (ASIC) هایی که هر روز درحال افزایش هستند تا بتوانند اتریوم را استخراج کنند را خارج کند.

این الگوریتم دو ویژگی دارد که از طریق آن اهداف گفته شده در بالا اجرا می شوند:1)تغییر منظم طرح مسئله در عملیات استخراج 2) استفاده و بهره وری کامل از تمامی قابلیت های کارت های گرافیک برای استخراج کردن

که گزینه دو بسیار مهم تر است چراکه ای سیک ها همگی در این مورد دارای ضعف می باشند.ای سیک ها فقط برای یک هدف خاص تولید می شوند و تنها کاری که می کنند بدست آوردن راه حل بلاک ها است.ولی قابل استفاده برای بازی های کامپیوتری نیستند.اما کارت های گرافیک برخلاف ای سیک ها هم برای استخراج و هم برای انجام بازی های کامپیوتری قابل استفاده هستند.همچنین کد های الگوریتم PROGPOW روی گیت هاب قراردارد که باعث می شود عملکرد آن کاملا شفاف باشد.

دلیل به وجود آمدن الگوریتم جدید ProgPow

در گذشته ماینر های اتریوم و دیگر ارزهای دیجیتالی قابل ماین با الگوریتم Etash به راحتی با کارت گرافیک خود می توانستند به راحتی و با سود خوبی که بدست می آوردند استخراج را انجام دهند هرچند کارت های گرافیک این ماینرها با هم از نظر کارایی و نرخ هش متفاوت بودند ولی این تفاوت به قدری نبود نرخ هش آنها نسبت به هم خیلی تفاوت داشته باشد. و یک کارت گرافیک بر دیگری برتری مطلق نداشت و به همین دلیل ماینر ها بسیار راضی بودند.

اما احساس رضایت ماینرهایی که بوجه کمی داشتند مدت زمان زیادی طول نکشید، زیرا در سال 2018 بیت مین دستگاهی به نام Antminer E3 منتشر کرد که این دستگاه می توانست تا 180MH/s برسد و مصرف برق آن هم فقط 800w بود. بعد از تولید این دستگاه شرکت های دیگری به ساخت این آیسیک ها با الگوریتم Etash روی آوردند و بر تعداد این دستگاه ها بسیار افزوده شد.

خب در این جا سوال پیش می اید که اگر مقدار قدرت محاسبه یا هش افزایش یابد این به معنای خوب بودن ماجرا می باشد یا بد بود آن! توسعه دهندگان اتریوم معتقد هستند که با ورود دستگاه آیسیک ها به شبکه اتریوم، بسیاری از ماینر هایی که با کارت های گرافیکی خود عمل استخراج را انجام می دادند از شبکه اتریوم خارج می شوند، انسان هایی که ثروتمند هستند با خرید آیسیک های فراوان قدرت پردازشی شبکه را در دست خود می گیرند و با این اتفاق امکان حمله موفق 51 درصدی امکان پذیر می باشد.

به همین دلیل اتریوم برای مواجه با ای سیک ها سه دلیل ارائه داد:

1) مقابله کردن با تهدید به متمرکز شدن شبکه

2) مقابله کردن با انحصارگرایی بین تولیدکنندگان تجهیزات استخراج

3) ایجاد کاربرانی که ترسی از وجود تهدید خارجی نداشته باشند.

همچنین ماینرهایی که برای خرید ریگ هزینه زیادی متقبل کرده اند و هنوز سرمایه اولیه به آن ها برنگشته و تعداد زیاد ای سیک هایی که در شبکه اتریوم وجود دارند ،قرار است زمان برگشت سرمایه به آن ها از هم اکنون هم طولانی تر بشود.

آشنایی با الگوریتم جدید PROGPOW

الگوریتم ProgPow چیست؟

پیش تر از این برنامه نویس های BITCOINZ برای اولین بار هاردفورکی به وجود آوردند که ای سیک ها را از شبکه خود بیرون کنند.توسعه دهندگان مونرو چندین مرتبه در سال این کار را می کنند.

بین همه این اقدامات PROGPOW از همه بهتر است زیرا از روش بهتری استفاده می کند.این الگوریتم بجای بیرون کردن ای سیک ها کارایی و بازدهی آن ها را کم می کند .به این ترتیب بازدهی آن ها با کارت گرافیک های معمولی به یک صورت می شود.بنابراین کاربران با دیدن کارایی ای سیک ها با استفاده از این الگوریتم دیگر تمایلی به پرداخت هزینه زیاد برای ای سیک ها ندارند.در نهایت این موضوع به نفع کاربرانی که کارت گرافیک دارند می باشد.از طریق الگوریتم PROGPOW هم توسعه دهندگان موفق به اجرای هدف خود می شوند هم نگرانی بابت کاهش یافتن سود ریگ ماینرها از بین خواهد رفت.

نحوه عملکرد الگوریتم PROGPOW

این الگوریتم همانطور که از اسم آن پیداست به این معنی است که هر حلقه یا LOOP داخلی از حافظه MEMORY که به معنی تکرار روند حل کردن مسئله می باشد،یک برنامه تولید شده بر اساس شماره بلاک در نظر گرفته شده است که به صورت تصادفی و اتفاقی ایجاد می شود. طراحی این برنامه به صورتی است که از کاربردهای کارت گرافیک به صورت گسترده استفاده می شود که این باعث کارامد تر شدن کارت گرافیک ها در استخراج کردن می شود.

در الگوریتم PROGPOW دستگاه های ماینر به سخت افزار های قدرتمند که توانایی انجام چند کار را دارند نیاز دارند و ای سیک ها که فقط توانایی انجام یک کار بخصوص را دارند برای آن مناسب نیستند.PROGPOW به صورت منظم مسئله ریاضی را در طی عملیات استخراج عوض می کند .که این باعث می شود کارت های گرافیک بخاطر داشتن انعطاف بیشتر در شرایط گوناگون کارایی بهتری نسبت به ای سیک ها داشته باشند.

این الگوریتم از تمام اجزای کارت گرافیک بجز کانال های ارتباطی و واحدهای پردازش شناور برای استخراج استفاده می کند. تولیدکنندگان PROGPOW برای سازگارکردن این الگوریتم با همه تولید کنندگان مثل AMD ,NVIDIA این دو را از محاسبات خود خارج کردند.

نظرات کارشناسان درمورد الگوریتم PROGPOW

اجرای این الگوریتم از 2018 در حال بررسی بوده است.توسعه دهندگان اتریوم در سال 2019 آن را مطرح کردند.اکثر برنامه نویس ها در مورد ایده رضایت دارند.اما معتقدند برای اجرای کامل آن باید زمان بیشتری صرف شود.همچنین PROGPOW مخالفانی نیز دارد که معتقدند اجرای این الگوریتم یعنی منحرف شدن از مسیر پیش بینی شده برای عرضه کردن الگوریتم اثبات سهام اتریوم و امکان تقسیم شبکه و اعمال هاردفورک های دیگر روی شبکه .بر اساس نطر منتقدین ای سیک ها شبکه را ایمن تر می کنند.به عقیده آن ها این الگوریتم باعث نمی شود تولیدکنندگان ای سیک ها یک فناوری جدید برای استخراج ارزهای دیجیتال تولید نکنند یعنی به نظر آن ها این الگوریتم عملا چیزی را تغییر نخواهد داد.

سخن آخر

این الگوریتم هم اکنون در حال بررسی فنی قرار داد همچنین خبرهایی دال بر وجود مشکل در آن هم اعلام شده است .بهرحال این الگوریتم باعث می شود که هزینه ریگ استخراج برای بسیاری از کاربران قابل تقبل باشد .با استفاده از این الگوریتم تمرکز زدایی از شبکه قابل دسترس الگوریتم ها چگونه اجرا می شوند؟ می شود.احتمال اجرای این الگوریتم در 2020 وجود دارد.

ممنون از اینکه تا پایان ” الگوریتم ProgPow چیست؟ ” همراه ما بودید.

کار و فنآوری ، مهارت زیبای زندگی

الگوریتم یا خوارزمی مجموعه‌ای متناهی از دستورالعمل‌ها است، که به ترتیب خاصی اجرا می‌شوند و مسئله‌ای را حل می‌کنند. به عبارت دیگر یک الگوریتم، روشی گام به گام برای حل مسئله است. شیوه محاسبه معدل در مدرسه، یکی از نمونه‌های الگوریتم است.


قطعیت : دستورات الگوریتم باید با زبانی دقیق، و بی‌ابهام بیان شوند . هر دستورالعمل نیز باید انجام‌پذیر باشد . دستورهایی نظیر « مقدار ۶ یا ۷ را به x اضافه کنید » یا « حاصل تقسیم پنج بر صفر را محاسبه کنید » مجاز نیستند؛ چرا که در مورد مثال اول، معلوم نیست که بالاخره چه عددی باید انتخاب شود، و در خصوص مثال دوم هم تقسیم بر صفر در ریاضیات تعریف نشده‌است .

محدودیت : الگوریتم باید دارای شروع و پایان مشخصی باشد، به نحوی که اگر دستورات آن را دنبال کنیم، برای تمامی حالات، الگوریتم پس از طی مراحل شمارا و متناهی خاتمه یابد . به علاوه، زمان لازم برای خاتمه الگوریتم هم باید به گونه‌ای معقول، کوتاه باشد .

واژه الگوریتم از نام ریاضیدان و ستاره‌شناس و جغرافی‌دان نامی ایرانی، ابوجعفر محمد بن موسی خوارزمی ( الخوارزمی )، گرفته شده است، که در خوارزم زاده شد و در دانشگاه «بیت الحکمه » بغداد به اوج شهرت رسید . خوارزم یکی از شهرهای « ایران بزرگ » بود، که امروزه در ازبکستان واقع شده است و خیوه نام دارد .

رساله ای که خوارزمی در قرن ۹ میلادی به عربی نگاشته بود، در قرن ۱۲ به لاتین با نام “Algoritmi de numero Indorum” ترجمه شد؛ یعنی “[ کتابی بدست ]« الگوریتمی » در مورد اعداد هندی”، که « الگوریتمی » نام الخوارزمی بود که مترجم آن را در تبدیل به لاتین چنین آورده بود. در قرن ۱۳ میلادی واژه الگوریسموس ( algorismus ) به معنای « سیستم شمارش عربی ( دهدهی )» ( یعنی اعداد ۱ تا ۹ به علاوه صفر، و نیز مفهوم اعشار ) بود؛ که هنوز هم یکی از معانی واژه الگوریسم ( algorism ) است. معنای دیگر الگوریسم « حساب کردن با کمک اعداد عربی » است؛ یعنی فن انجام أعمال حسابی پایه، مانند جمع و ضرب، با قرار دادن اعداد در زیر هم و إعمال قواعدی خاص، که جایگزین به کارگیری اعداد رومی و استفاده از چرتکه شد .

حتی روش انجام دستی تقسیم و جذر گرفتن(رادیکال) هم الگوریسم نامیده می شود. در قرن ۱۹ این کلمه در فرانسوی به algorithme تغییر شکل پیدا کرد، البته معنایش ثابت ماند. طولی نکشید که این کلمه به شکل algorithm وارد زبان انگلیسی شد؛ ولی فقط در اواخر قرن ۱۹ میلادی بود که معنای عام‌تر امروزی‌اش را یافت، و به «هر مجموعه قواعدی برای انجام یک رویه محاسباتی یا روال رایانه‌ای به کار رود» الگوریتم گفته شد .

تبدیل نام الخوارزمی به الگوریسم و سپس الگوریتم احتمالا تحت تأثیر واژه یونانی arithmos ( به معنای عدد) و arithmetic ( به معنای محاسباتی) بوده است. برخی منابع هم کلمه لگاریتم را هم در تبدیل الگوریسم و الگوریتم بی تأثیر ندانسته اند.

در علوم رایانه، یک الگوریتم را یک روال محاسباتی خوش‌تعریف می‌دانند، که مقدار یا مجموعه‌ای از مقادیر را به عنوان ورودی (Input) دریافت کرده و پس از طی چند گام محاسباتی، ورودی را به خروجی (Output) تبدیل می‌کند. بجز این، الگوریتم را ابزاری برای حل مسائل محاسباتی نیز تعریف کرده‌اند. ساخت و طراحی الگوریتم مناسب در مرکز فعالیت‌های برنامه‌سازی رایانه قرار دارد . یک برنامه رایانه‌ای، بیان یک یا چند الگوریتم با یک زبان برنامه‌نویسی است.

مفهوم الگوریتم را معمولاً با تشبیه به دستور آشپزی توضیح می‌دهند. مثلاً اگر بخواهیم آبگوشت درست کنیم (عمل مورد نظر) با فرض اینکه مواد خام را داریم (حالت اولیه) مراحل مشخصی را باید طبق دستور آشپزی طی کنیم (دستورالعمل‌ها) تا به آبگوشت آماده (حالت پایانی) برسیم. البته الگوریتم‌ها معمولاً پیچیده‌تر از این هستند.

الگوریتم گاه دارای مراحلی است که تکرار می‌شود (در مثال آبگوشت مثلاً چند بار باید نمک زد یا آب اضافه کرد) و یا در مرحله‌ای نیازمند تصمیم‌گیری است (اگر نمک کافی است دیگر نمک نمی‌زنیم، اگر کافی نیست نمک می‌زنیم).

اگر الگوریتم برای عمل مورد نظر مناسب نباشد و یا غلط باشد به نتیجه مورد نظر نمی‌رسیم. مثلاً اگر الگوریتم آبگوشت را با مواد اولیه کباب انجام دهیم واضح است که به آبگوشت نمی‌رسیم.

باید بدانیم برای هر الگوریتم تعریف متغیرها و طراحی مرحله به مرحله بسیار مهم است. زیرا الگوریتم باید بداند بر روی چه متغیر هایی، چه اعمالی را انجام دهد و نتیجه را در غالب چه متغیرها یا پارامتر هایی نشان دهد.

معمولاً برای حل یک مسئله، روش‌ها و الگوریتم‌های گوناگونی وجود دارند؛ یک الگوریتم ممکن است عمل مورد نظر را با دستورات مختلف در مدت زمان و یا کار کمتر یا بیشتری نسبت به الگوریتم دیگر انجام دهد. به همین دلیل، انتخاب الگوریتم مناسب و کارا اهمیت زیادی در موفق بودن و کارایی برنامه رایانه‌ای دارد .

الگوریتم‌ها به عنوان یک فناوری مطرح هستند و دانشمندان آنها را طراحی، تحلیل، و مطالعه می‌کنند. تحلیل الگوریتم‌ها رشته‌ای است که به بررسی کارایی الگوریتم‌ها می‌پردازد. تحلیل الگوریتم‌ها یعنی پیش‌بینی منابع مورد نیاز برای اجرای یک الگوریتم، همچون: حافظه، پهنای‌باند ارتباطی، سخت‌افزار، و از همه مهمتر، زمان .

کارایی یا پیچیدگی هر الگوریتم را با تابعی نشان می‌دهند که تعداد مراحل لازم برای اجرای الگوریتم را برحسب طول داده ورودی، یا میزان محل‌های لازم حافظه را بر حسب طول داده ورودی نشان می‌دهد.

استیبل کوین های الگوریتمی چیست و چگونه کار میکنند؟

استیبل کوین الگوریتمی چیست

ارزهای دیجیتال به دلیل نوساناتی که دارند، شناخته شده هستند. اما یکی از شکل‌های ارزهای دیجیتال، به نام استیبل کوین‌ها، با هدف ایجاد پناهگاه برای کسانی که می‌خواهند از الگوریتم ها چگونه اجرا می شوند؟ نوسانات ثابت خارج شوند، در حالی که همچنان در بازار ارزهای دیجیتال باقی می‌مانند، وجود دارند. استیبل کوین ها ارزهای رمزپایه ای هستند که قرار است با ارزهای فیات مانند دلار آمریکا مرتبط شوند. قیمت آن‌ها همیشه ۱ دلار است. دو مورد از بزرگ‌ترین انواع آنها، تتر (USDT) و یو اس دی کوین (USDC)، توسط ذخایر فیات پشتیبانی می‌شوند، به این معنی که دارایی‌های نقدی یا دارایی‌های معادل نقدی در ذخایر خود دارند. بنابراین، هر USDT یا USDC که در بازار کریپتو معامله می شود، توسط آنچه که در واقع در اختیار صادرکنندگان استیبل کوین است، پشتیبانی می شود. در این مقاله، ما بررسی خواهیم کرد که استیبل کوین های الگوریتمی چیست، چگونه کار می کنند و چگونه با استیبل کوین های معمولی تفاوت دارند.

  • 1 استیبل کوین های الگوریتمی چیست؟
  • 2 استیبل کوین های الگوریتمی چگونه کار می کنند؟
  • 3 چند نمونه از استیبل کوین های الگوریتمی چیست؟
  • 4 UST چگونه برای حفظ ارزش خود طراحی شده است؟
  • 5 آینده استیبل کوین های الگوریتمی

استیبل کوین های الگوریتمی چیست؟

الگوریتم می تواند یک کلمه مبهم باشد. اما به سادگی به معنای مجموعه ای از کد است که یک فرآیند را دستور می دهد. بنابراین، برای مثال، آنچه در جدول زمانی فیس بوک خود می بینید، توسط الگوریتم های تایم لاین فیس بوک تعیین می شود، که شامل مواردی مانند میزان مرتبط بودن پست با شما بر اساس رفتار آنلاین گذشته شما است. در کریپتو، یک الگوریتم به قطعات کد روی بلاک چین اشاره دارد که در مجموعه ای از قراردادهای هوشمند کدگذاری شده است.

امور مالی غیرمتمرکز (DeFi) یک صنعت پیچیده و به سرعت در حال توسعه، مملو از آزمایش و نوآوری است که بر پایه‌های فلسفی و ایدئولوژیکی یک سیستم مالی غیرمتمرکز کارآمدتر، مقاوم در برابر سانسور است. استیبل کوین های الگوریتمی نمونه ای از این ویژگی ها و بخشي از اقتصاد پولي، بخشي از بازارهاي مالي، بخشي از رياضيات و بخشي از فناوري هستند. در تقاطع پول و فناوری بلاک چین، آن‌ها جدید و پیچیده هستند و چالش‌ها و سؤالات بی‌پاسخ زیادی را در مورد چگونگی آینده DeFi ایجاد می‌کنند.

استیبل کوین های الگوریتمی معمولاً به دو توکن متکی هستند، یکی استیبل کوین و دیگری ارز دیجیتال که پشتوانه استیبل کوین ها است. و بنابراین الگوریتم (یا مخاطب هوشمند) رابطه بین این دو را تنظیم می کند. ارزهای دیجیتال ، مشابه همه دارایی‌های موجود در بازار، مانند خانه یا سهام ، بسته به تقاضای بازار و عرضه دارایی، قیمتشان بالا و پایین می‌شود. این شامل استیبل کوین‌ها نیز می‌شود، زیرا این ارزها اساساً ارزهای رمزپایه‌ای هستند که آزادانه در بازار معامله می‌شوند.

برای جلوگیری از کاهش قیمت یک استیبل کوین – دور شدن از 1 دلار – در حالی که تابع شرایط بازار است، الگوریتم‌ها عرضه و تقاضا را تنظیم می‌کنند. زمانی که تقاضای زیادی برای یک دارایی وجود داشته باشد اما عرضه آن کم باشد، قیمت آن دارایی بالا می رود و بالعکس. وعده الگوریتم این است که این موضوع را کنترل کند، همانطور که در بخش UST در بخش بعدی بررسی می‌کنیم، قبل از اینکه عمیق‌تر در مورد اینکه چگونه می‌تواند به طرز وحشتناکی اشتباه پیش برود.

استیبل کوین الگوریتمی چگونه کار میکند

استیبل کوین های الگوریتمی چگونه کار می کنند؟

تست برای تعیین اینکه آیا یک استیبل کوین (الگوریتمی یا غیره) کار می کند ساده است: چقدر ارزش خود را حفظ می کند؟ طراحان استیبل کوین الگوریتمی از مکانیسم های مختلفی برای کمک به سکه برای حفظ ارزش خود استفاده می کنند. برخلاف اکثر استیبل کوین‌ها، با استیبل کوین‌های الگوریتمی، این مکانیسم‌ها در پروتکل نوشته می‌شوند و به صورت عمومی در بلاک چین برای مشاهده همه در دسترس هستند. در زیر دو مدل متداول استیبل کوین الگوریتمی غیر وثیقه‌ای وجود دارد که با فرض ثابت بودن 1 دلار نشان داده شده‌اند.

استیبل کوین های الگوریتمی Rebase عرضه پایه را برای حفظ ارزش دستکاری می کنند. پروتکل متناسب با انحراف قیمت سکه از ارزش 1 دلار، عرضه را از گردش می اندازد (اضافه می کند) یا می سوزاند (حذف می کند). اگر قیمت سکه > 1 دلار باشد، پروتکل سکه ضرب می کند. اگر قیمت سکه کمتر از 1 دلار باشد، پروتکل سکه ها را می سوزاند. سکه ها در کیف پول دارندگان سکه ضرب می شوند یا از آن سوزانده می شوند.

استیبل کوین‌های الگوریتمی حق‌الزحمه از یک سیستم چند سکه‌ای استفاده می‌کنند، که در آن قیمت یک سکه به گونه‌ای طراحی شده است که ثابت باشد و حداقل یک سکه دیگر برای تسهیل این ثبات طراحی شده است. مدل‌های Seigniorage معمولاً ترکیبی از مکانیسم‌های مبتنی بر پروتکل و مکانیسم‌های بازار آزاد را اجرا می‌کنند که مشارکت‌کنندگان بازار را تشویق می‌کند تا کوین غیراستیبل کوین را بخرند یا بفروشند تا قیمت استیبل کوین را به سمت میخ آن سوق دهند.

مدل سوم، استیبل کوین های الگوریتمی کسری، به طور رو به افزایشی محبوب می شود. هدف استیبل کوین‌های الگوریتمی جزئی، بخشی وثیقه‌دار، حفظ پیوند خود با ترکیب بهترین مکانیسم‌ها از استیبل کوین‌های «خالص» بدون وثیقه و همتایان وثیقه‌شده آن‌ها است. فراکس فاینانس پیشگام این مدل بود.

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

آمپلفورث (AMPL) : یکی از اولین استیبل کوین‌های الگوریتمی بازبنیاد شده، که با CPI تعدیل‌شده 2019 دلار آمریکا مرتبط است.

بیسیس کش (BAC) : با استفاده از سیستم امضای سه توکن، استیبل کوین پایه نقدی (BAC) 1 USD خود را از طریق استفاده از سهام و اوراق قرضه حفظ می کند.

یو اس دی دی (USDD) : یک استیبل کوین غیرمتمرکز برای اکوسیستم ترون، که در می 2022 توسط بنیانگذار ترون جاستین سان راه اندازی شد.

یو اکس دی (UXD) : یک استیبل کوین الگوریتمی که 100٪ توسط یک موقعیت خنثی دلتا در بلاک چین سولانا پشتیبانی می شود.

یو اس تی (UST) : این استیبل کوین الگوریتمی در ماه مه 2022 زمانی که پیوند دلاری خود را در بحبوحه سقوط گسترده‌تر بازار کریپتو از دست داد، به سرفصل خبرها تبدیل شد و باعث سقوط قیمت Terra (LUNA) شد، ارز دیجیتالی که برای حفظ ارزش دلاری خود استفاده می‌شد.

استیبل کوین الگوریتمی

UST چگونه برای حفظ ارزش خود طراحی شده است؟

TerraUSD (UST) برابری 1:1 خود را با دلار آمریکا از طریق یک رابطه الگوریتمی با ارز دیجیتال بومی Terra، LUNA، حفظ می کند یا قرار است حفظ کند. پشت این رابطه یک فرصت آربیتراژ وجود دارد که هر بار که UST ارزش خود را در هر جهت از دست می دهد، خود را نشان می دهد.

وقتی عرضه UST خیلی کم باشد و تقاضا برای آن خیلی زیاد باشد، قیمت UST به بالای 1 دلار می رسد. برای بازگرداندن UST به ارزش خود، پروتکل Terra به کاربران اجازه می دهد 1 USD LUNA را با 1 UST در پورتال ایستگاه Terra معامله کنند. این معامله 1 دلار LUNA را می سوزاند و 1 UST را می سوزاند که کاربران می توانند آن را به قیمت 1.01 دلار بفروشند و 1 سنت به جیب بزنند. زیاد به نظر نمی رسد، اما این سودها وقتی در مقادیر زیاد انجام می شود، افزایش می یابد. کاربران می توانند به اندازه نیاز UST از LUNA سوخته ضرب کنند تا زمانی که UST به $1 کاهش یابد. با افزایش عرضه، قیمت در نهایت کاهش می یابد.

وقتی عرضه خیلی زیاد باشد و تقاضا خیلی کم باشد، برعکس این اتفاق می افتد: قیمت UST به زیر 1 دلار می رسد. بنابراین این پروتکل به کاربران اجازه می‌دهد برعکس این کار را انجام دهند: کاربران می‌توانند 1 UST را با 0.99 USD خریداری کنند، سپس 1 UST را با 1 USD LUNA معامله کنند. این معامله 1 UST را می سوزاند و 1 USD LUNA را می ریزد و سود معامله گر آربیتراژ را 0.01 UST می کند.

مجدداً، پروتکل Terra به کاربران این امکان را می دهد که به طور مداوم UST را بسوزانند و LUNA دریافت کنند تا زمانی که UST به 1 دلار برسد. سناریوی دوم : سقوط ارزش! این یک مشکل رایج تر برای استیبل کوین های الگوریتمی است، زیرا اضطراب بازار در اطراف آنها شایع تر از سرخوشی بازار است و در نتیجه موارد بیشتری از تقاضای کمتر و عرضه بالاتر را نشان می دهد.

رابطه الگوریتمی UST با LUNA به این معنی است که دومی باید نوسانات اولی را جذب کند. از آنجایی که LUNA جدید را می توان به طور مداوم در هر زمانی که UST زیر 1 دلار است ضرب کرد، قیمت LUNA می تواند در مواجهه با افزایش عرضه توکن سقوط آزاد کند.

در پاسخ به انتقادات فزاینده مبنی بر اینکه UST در یک وضعیت آسیب‌پذیر و بدون مکانیسم پشتیبان خارجی ، دارایی‌های وثیقه مستقل است. دو کوون، مدیرعامل آزمایشگاه Terraform خالق Terra و مرد اصلی پشت UST، در فوریه 2022 بنیاد Luna Guard را راه‌اندازی کرد. مسئول حفظ ارزش استیبل کوین است. هدف آن خرید 10 میلیارد دلار بیت‌کوین (BTC) برای حمایت از این است.

آینده استیبل کوین های الگوریتمی

در حالی که استیبل کوین‌های الگوریتمی از نظر تئوری عالی به نظر می‌رسند، اما قبل از اینکه به عنوان ذخیره‌های ارزش پایدار مورد اعتماد قرار گیرند، راه‌ زیادی در پیش دارند. در زمان انتشار، هیچ استیبل کوین الگوریتمی نتوانسته است به یک ارزش ثابت دست یابد. به این ترتیب، موارد استفاده از آنها به سمت معامله گران آربیتراژ گرایش دارد.

در عین حال، استیبل کوین‌های الگوریتمی زمینه‌های مناسبی را برای نوآوری فراهم می‌کنند. آن‌ها فرصت‌هایی را نشان می‌دهند که محدودیت‌های موجود در DeFi را افزایش می‌دهند، و گروهی متفکر و سازندگان متفکر و درخشان را جذب می‌کنند که در حال نوآوری و تکرار بر روی مدل‌های موجود هستند.

مانند سایر استیبل کوین ها و رمزارزها ، داستان نظارتی در داستان استیبل کوین الگوریتمی بزرگ جلوه می کند. بیش از هر ارز دیجیتال دیگری، استیبل کوین ها بزرگترین تهدید برای سیستم های پولی مبتنی بر فیات دولتی هستند. استیبل کوین‌های الگوریتمی، با ویژگی‌های مقاوم در برابر سانسور، خطر تئوریکی حتی بزرگ‌تری نسبت به همتایان غیرالگوریتمی خود دارند. و قانونگذاران به طور فزاینده ای به استیبل کوین ها توجه می کنند. در ماه مه 2022، جانت یلن، وزیر خزانه داری ایالات متحده، خواستار تصویب قانون استیبل کوین به صورت فوری شد.



اشتراک گذاری

دیدگاه شما

اولین دیدگاه را شما ارسال نمایید.