Реферат Метод послідовних порівнянь

Страница 1 из 2 | Следующая страница

Федеральне агентство по рибальством

Федеральне державне освітнє установа

Вищої професійної освіти

>Мурманский державний технічний університет

Кафедра обчислювальної математики програмного забезпечення ЕОМ


>Расчетно-графическое завдання

з дисципліни

Теорія прийняття рішень

Тема:

Метод послідовних порівнянь

>Виполнил: студент ВТФ, групиП-561

Воронкова А.В.

Перевірив: Зав. кафедри ВМ та ВО ЕОМ

Середа В.І.

 

Мурманськ 2010


>Оглавление

1. Мета роботи

2. Теоретичні відомості

2.1 Експертні методи у дослідженні системам управління

2.2 Метод послідовних порівнянь

2.3 Проблеми, на вирішення яких залучаються методи експертні оцінки

3. Опис інтерфейсу розробленого програмного продукту

4.Листинг

4.1 Клас «>CombinationGenerator»

4.2 Клас «>ConditionPanel»

4.3 Клас «>MainFrame»

Висновки

Список використаної літератури

Список використаних програмних засобів

Додаток

 


 

1. Мета роботи

>Программно реалізувати інтерактивний метод послідовних порівнянь

 


 

>2.Теоретические відомості

2.1 Експертні методи у дослідженні системам управління

 

Експертні методи спочатку використовувались у основному галузі техніки, та був почали широко застосовуватися у управлінні, і економіці. Сутність цих методів як із рішенні завданьИСУ, і під час використання в практиціобобщенного думки (судження) фахівців-експертів по аналізованим питанням. Це узагальнена думка виходить внаслідок усереднення в різний спосіб думок фахівців-експертів.

Методи експертні оцінки – це наукові методи аналізу складних проблем. Експерти проводятьинтуитивно-логический аналіз проблеми з кількісної оцінкою суджень, з формальної обробкою результатів. Їх узагальнена думка, отриманий у результаті обробки індивідуальних оцінок, приймається як вирішення проблеми.

Ці методи припускають організацію спеціальної процедури отримання, коли фахівці з галузі розв'язуваної проблеми (експерти) використовують кількісні методи, як із організації процедури експертної оцінки, і при обробці її результатів.

Досліджувані чи оцінювані з допомогою методів експертні оцінки об'єкти чи явища різняться з урахуванням ознак, характеристик, параметрів, показників. Зазвичай, кожен показник відбиває деяке властивість, характеристику об'єкта.

У випадку це властивість то, можливо обмірювано, відображене кількома способами. У водночас, який з способів ми обрали, повинні зберігатися незмінними деякі співвідношення значень показників щодо різноманітних об'єктів.

Із кожним показником пов'язують із одного боку деяка характеристика, залишається постійної за будь-яких допустимих засобах вимірювання. З іншого боку безліч перетворень переходу від припустимого способу виміру цього показника до іншого.

Якщо два показника мають збіжні безлічі допустимих перетворень, то кажуть, що показники мають шкалу одного типу.

Якщо припустимо перетворення: множення на позитивну константу, то відповідна шкала називається «шкалою відносин».

Якщо до цього перетворенню можна доповнити таке перетворення: додати константу, така шкала називається «шкалою інтервалів».

Показники, мають шкалу щонайменше досконалу, цьому шкала інтервалів, називаються кількісними. Можуть зустрітися показники з т.зв. номінальною шкалою. І тут встановлюються лише тотожності чи відмінності. Показники з порядковими шкалами прийнято називати якісними.

При класифікації за ознакою оцінки переваг після ухвалення рішень на час найпоширеніші метод рангів, метод безпосереднього оцінювання, метод зіставлень. Він охоплює у собі чи два різновиди: парного порівняння й послідовнішого порівняння.

2.2 Метод послідовних порівнянь

Спільним недоліком показників, одержуваних з урахуванням підсумовування балів, і те, що хронічна нестача якості однієї зі на них можна компенсувати з допомогою інших, одержуючи і той ж результат при різної значимості чинників. Тож підвищення надійності оцінок, значення має тут виявлення зв'язків встановлення залежностей між всіма значимими чинниками. Встановлення таких залежностей можливо методом послідовних порівнянь (У.Черчмен, Р.Акоф).

Процедура ось у чому.Эксперту надається перелік чинників (критеріїв, альтернатив, результатів), які потрібно оцінити з їхньої відносної важливості й він робить ранжування. Найбільш важливого чиннику приписується оцінка (вагу ) = 1, а іншим оцінки () між 0 і одну гаразд відносної важливості.

