دانلود مقاله-تحقیق-پروژه-کارآموزی

مرجع کامل خرید و دانلود گزارش کار آموزی ، گزارشکار آزمایشگاه ، مقاله ، پروژه و پایان نامه های کلیه رشته های دانشگاهی

دانلود مقاله-تحقیق-پروژه-کارآموزی

مرجع کامل خرید و دانلود گزارش کار آموزی ، گزارشکار آزمایشگاه ، مقاله ، پروژه و پایان نامه های کلیه رشته های دانشگاهی

آموزش پیاده سازی گرافیکی هشت وزیر با C#

این مقاله در راستای نوشتار کتابچه ای به نام پیاده سازی بازی های تخته ای نوشته شده است و در صورت آشنایی با این برنامه،شما می توانید با انواع بازی های تخته ای مانند reverse chess dooz tictactoe checkers آشنا شوید
دسته بندی برنامه نویسی
بازدید ها 34
فرمت فایل doc
حجم فایل 144 کیلو بایت
تعداد صفحات فایل 18
آموزش پیاده سازی گرافیکی هشت وزیر با C#

فروشنده فایل

کد کاربری 1024
کاربر

آموزش پیاده سازی گرافیکی هشت وزیر با C#


مقدمه

معرفی نویسنده اثر

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

درباره این مقاله

این مقاله در راستای نوشتار کتابچه ای به نام 'پیاده سازی بازی های تخته ای' نوشته شده است و در صورت آشنایی با این برنامه،شما می توانید با انواع بازی های تخته ای مانند reverse, chess, dooz, tic-tac-toe, checkers آشنا شوید،هم اینک بازی reverse و dooz کامل شده است و باقی بازی ها هم در آینده نزدیک نوشته خواهد شد و بطور رایگان در اختیار دانش جویان نرم افزار قرار خواهد گرفت.

مخاطبان این مقاله

این مقاله برای آن دسته از افرادی می باشد که پیشین با C# کار کرده اند و یا قصد آشنایی و برنامه نویسی با این قالب برنامه نویسی را دارند.در این مقاله کوشش شده است که هر بخش مستقل از بخش های دیگر باشد و دوستانی که با C# و یا پیاده سازی گرافیکی تخته بازی آشنایی دارند می توانند با سرعت از این بخش ها عبور کنند و به سراغ الگوریتم بازی بروند.ولی توصیه میکنم که سلسله مراتب بخش ها را هر چند گذرا مرور کنید.

هدف از نوشتن این مقاله

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

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


فصل اول : طراحی

گام نخست : پیاده سازی مهره و کاشی بازی


مهره نشان دهنده وزیر




را ایجاد کنید.eight_queen ای به نام Windows Application برنامه Visual C# را اجرا کنید و از قسمت Visual Studio

SquareControl.cs به نام User Control یک Add new item بر روی پروژه یتان کلیک راست کنید و از قسمت

کاشی صفحه شطرنج ما را می سازدUser control را ایجاد کنید.در واقع این

این کنترل را به 32, 32 تغییر می دهیم.حالا کاشی تخته یمان آماده شد!size

تخته یمان که به شکل دایره است می رسد(Discs)نوبت به طراحی مهره های

این مهره ها را می توان به 2 صورت پیاده سازی کرد:

با قرار دادن عکس وزیر درون کاشی های شطرنج .1

با کشیدن دایره درون کاشی های شطرنج. .2

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


e.Graphics.DrawEllipse(SquareControl.pen, left, top, width, height);

را حذف کردیم و آنرا به گام های بعدی محول کرده ایم.shadow و animationدر این گام ما قسمت



گام دوم : تعریف پارامترها و نام دامنه برای User Control ها



نام دامنه

پارامتر


اضافه می کنیم:User controlدر ابتدای کار نام دامنه زیر را

using System.Drawing.Drawing2D;

سپس رنگ کاشی خود را تعیین می کنیم:

public static Color NormalBackColor= Color.Green;

