تاریخچه زبان سی

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

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

کلاک در کامپیوتر

ساعت در بیشتر رایانه ها ، گذشت زمان با یک ساعت اصلی نشان داده می شود که قطار سیگنالهای متناوب را به طور مداوم ارائه می دهد. اجرای دقیق سخت افزار معمولاً مبتنی بر یک اسیلاتور است که به طور مداوم بین دو مرحله با برچسب 0–1 ، کم زیاد ، تیک تاک و غیره متناوب است. زمان سپری شده بین آغاز "" تیک "و انتهای بعدی '' tock '' چرخه نامیده می شود ، و هر چرخه ساعت برای مدل سازی یک واحد زمان گسسته گرفته می شود. فاز ساعت فعلی (تیک یا تاک) توسط یک سیگنال باینری نشان داده می شود. با استفاده از مدار سخت افزار ، این سیگنال به طور همزمان به هر تراشه متوالی در سراسر سیستم عامل رایانه پخش می شود

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

شیوه کار این الگوریتم به صورت زیر است:

فرض کنید می‌خواهیم مسئله فروشنده دوره گرد را حل کنیم:

مسئله : چند شهر داریم که با فاصله از هم قرار دارند، همه شهرها با هم ارتباط دارند. فروشنده دوره گرد چطور می‌تواند از تمام شهرها فقط یکبار بگذارد به گونه‌ای که فاصله کلی پیموده شده کمینه باشد.

حل مسئله با استفاده الگوریتم aco: فاصله بین شهرها در ماتریسی به صورت زیر نشان می‌دهیم:

141112100
81513010
14901312
16901511
01614814

گام اول:

فرض کنید ۳ تا مورچه داریم. ماتریس میدان دید بین دو شهر را به دست می‌آوریم. این ماتریس با استفاده از معکوس کردن فاصله به دست می‌آید. مثلا ۱/10 یا 1/12

0.07140.09090.830.10
0.12500.06670.076900.1
0.07140.111100.07690.0833
0.062500.11110.06670.0909
00.06250.07140.12500.0714

فرض می‌کنیم مقدار فرومون اولیه که در قطعات بین این شهرها وجود دارد برابر ۱ اس

11111
11111
11111
11111
11111

گام ۲: احتمال رفتن از یک شهر به شهر دیگر را باید محاسبه کنیم:

شهر ۱ به عنوان شهر شروع انتخاب می‌شود. پس ما از شهر آخر شروع می‌کنیم و به شهر ۱ می‌رسیم. چون شهر ۱ شهر شروع پس دوباره نباید انتخاب شود پس قابلیت دید برای شهر ۱ برابر 0 می‌شود:

0.07140.09090.830.10
0.12500.06670.076900
0.07140.111100.07690
0.062500.11110.06670
00.06250.07140.12500

باید احتمال رفتن مورچه ۱ از شهر ۱ به شهرهای دیگر محاسبه کنیم. برای این کار به میدان دید بین دو شهر (اینجا شهر۱ با شهر دیگر) r(r,s)، مجموعه شهرهایی که احتمال دارد توسط مورچه ۱ ملاقات شود (M) و فرومون‌های بین دو شهر نیاز داریم FR(r,s) نیاز داریم. همچنین به a وزن برای کنترل فرومون و b وزن برای کنترل میدان دید نیاز داریم.

احتمال رفتن مورچه ۱ به شهر دیگر به صورت زیر محاسبه می‌شود: برای مثال شهر ۲

P(1,2)=(FR(1,2)^1 * rs(1,2)^2) /( sum FR(1,all cityes)^1 * r(1,all cityes)^2)

در اینجا sum یعنی مجموع یا همان سری و all cityes یعنی تمام شهرهایی که تا کنون ملاقات نشدند

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

فرض کنید در این مرجله شهر ۴ انتخاب شد

حالا مجدد مشخص می‌کنیم مورچه ۱ از شهر ۴ به کدام شهر برود. به همین صورت کل مسیری که مورچه ۱ باید طی کند مشخص می‌شود برای مثال

1-4 - 3 - 5-2 -1 این مسیر برای مورچه ۱ باشد

برای مورچه ۲ و مورچه ۳ نیز مانند مورچه ۱ مسیرها را پیدا می‌کنیم

 

 

 

الگوریتم simulated annealing یا ذوب فلزات

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

نام این الگوریتم از annealing گرفته شده است. انیلینگ  یک عنوان کلی در عملیات حرارتی است که شامل حرارت‌دهی و نگه‌داشتن فلز در یک دمای خاص و سپس سرد کردن فلز با نرخ مناسب می باشد و عموماً برای نرم‌کردن مواد استفاده می‌شود. عموما از انلینگ برای افزایش اندازه کریستال‌ها و کاهش نقص‌هایشان استفاده می‌شود. هر دو ویژگی این مواد وابسته به انرژی آزاد ترمودینامیکی آن‌ها است. هتینگ (گرمایش) و کولینگ (سرمایش) مواد هم روی دما و هم روی انرژی آزاد ترمودینامیکی یا انرژی گیبس تاثیر می‌گذارد. الگوریتم شبیه‌سازی ذوب فلزات می‌تواند برای مسائل بسیار سخت بهینه‌سازی که الگوریتم‌ها دقیقا در آنجا شکست می‌خورند استفاده شود. با این حال اگر چه این الگوریتم به یک راه حل تقریبی برای کمینه سراسری می‌رسد اما راه آن برای بیشتر مسائل عملی می‌تواند کافی باشد.
 

ادامه نوشته

همزمان سازی در شبکه‌های حسگر بی سیم

برای همزمان سازی دو گره حسگر باید به phase-offset و clock-skew توجه کنیم. phase-offset فاصله ساعتی یا فاصله زمانی (difrence time) بین دو حسگر در لحظه‌ای از زمان ( at an instant of time) است.