Потім експерт встановлює, є чинник з оцінкою 1 важливішим, ніж комбінація інших чинників.

· Якщо можна, він збільшує оцінку , щоб у неї більше, аніж решти, тобто.

· Якщо ні, він коригує оцінку (якщо потрібно), щоб у неї менше суми решти, тобто.

 

Далі визначається, чи є другий чинник з оцінкою важливішим, ніж інші. І до чинника.

Отже, процедура полягає у систематичної перевірці оцінок з урахуванням їх послідовного порівняння.

Загальна процедура методу наступна:

1.Упорядочить результати відповідно до їх значимістю (відносної важливістю) з погляду експерта.

Нехай представляє найважливіший результат, – наступний за рівнем значимості тощо. буд., а – найменш важливий.

2.Приписать вагу 1,00 результату (тобто. = 1,00) та інші ваги решті результатам.

3. Порівняти

 з + + ... + :

· якщо краще, треба змінити (у разі потреби) значення те щоб > + + … + . Під час цієї коригуванні, як і і всіх інших, слід прагне, щоб ваги набору (, тощо.) ніхто не звернув змін. Далі йде можливість перейти до кроку 4.

· якщо = + + ... + , то змінити (у разі потреби) значення , те щоб виконувалося рівність = + + … + і далі можливість перейти до кроку 4

· якщо результат менш бажаний, ніж + + ... + , то змінити значення те щоб виконувалося нерівність < + + … + . Далі порівняти з + + ... + і повторювати до того часу, поки що чи краще, чи рівноцінний решті результатам.

4. Порівняти з + ... + і весь крок 3.

5. Продовжити крок 4 до того часу, поки що не виконано порівнювати з + .

6.Преобразовать кожне отримане значення в нормоване , розділивши відповідні ваги на . У результаті мусить бути дорівнює 1,00.

Якщо результатів понад сім, метод стає громіздким. І тут застосовується процедура розбивки на підмножини, до кожного у тому числі застосовується цю процедуру.

експертний послідовний інтерактивний порівняння


 

2.3 Проблеми, на вирішення яких залучаються методи експертні оцінки

Експертні методи спочатку використовувались у основному галузі техніки, та був почали широко застосовуватися у керуванні та економіці. Сутність цих методів як із рішенні завданьИСУ, і під час використання в практиціобобщенного думки (судження) фахівців-експертів по аналізованим питанням. Це узагальнена думка виходить внаслідок усереднення в різний спосіб думок фахівців-експертів.

Це наукові методи аналізу складних проблем. Експерти проводятьинтуитивно-логический аналіз проблеми з кількісної оцінкою суджень, з формальної обробкою результатів. Їх узагальнена думка, отриманий у результаті обробки індивідуальних оцінок, приймається як вирішення проблеми.

Проблеми, на вирішення якої припадає застосовувати методи експертні оцінки, часто ділять на два класу, кожен із яких певним чином впливає етапи і проведення експертизи.

Проблеми першого класу характеризуються тим, що їх відношенні загалом є достатня інформація, але вона може носити якісний характер чи ємногокритериальность, що зумовлює необхідність залучення експертів. Основні завдання, які у тому випадку доводиться виконувати лише за використанні методів експертні оцінки, полягає у пошуку експертів і правильною організації процедури експертизи, у своїй вважають, що групове думку експертів наближається до справжнього значенням оцінюваних параметрів. І тут при обробці оцінок широко використовуються методи математичної статистики. Експерти найчастіше використовують порядкову іинтервальную шкали.

Проблеми, складові другий клас, не характеризуються достатнім інформаційним потенціалом. До них частіше ставляться проблеми, які під час рішенні більшості завдань прогнозування. Тут експерти використовують частіше номінальну і порядкову шкали.

До різновидам експертного методу можна віднести соціологічний аналіз, який грунтується на опитуванні, зборі і аналізі думок респондентів. Наприклад, фактичних чи потенційних споживачів. Такий опитування і валовий збір думок виробляється зазвичай, у письмовій формах (анкети), або усно (конференції, аукціони, виставки).

З використанням цього слід застосовувати науково-обгрунтовані способи опитування, математичні принципи збирання та опрацювання інформації. Обробка експертних і соціологічних даних, розрахунки заходів узгодженості вимагаютьтрудоемких обчислень. Тому, за зборі та їх обробки результатів експертної і соціологічною інформації використовують обчислювальну техніку й спеціально розроблені програмні продукти.


 

