Повертає ваговий коефіцієнт певного входу
@ param int nomer_koef - номер цікавить входу
@ return значення вагового коефіцієнта відповідного заданому входу
*/float getVesKoef (int nomer_koef)
{ves_koef [nomer_koef];
}
/**
Повертає значення об'єкта у вигляді рядка
@ return рядок, що містить інформацію про кількість входів, відповідних
вагових коефіцієнтах, і кількості виходів
*/
public String toString ()
{str= входів= + vxodi; (int i=0; i lt; vxodi; i ++)
{= str.length (); (i!=vxodi - 1) str=str.substring (0, n) + ваговій коеф [ + (i + 1) + ] зв'язку= + ves_koef [i]; str=str.substring (0, n) + ваговій коеф [ + (i + 1) + ] зміщення= + ves_koef [i];
}=str.length ();=str.substring (0, n) + Вихід= + VIxodi;
return str;
}
/**
Обчислює результат функціонування нейрона прихованого або вихідного
@ param double [] tempResult - значення надходять на кожен вхід нейрона
(за винятком входу зсуву) для обчислення зваженої суми
@ return значення функції активації
*/double getResult (double [] tempResult)
{= 0.0; (int i=0; i lt; vxodi; i ++)
{(i lt; (vxodi - 1)) sum=sum + ves_koef [i] * (tempResult [i]); sum=sum + ves_koef [i] * 1;
}=getResultat (sum); result;
}
/**
Обчислює результат функціонування нейрона вхідного шару
@ param double tempResult - значення надходять на вхід нейрона
для обчислення зваженої суми
@ return значення функції активації
*/double getINResult (double tempResult)
{= 0.0;=sum + ves_koef [0] * tempResult;=getINResultat (sum); result;
}
/**
Розраховує функцію активації для нейрона прихованого або вихідного шару
@ param double param - зважена сума
@ return значення функції активації (Сигмоїдальні функція)
*/double getResultat (double param)
{(funkciya == 0)
{= 1.0/(1.0 + Math.exp (-param));
} (funkciya == 1)
{= - 1.0 + 2.0/(1.0 + Math.exp (-param));
} res;
}
/**
Розраховує функцію активації для нейрона вхідного шару
@ param double param - зважена сума
@ return значення функції активації (лінійна функція)
*/double getINResultat (double param)
{res=param; res;
}
/**
Встановлює ваговий коефіцієнт
@ param int j - номер входу, ваговий коефіцієнт якого необхідно скоригувати
@ param int tmp - величина на яку змінитися ваговий коефіцієнт
*/void setVesKoef (int j, double tmp)
{temp=ves_koef [j] + tmp; _koef [j]=(float) temp;
} double res; int funkciya; double result; double sum; String input; int inp; double vk; int n; int vxodi; int VIxodi; float [] ves_koef;
}
ДОДАТОК Г
Листинги програмних модулів, що описують графічний інтерфейс програми
Листинги класу панелі з кнопками для створення нейронної мережі
package classWindow; java.awt. *; java.awt.event. *; javax.swing. *; class ButonPanel extends JPanel
{ButonPanel (DrawPanel panelDraw)
{(layout); nextButton=new JButton ( Далі ); nextAction=new NextAction (panelDraw, drawLines ) ;. addActionListener (nextAction); (nextButton) ;. putConstraint ( SpringLayout.WEST, nextButton, strut, SpringLayout.WEST, this) ;. putConstraint (SpringLayout.SOUTH, nextButton, strut2, SpringLayout.SOUTH, this);=rast - 35;=Spring.constant (rast); ( вихідний шар raquo ;, classWindow outSloy.gif raquo ;, this, panelDraw); ( прихований шар raquo ;, classWindow subSloy.gif raquo ;, this, panelDraw); ( вхідний шар raquo ;, classWindow inSloy.gif raquo ;, this, panelDraw);