clock-skew: تفاوت بالفعل و پذیرفته شده در فرکانس نوسان‌ساز کریستالی است. Clock-skew وابسته به شرایط محیطی مانند فشار، دما، میدان مغناطیسی، تشعشع و ... است. مقیاس اندازه‌گیری clock-skew بخش در میلیون (ppm) است. که یک ppm‌ نشان می‌دهد که مقدار خطای clock یا ساعت برابر ۱ میکروثانیه است. نرخ clock-skew حسگر Mica Motes تا ۵۰ ppm است. طیف معمولی clock-skew بین ۴۰ ppm تا 100ppm است. از این رو clock-skew نقش مهمی در طراحی هر پروتکل زمانبندی همزمان انرژی کارا برای شبکه‌هیا حسگر بی‌سیم بازی می‌کند.

پروتکل‌های همزمان‌سازی با محاسبه phase-offset و clock-skew مورد انتظار می‌توانند تاثیر clock-skew را کاهش دهند. با این حال، کلاک‌ها یا ساعت‌ها ممکن است به دلایل خطای تخمین که در همزمان‌سازی به کار برده می‌شود واگرا شوند. از همزمانی فرکانیسی می‌توان برای کاهش واگرایی کلاک‌ها استفاده کرد، اما روشی انرژی کارا برای کاربردهایی که با رویدادها در دورهای طولانی تعامل دارند مناسب نیست. خطای همزمانی می‌تواند با تبادل پیام همزمانی در فاصله همزمانی انجام داد، اما این کار انزي زیادی مصرف می‌کند.

حذف کامل خطاهای ایجاد شده غیر قطعی در عوامل محیطی خارجی مانند فشار، دما، رطوبت، و ... که می‌تواند روی clock-skew تاثیر بگذارد مشکل است. به دلیل عدم دقت و وجود عدم قطعیت در پروتکل همزمانی، برای اینکه پیام‌ها از دست نروند، گره‌ها زودتر از زمان زمانبندی شده بیدار می‌شود. به این زمان guard time می گویند. اگر طول زمان guard time یا زمان نگهبانی بالا باشد موجب مصرف انرژی زیاد گره می‌گردد.

برای حل این مشکل مقالاتی فراوان ارائه شده است که یکی از مقالات که نوشته‌های بالا نیز از آن گرفته شده است مقاله زیر است

Energy efficient multi-beacon guard method for periodic data gathering in time-synchronized WSN
 

switching در شبکه کامپیوتری چیست؟

انواع سوئيچينگ وانواع ارتباط ميان دو ايستگاه

بُرد مدار چاپی چیست؟

بُرد مدار چاپی یا برد الکترونیکی (به انگلیسی: Printed Circuit Board (PCB)) شامل مجموعه‌ای از مدارهای الکتریکی بوده و می‌تواند یک طرفه(یک لایه مس)، دو طرفه(دو لایه مس) یا حتی چند لایه و به رنگ‌های مختلف باشد؛ به‌طوری‌ که قطعات الکترونیکی مانند مقاومت، خازن، آی سی و … بر روی آن مونتاژ شده و جهت استفاده در تجهیزات الکترونیکی بکار می‌رود. ماده خام تشکیل دهنده این بردها از متریال‌های مختلفی مانند فایبر، راجرز، تفلون، فلکسی بل و … ساخته شده و با ضخامت‌های ۰٫۲ تا ۳٫۲ میلی‌متر عرضه می‌گردند. استاندارد جهانی تولید بردهای مدار چاپی بر اساس استاندارد UL وIPC بوده و جهت طراحی این بردها عموماً از نرم‌افزار Protel و Altium Designer استفاده می‌گردد.

 

ترانزیستور چیست؟

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

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

ماسفت: معروف‌ترین ترانزیستور اثر میدان در مدارهای الکترونیک آنالوگ و دیجیتال است.

 

آی سی چیست؟

آی سی سرواژه‌های integrated circuit به معنی مدار یکپارچه شده است. آی سی مجموعه‌ای از مدارهای الکترونیکی گفته می‌شود که بر روی یک سطح صاف کوچک از جنس مواد نیمه‌رسانا (معمولاً از جنس سیلیکن) قرار داده شده‌است. به آی سی تراشه نیز گفته می شود.

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

هر ریز تراشه، وظیفه یا وظایف خاصی را در مدار انجام می‌دهد. عموماً هر ریز تراشه چندین ورودی دارد که با پردازش این ورودی‌ها، مقادیر خروجی را تولید و در بخش خروجی خود قرار می‌دهند. بعضی از ریز تراشه‌ها با سیگنالهای آنالوگ کار می‌کنند (مانند ریز تراشه‌ای باکد ۷۴۱، یک آمپلی فایر آنالوگ است). بعضی‌های دیگر با سیگنال‌های دیجیتال کار می‌کنند - به عنوان ورودی‌های منطقی یا برای دریافت داده دیجیتالی، مانند ریز تراشه‌ای که برای خواندن اطلاعات موجود در یک CD استفاده می‌شود. واحد پردازنده مرکزی رایانه ها(به انگلیسی: Central Processing Unit (CPU)) یکی از مهم‌ترین مدارات ساخته شده به صورت مجتمع است که میلیاردها ترانزیستور را در سطح کوچکی از نیمه هادی جای داده‌است. مثلاً پروسسور IBM z13 Storage Controller که در سال ۲۰۱۵ ساخته شده‌است، حدود ۷٬۱۰۰٬۰۰۰٬۰۰۰ ترانزیستور را در 678mm² سطح نیمه هادی از ویفر جای داده‌است.

 

قطعات الکترونیکی چیست؟

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

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