3. Опис інтерфейсу розробленого програмного продукту

 

Вікно докладання підрозділяється на дві основні області: область введення даних для реалізації Метода послідовних порівнянь і науковотехнологічна галузь аналізу та виконання зазначеного методу.

Область введення даних для реалізації методу

Область аналізу та виконання методу

 

Довжина першої області становить 350px, довжина другий області – 230px. Співвідношення довжин областей становить 65%, своєю чергою, золотий переріз представляє ставлення 2:3. Отже, створений інтерфейс програмного продукту повністю відповідає вимогам пропорційності.

Пропозиції для поліпшення інтерфейсу: проаналізувавши пропорції елементів управління щодо одне одного й краю форми, і навіть пропорції основних областей форми, можна дійти невтішного висновку про коректності побудови спроектованого інтерфейсу.

Альтернативним є варіант організації інтерфейсу, коли основні області: область введення даних для реалізації методу і науковотехнологічна галузь аналізу розташовані на півметровій різних вкладках. Однак, запропонований альтернативний варіант перестав бути оптимальним з погляду мінімізації тимчасових інтервалів, бо за такому розташуванні основних областей, користувач буде змушений спілкуватися здійснювати зайві переміщення миші між зазначеними областями і зайвий кліки по робочої області.

Отже, реорганізація аналізованого інтерфейсу не доцільна. Запроектований інтерфейс є оптимальним, лаконічним і простим використання.


 

4.Листинг

 

4.1 Клас «>CombinationGenerator»

publicclassCombinationGenerator {

privateint[] a;

privateint n;

privateintr;

privateBigIntegernumLeft;

privateBigIntegertotal;

publicCombinationGenerator(int n,intr) {

>if (>r > n) {

>throw newIllegalArgumentException();

}

>if (n < 1) {

>throw newIllegalArgumentException();

}

>this.n = n;

>this.r =r;

a = newint[r];

>BigIntegernFact =getFactorial(n);

>BigIntegerrFact =getFactorial(r);

>BigIntegernminusrFact =getFactorial(n -r);

>total =nFact.divide(rFact.multiply(nminusrFact));

>reset();

}

//------

//Reset

//------

publicvoidreset() {

>for (>int і = 0; і <a.length; і++) {

>a[i] = і;

}

>numLeft = newBigInteger(total.toString());

} //Returnnumber ofcombinationsnotyetgenerated

//------------------------------

publicBigIntegergetNumLeft() {

>returnnumLeft;

}

//-----------------------------

//Aretheremorecombinations?

//-----------------------------

publicbooleanhasMore() {

>returnnumLeft.compareTo(BigInteger.ZERO) == 1;

} //Returntotalnumber ofcombinations

//--------------------------

publicBigIntegergetTotal() {

>returntotal;

}

//------------------

//Computefactorial

//------------------

privatestaticBigIntegergetFactorial(int n) {

>BigIntegerfact =BigInteger.ONE;

>for (>int і = n; і > 1; і--) {

>fact =fact.multiply(newBigInteger(Integer.toString(i)));

}

>returnfact;

}

//--------------------------------

//Generate nextcombination (>algorithmfromRosenp. 286)

//----------------------------------

publicint[]getNext() {

>if (>numLeft.equals(total)) {

>numLeft =numLeft.subtract(BigInteger.ONE);

>return a;

}

>int і =r - 1;

>while (>a[i] == n -r + і) {

і--;

}

>a[i] =a[i] + 1;

>for (>int j = і + 1; j <r; j++) {

>a[j] =a[i] + j - і;

}

>numLeft =numLeft.subtract(BigInteger.ONE);

>return a;

}

}

4.2 Клас «>ConditionPanel»

publicclassConditionPanelextendsjavax.swing.JPanel {

publicConditionPanel() {

>initComponents();

}

publicvoidsetCondition(intindices[],intnum) {

>Strings;

>s = " " + (>indices[0] + 1) + " > ";

>for (>int і = 1; і <indices.length - 1; і++) {

>s += (>indices[i] + 1) + " + ";

}

>s += (>indices[indices.length - 1] + 1);

>jLabel1.setText("" +num + ". " +s);

}

publicvoidcheck() {

>jCheckBox1.setSelected(!jCheckBox1.isSelected());

}

>booleanisSelected() {

>returnjCheckBox1.isSelected();

}

}

 

4.3 Клас «>MainFrame»