باید متغیری برای ذخیره کردن ردیف و ستون مهره ها ایجاد کنیم.به این دلیل که کدمان حرفه ای تر بشود ، آنها را تعریف کرده ایم:propertyمستقیمان به صورت

// These reflect the position of the square on the board.

Public int col{get;set;}

public int row{get;set;}

در انتها هم رنگ و قلم موی خود را انتخاب می کنیم:

// Drawing tools.

Private static Pen pen = new Pen(Color.Black);

private static SolidBrush solidBrush = new SolidBrush(Color.Black);


گام سوم : تابع تنظیم ردیف و ستون


فهرست

مقدمه. 3

معرفی نویسنده اثر. 3

درباره این مقاله. 3

مخاطبان این مقاله. 3

هدف از نوشتن این مقاله. 3

فصل اول : طراحی. 4

گام نخست : پیاده سازی مهره و کاشی بازی.. 4

گام دوم : تعریف پارامترها و نام دامنه برای User Control ها 5

گام سوم : تابع تنظیم ردیف و ستون. 6

گام چهارم : ایجاد و نابود سازی User Control ها 7

گام پنجم : چیدن مهره ها در صفحه شطرنج. 8

گام ششم : کشیدن حاشیه بین کاشی ها 10

گام هفتم : نگاه کلی بر کلاس SquareControl 11

فصل دوم : پیاده سازی محیط بازی.. 12

گام هشتم : تعریف متغییر های تخته بازی.. 12

گام نهم : پیاده سازی تابع سازنده تخته بازی.. 13

گام دهم : ذخیره 92 حالت مختلف.. 14

فصل سوم : الگوریتم هشت وزیر به روش غیر بازگشتی. 15

گام یازدهم : معرفی الگوریتم 15

گام دوازدهم : روش بررسی صحّت قرار گیری مهره 16

فصل چهارم : الگوریتم هشت وزیر به روش بازگشتی. 17

گام سیزدهم : معرفی الگوریتم 17

گام چهاردهم : روش بررسی صحّت قرارگیری مهره 17


طراحی و پیاده سازی روبات پرنده عمود پرواز

در این پروژه ابتدا با معرفی و توضیح حوزه روبات های پرنده با ساختار عمود پرواز چهار ملخه آشنا می شویم سپس با استفاده از مدل دینامیکی و روابط حاکم ، کنترلر بهینه ایی بر مبنای PID برای آن طراحی می کنیم پس از شبیه سازی ، آن را پیاده سازی کرده و نتایج را بررسی خواهیم کرد
دسته بندی کامپیوتر و IT
بازدید ها 30
فرمت فایل doc
حجم فایل 5780 کیلو بایت
تعداد صفحات فایل 75
طراحی و پیاده سازی روبات پرنده عمود پرواز

فروشنده فایل

کد کاربری 15
کاربر

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

کلید واژه:روبات ، پرنده ، Quad rotor ، Quad copter ، PID .

فهرست مطالب

فهرست شکل‌‌ها‌ج

فصل 1 - مقدمه. 3

1-1 پیشگفتار3

1-2معرفی و مقایسه روبات های پرنده بدون سرنشین.. 4

1-3- معرفی Quadrotor. 6

1-4 مدل ریاضی.. 8

فصل 2-سخت افزار12

2-1 اجزای اصلی.. 12

2-1-1- میکرو کنترلر اصلی.. 13

2-1-2- نگاهی دقیق تر به میکرو کنترلر و توانمندی های آن.. 15

2-1-3- معرفی ESC.. 22

2-1-4- معرفی موتورهای BLDC.. 23

2-1-5- معرفی سنسور IMU.. 25

2-1-6- معرفی سنسور آلتراسونیک.... 29

2-1-7- برد اتصالIOIO... 30

2-1-8- مبدل USB به TTL. 32

فصل 3-شبیه سازی.. 34

3-1-معرفی موتور Unity3d. 34

3-2-معرفی کنترلر PID.. 35

3-2-1- بررسی تاثیر پارامترها بر سیستم.. 36

