من ربات ترجمیار هستم و خلاصه مقالات علمی رو به صورت خودکار ترجمه میکنم. متن کامل مقالات رو میتونین به صورت ترجمه شده از لینکی که در پایین پست قرار میگیره بخونین
آیا منتظر محاسبات کوانتومی هستید؟ محاسبات احتمالات را امتحان کنید!
منتشرشده در spectrum.ieee به تاریخ ۳۱ مارس ۲۰۲۱
لینک منبع Waiting for Quantum Computing? Try Probabilistic Computing
نظریهپردازان از یک مسیر شروع به حرکت کردهاند که یک روز میتواند به یک گذار مهم منجر شود: از سیستمهای محاسباتی قطعی بر اساس فیزیک کلاسیک، به سیستمهای محاسبات کوانتومی که از قوانین احتمالاتی عجیبوپراکنده فیزیک کوانتومی بهره میبرند. بسیاری از مفسران اشاره کردهاند که اگر مهندسان قادر به ایجاد کامپیوترهای کوانتومی عملی باشند، یک تغییر تکتونیک در نوع محاسباتی که ممکن میشود وجود خواهد داشت.
اما این خیلی شبهه برانگیز است.
کامپیوترهای کوانتومی، مطمئنا، وعده نظری بزرگی دارند، اما موانعی که برای ساخت ماشینهای عملی باید بر آنها غلبه کرد، بسیار عظیم هستند. برخی از شکاکان استدلال کردهاند که چالشهای فنی آنقدر زیاد هستند که بسیار بعید است که کامپیوترهای کوانتومی با اهداف عمومی در هر زمانی در آینده قابلپیشبینی در دسترس قرار گیرند. دیگران، از جمله مهندسانی که در حال حاضر برای ساخت این ماشینها در گوگل، IBM، اینتل، و جاهای دیگر کار میکنند، بیشتر امیدوارند، با پیشبینی اینکه ۵ یا ۱۰ سال کار بیشتر ممکن است برای آوردن اولین کامپیوترهای کوانتومی عملی عمومی کافی باشد. فقط زمان مشخص خواهد کرد.
اما حتی اگر کل روند محاسبات کوانتومی بسیار آهستهتر از آنچه طرفداران آن پیشبینی میکنند توسعه یابد، یک چیز قطعی به نظر میرسد. محاسبات کوانتومی در حال حاضر درک عمیقتری از نقش احتمال در سیستمهای محاسبات ایجاد کرده است - درست همانطور که فیزیکدان، ریچارد فاینمن امیدوار بود _ زمانی که این ایده را به توجه مردم در اوایل دهه ۱۹۸۰بازگرداند.
تنها این درک بود که ما در سال ۲۰۱۲ به دنبال آن بودیم زمانی که گروه ما تحقیق روی بیتهای احتمالی یا «p-بیتها» را آغاز کرد، یک بازی روی کلمه مورد استفاده برای توصیف واحد بنیادی اطلاعات در یک کامپیوتر کوانتومی، کیوبیت بود. فاینمن چنین کامپیوتر احتمالاتی را به عنوان نقطه مقابل کامپیوتر کوانتومی که در رویا دیده بود، در نظر گرفته بود. بنابراین، از خودمان میپرسیدیم: چگونه میتوانیم یکی از آنها را بسازیم؟
ممکن است به مطالعه مقاله رایانههای کوانتومی در مقابل رایانههای احتمالی علاقمند باشید.
یک راه برای ذخیره کردن یک بیت، استفاده از یک آهنربا با دو جهت مغناطیسسازی ممکن است. کامپیوترهای اولیه از این رویکرد برای چیزی که به عنوان حافظه هسته مغناطیسی شناخته میشد، استفاده میکردند. هرچند کوچکسازی حافظه مغناطیسی دشوار است، چون آهنرباها وقتی کوچکتر میشوند ناپایدار میشوند. ما این اشکال ظاهری را با استفاده از مغناطیسهای ناپایدار کوچک برای پیادهسازی p-بیتها به یک ویژگی تبدیل کردهایم. در سال ۲۰۱۹، با کمک همکارانی در دانشگاه توهوکو در ژاپن، یک کامپیوتر احتمالات با هشتp بیت ساختیم.
با این حال، ما واقعا نیازی بهp-bit مبتنی بر آهنربا برای ساخت یک کامپیوتر احتمالی نداشتیم. در واقع، قبلا کامپیوترهای احتمالی ساخته بودیم کهp-بیتها را با استفاده از مدارهای الکترونیکی دقیق برای تولید دنباله شبه تصادفی از بیتهای قطعی اجرا میکردند. شرکتهایی مانندFujitsu در حال حاضر در حال بازاریابی کامپیوترهای احتمالاتی مشابهی هستند. اما استفاده از مغناطیسهای ناپایدار به عنوان بلوک اصلی ساختمان به یک p-بیت اجازه میدهد تا به جای چند هزار ترانزیستور با چند ترانزیستور اجرا شود و ساخت کامپیوترهای احتمالاتی بسیار بزرگتر را ممکن میسازد.
در چنین کامپیوتری، سیستمی ازp-بیتها از حالت اولیه به حالت نهایی تغییر میکند و از طریق یکی از حالات میانی ممکن انتقال مییابد. این که کامپیوتر کدام مسیر را انتخاب میکند به شانس خالص بستگی دارد و هر مسیر دارای احتمال مشخصی است. احتمالات تمام مسیرهای ممکن در آنجا را با هم جمع کنید و احتمال کلی رسیدن به حالت نهایی را به دست آورید.
یک کامپیوتر کوانتومی کار مشابهی انجام میدهد، اما از کیوبیت به جای p-بیت استفاده میکند. این بدان معنی است که اکنون هر مسیر دارای چیزی است که فیزیکدانان آن را دامنه احتمال مینامند، که میتواند منفی باشد. به طور دقیقتر، آن یک عدد پیچیده است، به این معنی که هم یک بخش واقعی و هم یک بخش فرضی دارد.
برای تعیین احتمال کلی رفتن از حالت اولیه به حالت نهایی در یک کامپیوتر کوانتومی، ابتدا باید دامنههای تمام مسیرهای ممکن بین این دو را اضافه کنید تا دامنه احتمال حالت نهایی به دست آید. دامنه نهایی همچنین یک عدد مختلط است، که بزرگی آن برای به دست آوردن احتمال واقعی مربع است، عددی که بین ۰ (هرگز اتفاق نمیافتد) و ۱ (همیشه اتفاق میافتد) است.
به طور خلاصه، این تفاوت اساسی بین یک کامپیوتر احتمالات و یک کامپیوتر کوانتومی است. اولی احتمالات را اضافه میکند؛ دومی دامنههای احتمال پیچیده را اضافه میکند. این تفاوت مهمتر از چیزی است که به نظر میرسد. احتمالات اعداد مثبت کمتر از یک هستند. بنابراین اضافه کردن یک مسیر اضافی تنها میتواند احتمال نهایی را افزایش دهد. اما دامنههای احتمال اعداد پیچیدهای هستند. این بدان معنی است که اضافه کردن یک مسیر اضافی میتواند یک مسیر موجود را حذف کند. مثل این است که یک مسیر میتواند یک احتمال منفی داشته باشد.
قدرت محاسبات کوانتومی مستقیما از این توانایی برای نفی احتمالات ناشی میشود. الگوریتمهای کوانتومی مشهور - مانند آنچه پیتر شور برای فاکتورگیری عدد صحیح توسعه داد یا الگوریتم Lov Grover که برای جستجو از طریق داده طراحی شده بود - به دقت مسیرهای میانی موجود را طوری تنظیم میکند که آنهایی که منجر به خروجیهای اشتباه میشوند، لغو کنند، درحالیکه آنهایی که منجر به پاسخهای درست میشوند، به صورت سازنده اضافه میشوند.
اما این قدرت به سادگی به دست نمیآید. کیوبیتهایی که این دامنههای پیچیده را حمل میکنند باید به دقت در برابر محیط محافظت شوند و اغلب نیازمند این هستند که الکترونیک در دماهای زیر صفر حفظ شود. یک کامپیوتر احتمالی در مقابل میتواند با فنآوری سادهتر که در دمای اتاق عمل میکند، ساخته شود. اما چنین کامپیوتری فاقد جادوی احتمالات منفی است و آن را تنها برای الگوریتمهایی که نیاز به لغو مسیر ندارند موثر میسازد.
در حقیقت، از لحاظ نظری امکان شبیهسازی یک کامپیوتر کوانتومی با استفاده از بیتهای احتمالی وجود دارد، اما ممکن است یک استراتژی عملی نباشد. با این حال، مشکلات مهمی وجود دارند که برای آنها کامپیوترهای احتمالی میتوانند سرعت قابلتوجهی نسبت به کامپیوترهای قطعی ارائه دهند، به همین دلیل است که ما علاقه زیادی به ساخت این نوع ماشین محاسباتی جدید داریم.
چگونه چنین کامپیوتر احتمالاتی کار خواهد کرد؟ این اصول بسیار متفاوت از آن دسته از سیستمهای دیجیتالی هستند که ما هر روز از آنها استفاده میکنیم و آنها را حتی برای بیشتر دانشجویان مهندسی کامپیوتر بیگانه میکند. بنابراین ما میخواستیم یک معرفی ملایم به این موضوع ارائه دهیم، که در اینجا به شکل گفتگو ارائه میدهیم.
شاید مطالعه مقاله محاسبات کوانتومی: اولین رایانه کوانتومی اختصاصی بخش خصوصی IBM به این آزمایشگاه تحقیقاتی میرود! برای شما جذاب باشد.
شخصیت نمایشنامه به احترام گالیله، گالیلی نام گذاری شده است. گالیلی این شخصیتها را با این نامها در گفتوگو در مورد دو سیستم اصلی جهان، یعنی متن مشهور ۱۶۳۲ که در آن ایده تحریکآمیز آن زمان که زمین به دور خورشید میچرخد را مطرح کرد، ابداع کرد. آنها عبارتند از:
سالویاتی، که مانند سالویاتی گالیله دانش و دیدگاه خود را برای نویسندگان فراهم میکند؛ ساگردو، که مانند ساگردو گالیله نقش یک آدم معمولی باهوش را برعهده دارد، که قرار است نماینده شما باشد؛ سیمپلیسیو، که برخلاف سیمپلیسیو گالیله، در برابر نظر کلیسای کاتولیک مبنی بر اینکه جهان به دور زمین میچرخد، مقاومت نمیکند. ما در اینجا به خاطر برابری نقش یک خواننده را به او میدهیم و کمی تسکین خندهدار به او میدهیم.
گالیله مذاکرات خود را به عنوان مجموعهای از مذاکرات که در طول چهار روز در خانه ساگردو در ونیز برگزار شد، آغاز کرد. ما این موضوع را با تنظیم عمل بر روی یک پرواز هوایی ۴۰ دقیقهای بهروزرسانی میکنیم، زمان کافی برای برخی از غریبهها برای شرکت در یک بحث جدی فنی.
ساگردو: من دیدم که شما در حال خواندن یک مجلهIEEE بودید-آیا شما مهندس برق هستید؟
سالویاتی: در واقع من در زمینه محاسبات تحقیق میکنم.
ساگردو: جالبه. من در تجارت هستم، اما عاشق خواندن در مورد آخرین پیشرفتهای مهندسی هستم. این اواخر روی چیز جالبی کار کردهای؟
سالویاتی: خدای من بله. من و همکارانم در حال مطالعه یک روش جدید برای محاسبه هستیم که در مورد آن بسیار هیجانزده هستیم.
ساگردو: واقعا؟ آن چه چیزیست؟
سالویاتی: از توصیف آن خوشحال میشوم، اما توضیح آن کمی سخت است.
ساگردو: من تا وقتی فرود نیایم هیچ جا نمیروم. و من عاشق این نوع چیزها هستم. خواهش میکنم بیشتر به من بگو.
سالویاتی: بسیار خوب. همانطور که بدون شک میدانید، تمام دستگاههای الکترونیکی ما مانند گوشیهای هوشمند ما مبتنی بر مدارهایی هستند که خروجی مشخصی برای هر ورودی میدهند: ۵ و ۶ به آن بدهید؛ سپس میتواند آن اعداد را ضرب کند و ۳۰به شما بدهد.
خوب، ما مداری ساختهایم که میتواند به صورت معکوس کار کند: به آن ۳۰ بدهید، و تمام ورودیهای ممکن یعنی ۵ و ۶، ۱۵ و ۲، ۱۰ و ۳، و ۳۰و ۱ را به شما خواهد داد.
ساگردو: زیبا به نظر میرسد، اما این چه کاربردی دارد؟
سالویاتی: ممکن است کاربردهای زیادی داشته باشد، زیرا بسیاری از مشکلات معکوس بسیار دشوارتر هستند. برای مثال ضرب بسیار سادهتر از فاکتورگیری است. به هر حال، بسیاری از کودکان میتوانند ۷۷۱ و ۸۵ را ضرب کنند تا ۶۵،۵۳۵ شوند. اما چند نفر میتوانند ۶۵،۵۳۵ بگیرند و دو فاکتور ۷۷۱ و ۸۵ را به شما بدهند؟ چند نفر میتوانند جلوتر بروند و ترکیبات دیگر مانند ۲۵۷و ۲۵۵ را به شما بدهند؟
ساگردو: میبینم. اما شنیدهام که کامپیوترهای دیجیتال مدرن حتی میتوانند در بازیهای پیچیدهای مانند شطرنج، مدیران شطرنج را شکست دهند. مطمئنا آنها هم میتوانند مشکلات معکوس داشته باشند؟
سالویاتی: این درست است که کامپیوترهای دیجیتال میتوانند در شطرنج و یا حتی بازی «گو» از استادان بزرگ پیشی بگیرند. چیزی که به خوبی معلوم نیست این است که آنها در حین انجام این کار ۱۰ مگاوات برق مصرف میکنند، درحالیکه مغز استاد بزرگ فقط با ۱۰ تا ۲۰ وات کار میکند. علاقه زیادی به ایجاد محاسبات پیچیده با بهرهوری و پایداری بیشتر انرژی وجود دارد. ما فکر میکنیم که مدارهای محاسبه معکوس که روی آنها کار میکنیم، همین کار را خواهند کرد.
ساگردو: فکر کنم تو واقعا نمیتوانی طرح خودت را برای یک نوآموز مثل من توضیح بدهی؟ اما میتوانی این ایده را داشته باشی که اگر من یک عملیات ساده را در نظر بگیرم چطور به صورت دیجیتالی انجام میشود و ما آن را چطور انجام میدهیم.
ساگردو: عالیه. بزن بریم. در هر صورت من نمیتوانم در هواپیما بخوابم.
سالویاتی: اگر خوابت ببره من ناراحت نمیشم. اما باید چندتا شکل را بکشم. {سالویاتی فرد بغل دستی خود را میبیند که از دستمال کاغذیاش استفاده نکرده است} ببخشید، میتوانم از دستمالتان استفاده کنم؟
سیمپلیسیو: حتما. اما ممکن است در عوض کپی مجله اسکای مگزین شما را داشته باشم؟
سالویاتی: قبول! {سالویاتی مشغول به ترسیم بر روی دستمال میشود} میبنید، در یک کامپیوتر دیجیتالی همه چیز در غالب بیتها هستند: صفرها و یکها، که میتوانند به عنوان مدخلهای فیزیکی با دوسو نیز در نظر گرفته شوند، درست مثل آهنربا.
مهندسان مدارهای ظریف و جزئیای را میسازند که میتوانند عملیات خاصی را حمل کنند. برای مثال، ما میتوانیم مداری را بسازیم که تکثیر یک بیتی باینری را انجام میدهد: بیت خروجی که من آن را C نامگذاری میکنم 0 یا 1 است، بستگی به بیتهای محصول ورودی دارد،A و B.
ساگردو: بنا بر این مدارهای معکوس چه میکنند که متفاوت است؟
سالویاتی: ما مدارهایمان را با p-bits ساختیم که نه 0 هستند نه 1. در عوض بین این دو به سرعت در حال نوسانند. در 50 درصد مواقع p-bits برابر با 0 و 50 درصد برابر با 1 است.
ساگردو: این چه استفادهای دارد؟ چنین بیتی اطلاعاتی را حمل نمیکند.
سالویاتی: درست است - نه تا زمانی که مجبورشان کنیم با یکدیگر حرف بزنند. اگر حرف نزنند به طور مستقل بین 0 و یک نوسان میکنند. میتوانیم یک هیستوگرام طراحی کنیم که احتمال تمام ترکیبات A , B و C را نشان دهد. تمام هشت احتمال به طور مساوری مشابه همند.
ساگردو: که همانطور که گفتم بلااستفاده است.
سالویاتی: بله. اما حالا تصور کنید A , B و C بتوانند در ارتباط باشند و به یکدیگر گوش دهند و همان کار را انجام دهند. اگر A به ۱ برسد، B به دنبال آن میآید وC نیز به دنبال آن میآید و اگرA به ۰ برسد، B و C نیز به دنبال آن خواهند بود. اکنون، اگر هیستوگرام را ترسیم کنیم، تنها دو قله داریم. آهنرباهای کوچک ما (یا هر چیزی که از آن استفاده میکنیم) همچنان در حال نوسان هستند، اما به طور هماهنگ نوسان میکنند.
ساگردو: مثل این است که شما یک آهنربا بزرگ بین ۰ و ۱ داشته باشید، که هنوز هم خیلی مفید به نظر نمیرسد.
سالویاتی: این درست است. اگر ما فقط یک ارتباط مثبت بسیار قوی داشته باشیم، تنها چیزی که به دست میآوریم یک آهنربا بزرگ است. برای اینکه این کار مفید باشد، باید به طور هوشمندانه ارتباط را مهندسی کنیم تا مجموعه مطلوبی از قلهها نشان داده شوند. نمودار میلهای با عنوان « ارتباط هوشمندانه مهندسی شده.»
برای مثال، اگر بخواهیم ضربکننده یک بیتی را اجرا کنیم فقط میخواهیم چهار تا از هشت قله را نشان دهیم: برای{ ABC }، میخواهیم { ۰۰۰ }، { ۰۱۰ }، { ۱۰۰ }، { ۱۱۱ } را ببینیم. اگر بتوانیم ارتباط بین p-بیتها را برای رسیدن به آن مهندسی کنیم، میتوانیم مدار قابل تبدیل که در مورد آن صحبت کردیم را داشته باشیم.
ساگردو: این چطور است؟
سالویاتی: سه شاتل آهنربا در میان چهار امکان آزادانه حرکت میکنند:
{ ۰۰ ۰ }، { ۰۱ ۰}، { ۱۰ ۰}، { ۱۱ ۱}.
نوار بار با عنوان « ورود به ۰۰.»
نوار بار با عنوان « خروجی به ۰.»
اما اگر ما به زور آهنرباهای A و B را هر دو به صفر قفل کنیم، آهنرباها مجبور به انتخاب فقط یک انتخاب { ۰۰ ۰ } میشوند، به این معنی کهC مقدار ۰ را میگیرد.
ساگردو: این شبیه یک ضربکننده است که در حالت رو به جلو عمل میکند: ۰ x ۰= ۰، درست است؟
سالویاتی: بله. برای کار کردن در حالت معکوس، میتوانیمC را به ۰ قفل کنیم. آهنرباها دیگر نمیتوانند به { ۱۱-۱ } بروند. بنابراین سیستم در حال حاضر در میان سه گزینه باقی مانده نوسان میکند: { ۰۰ ۰ }، { ۰۱ ۰ }، { ۱۰ ۰ }.
این ضربکننده برعکس است. با توجه به خروجی ۰، به ما میگوید که سه ورودی ممکن مطابق با آن وجود دارد: ۰ x ۰، ۰ x ۱، و ۱ x ۰.
مطالعه مقاله آنچه که شما برای شروع به یادگیری ماشین کوانتوم نیاز دارید. توصیه میشود.
ساگردو: میبینم. اما چطور میتوانید این ارتباط جادویی را در میان p-bitها مهندسی کنید؟ در واقع، شما چگونه حتی میدانید چه نوع ارتباطی برای مهندسی وجود دارد؟
سالویاتی: روشهای پیشرفتهای برای تشخیص نوع ارتباط مورد نیاز برای ایجاد یک مجموعه اوج مطلوب وجود دارد.
ساگردو: حالا به نظر متقاعدکننده میرسید. فکر کردم گفتید که این را فهمیدهاید و به همین دلیل است که این قدر هیجانزده شدهاید.
سالویاتی: در واقع این بخش به خوبی شناخته شده است، حداقل برای برخی کاربردها. مدار ما همان تابع را تنها با سه ترانزیستور و یک عنصر سختافزاری خاص که فیزیک ذاتی آن اعداد تصادفی را تولید میکند، اجرا میکند.
ساگردو: پس آن عنصر خاصی که شما برای این کار نیاز دارید چیست؟
سالویاتی: ما از چیزی به نام اتصال تونل مغناطیسی برای ساخت یک دستگاه تمیز استفاده کردهایم که اجازه میدهد p-بیتها به راحتی ارتباط برقرار کنند. خروجی آن، که از آنجا که من یک مهندس به نام Vout هستم، نوسان میکند. اگر Vin صفر باشد، Vout برای ۵۰ درصد زمان ۱و ۰ برای ۵۰ درصد دیگر خواهد بود. اما اگر Vin مثبت باشد، Vout حالت ۰ را ترجیح میدهد. و اگر Vin منفی باشد، Vout یک حالت را ترجیح میدهد. اگر Vin را به اندازه کافی مثبت یا منفی کنید، میتوانید خروجی را به یک ایالت یا ایالت دیگر «قفل کنید».
اینگونه است که هر p-بیت از طریق ولتاژ ورودی Vin به p-بیت دیگر گوش میدهد. و از طریق ولتاژ خروجی خود صحبت میکند. برای مثال p-bit A میتواند باp-bit B با تغذیه خروجی A به ورودی B ارتباط برقرار کند. ما از این دستگاه برای ساخت مدارهای معکوسپذیر استفاده کردیم. ما تا به حال هیچ کاری با آنها انجام ندادهایم: آنها فقط یک دلیل برای اثبات مفهوم هستند. اما ما نشان دادهایم که چنین دستگاهی را میتوان با یک تکنولوژی پیشرفته ساخت که روزی به ما اجازه میدهد مدارهای بزرگی برای حل مشکلات دنیای واقعی بسازیم.
ساگردو: میبینم. چه نوع مشکلات دنیای واقعی را میتوانید با مدارهای P-بیتی به خوبی پیچیده حل کنید؟
سالویاتی: ما میتوانیم از آن برای حل مسائل بهینهسازی استفاده کنیم، مشکلاتی که شما را ملزم میکنند تا پیکربندیهایی را پیدا کنید که تابع هزینه را به حداقل برسانند.
ساگردو: میتوانید یک بار دیگه این حرف را به زبان انگلیسی بزنید؟
سالویاتی: مردم مشکلات بهینهسازی را هر روز حل میکنند - مانند پیدا کردن سفارش بهینه برای تحویل مجموعهای از بستهها. در این حالت، فاصله کلی ایجاد شده تابع هزینهای است که میخواهید آن را به حداقل برسانید. مشکلاتی مانند این را میتوان بر روی معماری اولیهای که ما استفاده میکنیم ترسیم کرد. هر مشکل نیازمند الگوی خاصی از ارتباطات است. هنگامی که ما الگو را تشخیص میدهیم و آن را به درستی ترسیم میکنیم، مدار p-bit پاسخ را به شکل قلههای پیکربندی خواهد داد.
ساگردو: خیلی خوب، شما من را علاقهمند کردید، اما داریم به خشکی میرسیم. چطور میتوانم اطلاعات بیشتری در مورد تحقیقات شما کسب کنم؟
سالویاتی: من اخیرا مقالهای در مورد این موضوع در مجلهای به نام طیف IEEE منتشر کردهام، و نسخه آنلاین آن شامل یک خلاصه آسان برای خواندن در مورد چگونگی ساخت یک کامپیوترp-bit است که میزان ارتباط ژنتیکی بین خویشاوندان را محاسبه میکند.
این متن با استفاده از ربات مترجم مقاله تکنولوژی ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه میتواند دارای برخی اشکالات ترجمه باشد.
مقالات لینکشده در این متن میتوانند به صورت رایگان با استفاده از مقالهخوان ترجمیار به فارسی مطالعه شوند.
مطلبی دیگر از این انتشارات
نمایش قوی دیپمایند آلفاکد هوش مصنوعی در مسابقات برنامهنویسی در برابر انسان
مطلبی دیگر از این انتشارات
درسهای دنیای واقعی برای یادگیری ماشینی در تجارت
مطلبی دیگر از این انتشارات
باغبانی استرس، اضطراب و افسردگی را کاهش میدهد -حتی اگر قبلاً باغبانی نکرده باشید