publicclassMainFrameextendsjavax.swing.JFrame {

/**Creates newformMainFrame */

publicMainFrame() {

>initComponents();

>jList1.setCellRenderer(newListCellRenderer() {

publicComponentgetListCellRendererComponent(JList list,Objectvalue,intindex,booleanisSelected,booleancellHasFocus) {

>Componentcomp = (>Component)value;

>comp.setBackground(isSelected ?Color.LIGHT_GRAY :Color.white);

>returncomp;

}

});

>jList1.addMouseListener(newMouseAdapter() {

@>Override

publicvoidmouseReleased(MouseEvent e) {

>vec.get(jList1.getSelectedIndex()).check();

>jList1.updateUI();super.mouseReleased(e);

}

});

>jSpinner1.setValue(2);

}

privateVector<ConditionPanel>vec;

privateLinkedList<int[]>conditions;

privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt) {

>intvalue = (>Integer)jSpinner1.getValue();

>conditions = newLinkedList<int[]>();

>int[]lastNumIndex = newint[value];

>for(intnum :lastNumIndex) {

>System.out.println(num);

}

>for (>int і = 3; і <=value; і++) {

>int[]indices;

>CombinationGenerator x = newCombinationGenerator(value, і);

>while (>x.hasMore()) {

>indices =x.getNext();

>conditions.add(indices.clone());

}

}

>Collections.sort(conditions, newComparator<int[]>() {

publicintcompare(int[]o1,int[]o2) {

>if(o1[0] <o2[0] ) {

>return -1;

}elseif(o1[0] ==o2[0] ) {

>if(o1.length <o2.length) {

>return -1;

}else {

>return 0;

}

}else {

>return 1;

}

}

});

>vec = newVector<ConditionPanel>();

>intnum = 1;

>for(int[]indices :conditions) {

>ConditionPanel list = newConditionPanel();

>list.setCondition(indices,num);

>num++;

>vec.add(list);

}

>jList1.setListData(vec);

>jList1.updateUI();

}

privatevoidjSpinner1StateChanged(javax.swing.event.ChangeEventevt) {

>jTable1.setModel(newDefaultTableModel((Integer)jSpinner1.getValue(), 3)

>boolean[]canEdit = newboolean [] {

>false,true,true

};

@>Override

publicbooleanisCellEditable(introwIndex,intcolumnIndex) {

>returncanEdit [>columnIndex];

}

@>Override

publicStringgetColumnName(intcolumn) {

>Stringname = "";

>switch(column) {

>case 0:

>name = "№";

>break;

>case 1:

>name = "мета";

>break;

>case 2:

>name = "оцінка";

>break;

}

>returnname;

}

});

>for (>int і = 0; і < (>Integer)jSpinner1.getValue(); і++){

>Strings = "" + (>1-0.1*i);

>jTable1.setValueAt(i + 1, і, 0);

>jTable1.setValueAt("цель " + (і + 1), і, 1);

>jTable1.setValueAt(s, і, 2);

}

}

privatefloat[]values;

privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt) {

>jTable1.updateUI();

>intcount = (>Integer)jSpinner1.getValue();

>values = newfloat[count];

>for (>int і = 0; і <count; і++) {

>values[i] =Float.parseFloat((String)jTable1.getModel().getValueAt(i, 2));

}

>if (>jRadioButton1.isSelected()) {

>manualSolve();

}else {

>automaticSolve();

}

}

}

privatevoidmanualSolve() {

>int і =checkConditions();

>if (і !=-1){

>JOptionPane.showMessageDialog(this, (і + 1) + " правило, невиполнилось.Скорректируйте оцінки");

}

>else{

>norm();

>JOptionPane.showMessageDialog(this, "Прийняті оцінки коректні");

}

}