3-2-2- طراحی کنترلر و تنظیم آن ( روش زایگلر – نیکلز )38

3-2-3- مقایسه PID استاندارد و دیجیتالی ( گسسته )40

3-3 مقایسه انواع فیلترها42

3-3-1- فیلتر کالمن.. 42

3-3-2- فیلتر DCM.... 43

3-4نتایج شبیه سازی –PID استاندارد. 47

فصل 4-بخش عملی.. 49

4-1 ساخت بدنه. 49

فصل 5-نرم افزار55

ضمیمه ها 65

نتیجه گیری 67

منابع و مراجع 68

فهرست شکل‌‌ها

عنوان صفحه

شکل 1 : انواع روبات پرنده5

شکل 2 : مقایسه روبات های پرنده5

شکل 3 : نحوه چرخش ملخ ها6

شکل 4 : نحوه حرکت روبات... 7

شکل 5 : مدل دینامیکی روبات... 8

شکل 6 : دیاگرام داخلی روبات... 12

شکل 7 : نمای داخلی میکرو xmega128. 15

شکل 8 : دیاگرام ارتباط داخلی میکروکنترلر. 18

شکل 9 : نحوه تولید سیگنال esc. 22

شکل 10 : نمای داخلی موتور BLDC. 24

شکل 11 : نمای داخلی سنسور شتاب سنج.. 27

شکل 12 : شماتیک داخلی مدار سنسور imu. 28

شکل 13 : سنسور ultrasonic. 29

شکل 14 : ماژول واسط گوشی تلفن همراه و مدار اصلی.. 30

شکل 15 : شماتیک داخلی مدار واسط... 31

شکل 16 : مبدل usb به TTL. 32

شکل 17 : شماتیک داخلی مبدل usb بهTTL. 32

شکل 18 : مدل شبیه سازی شده روبات... 34

شکل 19 : کنترل فرآیند با فیدبک حلقه بسته. 35

شکل 20 : تاثیر افزایش بهره p. 36

شکل 21 : تاثیر افزایش بهره I36

شکل 22 : تاثیر افزایش بهره D.. 37

شکل 23 : دیاگرام سیستم حلقه بسته با اغتشاش.... 38

شکل 24 : پاسخ پله سیستم حلقه بسته. 38

شکل 25 : جدول زایگلر - نیکلز. 39

شکل 26 : نحوه از بین رفتن اثر نویز با فیلتر کالمن.. 43

شکل 27 : نتایج بدست آمده از شبیه سازی.. 47

شکل 28 : مراحل ابتدایی ساخت بدنه. 49

شکل 29 : بدنه ساخته شده در مرحله اول.. 50

شکل 30 : قفس تست ساخته شده51

شکل 31 : روبات آماده شده با اتصال چهار ملخ.. 52

شکل 32 : روبات ساخته شده در مرحله نهایی.. 53

شکل 33 : شماتیک داخلی سخت افزار روبات... 66


تجزیه و تحلیل و پیاده سازی سیستم مکانیزه کتابخانه

این پایان نامه شامل یک سیستم مکانیزه شده کتابخانه می باشد که درمحیط c درست شده است
دسته بندی کامپیوتر و IT
بازدید ها 74
فرمت فایل doc
حجم فایل 1992 کیلو بایت
تعداد صفحات فایل 91
تجزیه و تحلیل و پیاده سازی سیستم مکانیزه کتابخانه

فروشنده فایل

کد کاربری 15
کاربر

این پایان نامه شامل یک سیستم مکانیزه شده کتابخانه می باشد که درمحیط c# درست شده است

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

ازویژگی های دیگر این سیستم این است که تمام اطلاعات راروی کلیدها وفرم ها به فارسی نوشته شده واستفاده ازسیستم کارچندان مشکلی نیست .

این سیستم دارای امکانات زیراست :

امانت کتاب – ثبت کتاب – ثبت عضو جدید – تمدید کتاب – جستجو ( مو ضوعی – نویسند ه – عنو ان ) و راهنما برای کاربران می باشد.