privatevoidautomaticSolve() {

>ArrayList<Integer>ind = newArrayList<Integer>();

>ind.add(0);

>for (>int і = 1; і <conditions.size(); і++) {

>int[]currentIndex =conditions.get(i);

>int[]previousIndex =conditions.get(i - 1);

>if (>currentIndex[0] ==previousIndex[0]

&&currentIndex.length ==previousIndex.length) {

>if (>isConditionSelected(i) !=isConditionSelected(i - 1)) {

>JOptionPane.showMessageDialog(this, ">Уловия неможливо знайти виконані при даних значеннях оцінок !!!");

>return;

}

}

>if (>currentIndex[0] ==previousIndex[0]

&&currentIndex.length >previousIndex.length) {

>if (>isConditionSelected(i) ==true &&isConditionSelected(i - 1) ==false) {

>JOptionPane.showMessageDialog(this, ">Уловия неможливо знайти виконані при даних значеннях оцінок !!!");

>return;

}

}

>if(currentIndex.length !=previousIndex.length) {

>ind.add(i);

}

}

{

>intfirst = 0;

>ArrayList<Integer>sortedInd = newArrayList<Integer>();

>for (>intsize =values.length - 2;size > 0 ;size--) {

>List<Integer>sublist =ind.subList(first,first +size);

>Collections.reverse(sublist);

>sortedInd.addAll(sublist);

>first +=size;

}

>ind =sortedInd;

}

>int n =ind.size();

>floatdelta =0.01f;

>for (>int і = 0; і < n; і++){

>intconditionNum =ind.get(i);

>int[]cond =conditions.get(conditionNum);

>booleansolving =calculute(conditionNum,values);

>booleanselected =isConditionSelected(conditionNum);

>if (>solving !=selected) {

>if (>solving) {

>floatvalue =getSumm(conditionNum,values) -delta;

>if (>value >values[cond[0] + 1]) {

>values[cond[0]] =value;

}else {

>JOptionPane.showMessageDialog(this, ">Уловия неможливо знайти виконані при даних значеннях оцінок");

>return;

}

}else {

>floatvalue =getSumm(conditionNum,values) +delta;

>if(cond[0]==0){

>values[cond[0]] =value;

}else {

>floatd =value -values[cond[0]];

>values[cond[0]] =value;

>for(int j = 0; j <cond[0]; j++) {

>values[j] +=d;

}

}

}

}

}

>norm();

>JOptionPane.showMessageDialog(this, "Прийняті оцінки коректні");

}

privateintcheckConditions() {

>returncheckConditions(conditions.size()-1,values);

}

privatebooleanisConditionSelected(intnumCondition){

>returnvec.get(numCondition).isSelected();

}

privateintcheckConditions(intlastCondition,float[]values) {

>for (>int і = 0; і <=lastCondition; і++) {

>booleanselected =isConditionSelected(i);

>if (>calculute(i,values) == !>selected) {

>return і;

}

}

>return -1;

}

privatebooleancalculute(int і,float[]values) {

>int[]indices =conditions.get(i);

>floatleftValue =values[indices[0]];

>floatsumm = 0;

>for (>int j = 1; j <indices.length; j++) {

>summ +=values[indices[j]];

}

>returnleftValue >summ;

}

privatefloatgetSumm(int і,float[]values) {

>int[]indices =conditions.get(i);

>floatsumm = 0;

>for (>int j = 1; j <indices.length; j++) {

>summ +=values[indices[j]];

}

>returnsumm;

}

publicvoidnorm() {

>intcount =values.length;

>floatval =values[0];

>for (>int і = 0; і <count; і++) {

>values[i] =values[i] /val;

>jTable1.setValueAt("" +values[i], і, 2);

}

}

}


 

Висновки

Основне перевагу методів експертні оцінки – можливість їх застосування за умов підвищений ризик та соціальної невизначеності. Ця невизначеність найчастіше є наслідком ймовірного характеру досліджуваних явищ, неможливості точного передбачення остаточних фіналів багатьох процесів тощо. Залучення експертів прийняття рішень дозволяє знизити рівень невизначеності та підвищити достовірність рішень. У випадку передбачається, що їхня думка групи експертів надійніше, ніж думка окремого індивідуума. Головна перевага груповий оцінки залежить від зменшенні розбіжностей в думках, щодо можливості отримання певною мірою узагальненого і більше представницького думки.

Специфіка і розмаїтість розв'язуваних з участю експертів проблем істотно обмежує можливість створення єдиних універсальних правив і моделей експертизи. Проте ще можна орієнтовно окреслити такі основні етапи проведення експертизи:

· формулювання мети експертизи й розробка процедури опитування;

· формування групи фахівців-аналітиків;

· добір і формування групи експертів;

· проведення опитування;

· аналіз стану та обробка інформації, отриманої від експертів;

· синтез об'єктивної (статистичної) інформації та інформації, отриманої від експертів, з приведення в форму, зручну ухвалення рішення.

Послідовність і змістом цих етапів будуть змінюватися залежно від умов та під час проведення експертизи.

>Математико-статистические методи експертні оцінки отримують всі ширше застосовуються на практиці прийняття рішень. Проте є ряд труднощів і завдань, потребують подальших теоретичних досліджень, і практичної перевірки. Можна зазначити необхідність удосконалення системи відбору експертів, підвищення надійності характеристик групового думки,

Страница 1 из 2 | Следующая страница

Схожі реферати:

Навігація