فهرست مطالب

چکیده :1

مقدمه :2

فصل اول. 6

طراحی و تحلیل. 6

موجودیت امانت گیرنده9

موجودیت امانت امانت گیرنده10

غرض دادن کتاب.. 19

رزو کردن. 21

Add A Book. 25

فصل چهارم. 70

طراحی بانک اطلاعاتی. 70

ایجاد یک پایگاه داده71

نمودار 3-3Relationship. 74

راهنمای کاربری سیستم. 80

فرم ورود80

نتیجه گیری :88

منابع


تشریح پیاده سازی نرم افزار تبدیل فرمت dos به فرمت windows

گاهی با توجه به پیشرفت علم و تکنولوژی در زمینه کامپیوتر و به بازار آمدن انواع نرم‌افزارهای جدید که سازگاری شدیدی با محیط ویندوز و تقریبا به هیچ کدام از آنها محیط و برنامه‌های تحت سیستم عامل را پشتیبانی نمی‌کنند
دسته بندی برنامه نویسی
بازدید ها 28
فرمت فایل doc
حجم فایل 33 کیلو بایت
تعداد صفحات فایل 38
تشریح پیاده سازی نرم افزار تبدیل فرمت dos به فرمت windows

فروشنده فایل

کد کاربری 1024
کاربر

تشریح پیاده سازی نرم افزار تبدیل فرمت dos به فرمت windows

پیش گفتار
گاهی با توجه به پیشرفت علم و تکنولوژی در زمینه کامپیوتر و به بازار آمدن انواع نرم‌افزارهای جدید که سازگاری شدیدی با محیط ویندوز و تقریبا به هیچ کدام از آنها محیط و برنامه‌های تحت سیستم عامل را پشتیبانی نمی‌کنند ضرورت پیدا می‌کند که برای کنار گذاشتن برنامه‌های تحت Dos خود بتوانیم آنها را به طریقی تبدیل به انواع مختلف قابل شناسایی تحت ویندوز تبدیل کنیم.
یکی از موارد کاربرد آن در مواقعی است که به بانکهای مختلف موجود در محیط بانک اطلاعاتی تحت Dos از جمله foxpro را بتوان به یک بانک تحت سیستم عامل win تبدیل کرد. خصوصا این که در کشورمان داده‌های این بانکها تقریبا تماما فارسی بوده وکار را برای ما مشکل می‌کند.
به همین جهت تصمیم گرفته شد که با تکیه به تجربه چندین ساله در زمینه برنامه‌نویسی‌های تحت Dos و Windows نرم‌افزاری فراهم آورده شود که نیازهای این گونه افراد را برآورده سازد.
در این جزوه سعی شده است که ضمن نشان دادن و توضیح کامل این نرم‌افزار تمام مطالب به صورت واضح و شفاف به همراه لیست و توضیح تمام دستورات به کار گرفته شده آورده شود تا استفاده کنندگان بتوانند درک بهتری از رابطه‌ی این دو سیستم عامل با هم داشته باشند. در عین حال به جنبه‌هایی از تئوری و مقدمات برنامه‌نویسی نیز توجه شده است.
در این جا لازم می‌دانم که از همکاری همه کسانی که تولید و آماده‌سازی این پروژه با کمک آنان میسر گشت تشکر کنم. در این میان از آقای نیک‌فرجام و آقای اخلاقی که در تمام مراحل انجام این پروژه نهایت همکاری را داشته‌اند سپسگذارم.


نحوه پیاده‌سازی
به طور کلی این پروژه از دو نرم‌افزار جداگانه تشکیل شده که شامل یک برنامه تولید شده به زبان foxpro است که به طور خلاصه می‌توان گفت حمل تبدیل تمام حروف و اعداد به کار گرفته شده در بانک‌ها را شامل حروف و اعداد فارسی و انگلیسی بهکدهای اسکی آنان که قابل فهم برای محیط ویندوز باشد، فراهم می‌آورد.
همچنین شامل یک برنامه آسان شده به زبان Delphi است که در آن بانکهای تحت Dos که اطلاعات رکوردهای آن فقط شامل کد اسکی آن علائم و حروف است را تبدیل به کدهای معادل آن در محیط ویندوز و ایجاد یک بانک جدید تحت ویندوز می‌نماید.
در ذیل به جزئیات هر دو برنامه و تشریح عملکرد آنها می‌پردازیم:
تشریح برنامه تحت Dos
در ابتدا توسط تابع feount تعداد فیلدهای بانک را در متغیر c- field ریخته‌ایم و یک آرایه به طول تعداد فیلدهای بانک و به اندازه 4 برای نگهداری لیست فیلدها به همراه نوع و اندازه آنها تعریف کرده و آن را با مقادیر بانک پر می‌کننیم.
c-field = fcount()
Dimension array 1 (o- field,4)
? afield (array 1)
سپس برای این که اطلاعات موجود در بانک پاک نشود یکبانک جدید درست کرده و تمام رکوردها را در آن اضافه می‌کنیم، توجه داشته باشید که طول فیلدهای از نوع رشته‌ای در بانک دوم ضرب در 3 شده (علت آن این است که چون حروف در مبنای اسکی بین Q تا 255 است و ما نیاز داریم در بانک دوم به جای حروف کدهای 3 حرفی آنها را قرار دهیم.

فهرست مطالب

نحوه پیاده‌سازی 3
تشریح برنامه تحت Dos 3
تشریح برنامه تحت ویندوز 4
روش اجرا و به کارگیری برنامه 5
مرجع دستورات 7
APPEND FROM 7
CLEAR 7
CREATE 7
DIMENSION 8
DO WHILE 9
GOTO یا GO 9
SET PATH 9
REPLACE 10
USE 11
AFIELDS 11
ALLTRIM 12
FCOUNT 12
LEN 12
PROCEDRE 13
PUBLIC 14
سورس برنامه فاکس پرو 16
سورس برنامه دلفی 17


پیاده سازی VLSI یک شبکه عصبی آنالوگ مناسب برای الگوریتم های ژنتیک

مفید بودن شبکه عصبی آنالوگ مصنوعی بصورت خیلی نزدیکی با میزان قابلیت آموزش پذیری آن محدود می شود
دسته بندی برنامه نویسی
بازدید ها 26
فرمت فایل doc
حجم فایل 453 کیلو بایت
تعداد صفحات فایل 22
پیاده سازی VLSI یک شبکه عصبی آنالوگ مناسب برای الگوریتم های ژنتیک

فروشنده فایل

کد کاربری 1024
کاربر

پیاده سازی VLSI یک شبکه عصبی آنالوگ مناسب برای الگوریتم های ژنتیک


خلاصه
مفید بودن شبکه عصبی آنالوگ مصنوعی بصورت خیلی نزدیکی با میزان قابلیت آموزش پذیری آن محدود می شود .
این مقاله یک معماری شبکه عصبی آنالوگ جدید را معرفی می کند که وزنهای بکار برده شده در آن توسط الگوریتم ژنتیک تعیین می شوند .
اولین پیاده سازی VLSI ارائه شده در این مقاله روی سیلیکونی با مساحت کمتر از 1mm که شامل 4046 سیناپس و 200 گیگا اتصال در ثانیه است اجرا شده است .
از آنجائیکه آموزش می تواند در سرعت کامل شبکه انجام شود بنابراین چندین صد حالت منفرد در هر ثانیه می تواند توسط الگوریتم ژنتیک تست شود .
این باعث می شود تا پیاده سازی مسائل بسیار پیچیده که نیاز به شبکه های چند لایه بزرگ دارند عملی بنظر برسد .
- مقدمه
شبکه های عصبی مصنوعی به صورت عمومی بعنوان یک راه حل خوب برای مسائلی از قبیل تطبیق الگو مورد پذیرش قرار گرفته اند .
علیرغم مناسب بودن آنها برای پیاده سازی موازی ، از آنها در سطح وسیعی بعنوان شبیه سازهای عددی در سیستمهای معمولی استفاده می شود .
یک دلیل برای این مسئله مشکلات موجود در تعیین وزنها برای سیناپسها در یک شبکه بر پایه مدارات آنالوگ است .
موفقترین الگوریتم آموزش ، الگوریتم Back-Propagation است .
این الگوریتم بر پایه یک سیستم متقابل است که مقادیر صحیح را از خطای خروجی شبکه محاسبه می کند .
یک شرط لازم برای این الگوریتم دانستن مشتق اول تابع تبدیل نرون است .
در حالیکه اجرای این مسئله برای ساختارهای دیجیتال از قبیل میکروپروسسورهای معمولی و سخت افزارهای خاص آسان است ، در ساختار آنالوگ با مشکل روبرو می شویم .
دلیل این مشکل ، تغییرات قطعه و توابع تبدیل نرونها و در نتیجه تغییر مشتقات اول آنها از نرونی به نرون دیگر و از تراشه ای به تراشه دیگر است و چه چیزی می تواند بدتر از این باشد که آنها با دما نیز تغییر کنند .
ساختن مدارات آنالوگی که بتوانند همه این اثرات را جبران سازی کنند امکان پذیر است ولی این مدارات در مقایسه با مدارهایی که جبران سازی نشده اند دارای حجم بزرگتر و سرعت کمتر هستند .
برای کسب موفقیت تحت فشار رقابت شدید از سوی دنیای دیجیتال ، شبکه های عصبی آنالوگ نباید سعی کنند که مفاهیم دیجیتال را به دنیای آنالوگ انتقال دهند .
در عوض آنها باید تا حد امکان به فیزیک قطعات متکی باشند تا امکان استخراج یک موازی سازی گسترده در تکنولوژی VLSI مدرن بدست آید .
شبکه های عصبی برای چنین پیاده سازیهای آنالوگ بسیار مناسب هستند زیرا جبران سازی نوسانات غیر قابل اجتناب قطعه می تواند در وزنها لحاظ شود .
مسئله اصلی که هنوز باید حل شود آموزش است .
حجم بزرگی از مفاهیم شبکه عصبی آنالوگ که در این زمینه می توانند یافت شوند ، تکنولوژیهای گیت شناور را جهت ذخیره سازی وزنهای آنالوگ بکار می برند ، مثل EEPROM حافظه های Flash .
در نظر اول بنظر می رسد که این مسئله راه حل بهینه ای باشد .
آن فقط سطح کوچکی را مصرف می کند و بنابراین حجم سیناپس تا حد امکان فشرده می شود (کاهش تا حد فقط یک ترانزیستور) .
دقت آنالوگ می تواند بیشتر از 8 بیت باشد و زمان ذخیره سازی داده (با دقت 5 بیت) تا 10 سال افزایش می یابد .
اگر قطعه بطور متناوب مورد برنامه ریزی قرار گیرد ، یک عامل منفی وجود خواهد داشت و آن زمان برنامه ریزی و طول عمر محدود ساختار گیت شناور است .
بنابراین چنین قطعاتی احتیاج به وزنهایی دارند که از پیش تعیین شده باشند .
اما برای محاسبه وزنها یک دانش دقیق از تابع تبدیل شبکه ضروری است .
برای شکستن این چرخه پیچیده ، ذخیره سازی وزن باید زمان نوشتن کوتاهی داشته باشد .
این عامل باعث می شود که الگوریتم ژنتیک وارد محاسبات شود .
با ارزیابی تعداد زیادی از ساختارهای تست می توان وزنها را با بکار بردن یک تراشه واقعی تعیین کرد .
همچنین این مسئله می تواند حجم عمده ای از تغییرات قطعه را جبران سلزی کند ، زیرا داده متناسب شامل خطاهایی است که توسط این نقایص ایجاد شده اند .
- مقدمه
شبکه های عصبی مصنوعی به صورت عمومی بعنوان یک راه حل خوب برای مسائلی از قبیل تطبیق الگو مورد پذیرش قرار گرفته اند .
علیرغم مناسب بودن آنها برای پیاده سازی موازی ، از آنها در سطح وسیعی بعنوان شبیه سازهای عددی در سیستمهای معمولی استفاده می شود .
یک دلیل برای این مسئله مشکلات موجود در تعیین وزنها برای سیناپسها در یک شبکه بر پایه مدارات آنالوگ است .
موفقترین الگوریتم آموزش ، الگوریتم Back-Propagation است .
این الگوریتم بر پایه یک سیستم متقابل است که مقادیر صحیح را از خطای خروجی شبکه محاسبه می کند .
یک شرط لازم برای این الگوریتم دانستن مشتق اول تابع تبدیل نرون است .
در حالیکه اجرای این مسئله برای ساختارهای دیجیتال از قبیل میکروپروسسورهای معمولی و سخت افزارهای خاص آسان است ، در ساختار آنالوگ با مشکل روبرو می شویم .
دلیل این مشکل ، تغییرات قطعه و توابع تبدیل نرونها و در نتیجه تغییر مشتقات اول آنها از نرونی به نرون دیگر و از تراشه ای به تراشه دیگر است و چه چیزی می تواند بدتر از این باشد که آنها با دما نیز تغییر کنند .
ساختن مدارات آنالوگی که بتوانند همه این اثرات را جبران سازی کنند امکان پذیر است ولی این مدارات در مقایسه با مدارهایی که جبران سازی نشده اند دارای حجم بزرگتر و سرعت کمتر هستند .
برای کسب موفقیت تحت فشار رقابت شدید از سوی دنیای دیجیتال ، شبکه های عصبی آنالوگ نباید سعی کنند که مفاهیم دیجیتال را به دنیای آنالوگ انتقال دهند .
در عوض آنها باید تا حد امکان به فیزیک قطعات متکی باشند تا امکان استخراج یک موازی سازی گسترده در تکنولوژی VLSI مدرن بدست آید .
شبکه های عصبی برای چنین پیاده سازیهای آنالوگ بسیار مناسب هستند زیرا جبران سازی نوسانات غیر قابل اجتناب قطعه می تواند در وزنها لحاظ شود .
مسئله اصلی که هنوز باید حل شود آموزش است .
حجم بزرگی از مفاهیم شبکه عصبی آنالوگ که در این زمینه می توانند یافت شوند ، تکنولوژیهای گیت شناور را جهت ذخیره سازی وزنهای آنالوگ بکار می برند ، مثل EEPROM حافظه های Flash .
در نظر اول بنظر می رسد که این مسئله راه حل بهینه ای باشد .
آن فقط سطح کوچکی را مصرف می کند و بنابراین حجم سیناپس تا حد امکان فشرده می شود (کاهش تا حد فقط یک ترانزیستور) .
دقت آنالوگ می تواند بیشتر از 8 بیت باشد و زمان ذخیره سازی داده (با دقت 5 بیت) تا 10 سال افزایش می یابد .
اگر قطعه بطور متناوب مورد برنامه ریزی قرار گیرد ، یک عامل منفی وجود خواهد داشت و آن زمان برنامه ریزی و طول عمر محدود ساختار گیت شناور است .
بنابراین چنین قطعاتی احتیاج به وزنهایی دارند که از پیش تعیین شده باشند .
اما برای محاسبه وزنها یک دانش دقیق از تابع تبدیل شبکه ضروری است .
برای شکستن این چرخه پیچیده ، ذخیره سازی وزن باید زمان نوشتن کوتاهی داشته باشد .
این عامل باعث می شود که الگوریتم ژنتیک وارد محاسبات شود .
با ارزیابی تعداد زیادی از ساختارهای تست می توان وزنها را با بکار بردن یک تراشه واقعی تعیین کرد .
همچنین این مسئله می تواند حجم عمده ای از تغییرات قطعه را جبران سلزی کند ، زیرا داده متناسب شامل خطاهایی است که توسط این نقایص ایجاد شده اند .