Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ_лаб.роб_Системи підтримки прийняття рішень_2...doc
Скачиваний:
4
Добавлен:
13.11.2019
Размер:
1.93 Mб
Скачать

5.4 Порядок виконання роботи і методичні вказівки по її виконанню

Завдання 5.1. Реалізувати в середовищі табличного процесора Mіcrosoft Excel приведений нижче приклад рішення задачі прийняття колективних рішень. Припустимо, що молода людина по імені Петро вирішив женитися. Варіантів у нього було чотири: Аня, Вика, Оксана й Оля. У Петра було багато друзів з різних куточків України: Київ, Харків, Львів і Одеса, - до яких він вирішив звернутися по допомогу. Петро знайомив своїх подруг зі своїми друзями, а потім розпитував усіх, яка дівчина їм більше сподобалася. П'ятеро львів'ян сказали, що краще всіх Оля, ледве гірше Вика, на третім місці в них була Оксана, а на останньому Аня. Петро записав їхню думку в такий спосіб: Оля > Вика > Оксана > Аня. Троє киян вважали, що Оля > Вика > Аня > Оксана. У п'ятьох харків'ян думка абсолютна не збігалося зі львів'янами: Аня > Оксана > Вика > Оля. Нарешті, четверо одеситів вважали, що Оксана > Вика > Аня > Оля.

Для збереження й обробки отриманої інформації Петро вирішив використовувати Mіcrosoft Excel 2000. У стовпець A він ввів імена "кандидаток", у рядок 1 - кількість "виборців", а на перетинанні рядків і стовпців указав місце, що, на думку його друзів, займає та або інша подруга (рис. 5.1). Наприклад, якщо на перетинанні рядка 4 (Оксана) і стовпця C (3) коштує цифра 4 (клітинка C4), те це означає, що троє друзів Пети ставлять Оксану на четверте місце. Таким чином, у стовпці B зберігається думка львів'ян, у стовпці C - думка киян, у стовпці D - харків'ян, у E - одеситів.

Рисунок 5.1 - Уведення результатів опросу друзів

Петро показав отриману таблицю своїм приятелям. "Ну і що мені тепер із усім цим робити? - запитав він. - Як визначити, яка дівчина все-таки краще?" Львів'яни запропонували наступне правило обробки отриманих результатів. Для кожної нареченої підрахувати, скільки чоловік ставить неї на перше місце. Хто набере більше всіх голосів, та і переможе. Для підрахунку голосів, набраних Олей за правилом львів'ян, у клітинку F2 уведемо формулу (5.1):

=СУММЕСЛИ(B2:E2;1;$B$1:$E$1) (5.1)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки F3-F5. Голосу, набрані всіма "кандидатками", показані на рис. 5.2.

Рисунок 5.2 - Підрахунок голосів за 1-і місце в 1-ом турі

Для визначення переможця за правилом львів'ян введемо у клітинку G2 формулу (5.2):

=ЕСЛИ(F2=МАКС($F$2:$F$5);"+";"") (5.2)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки G3-G5. Та "кандидатка", напроти якої є знак "+", буде переможцем. Таким чином, переможцем за правилом львів'ян є Оля (рис. 5.3).

Рисунок 5.3 - Визначення переможця першого туру

Кияни стали заперечувати: "Це неправильно! Оля набрала менше половини голосів! Треба проводити "другий тур" із двома "кандидатками", що набрали найбільше число голосів у "першому турі"! Хто переможе в "другому турі", та і буде краще всіх!" Щоб визначити двох наречених, що набрали найбільше число голосів у 1-ом турі, введемо у клітинку H2 формулу (5.3):

=ЕСЛИ(F2>=НАИБОЛЬШИЙ($F$2:$F$5;2);1;0) (5.3)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки H3-H5. Ті наречені, напроти яких є "1", набрали найбільше число голосів у 1-ом турі. Таким чином, у 2-ий тур виходять Оля й Аня (рис. 5.4).

Рисунок 5.4 - Визначення учасників 2-го туру

А скільки голосів Оля й Аня наберуть у 2-ом турі? Спочатку треба "обнулить" голосу тих, хто не вийшов у 2-ий тур. Для цього в клітинка І2 уведемо формулу (5.4):

=B2*$H$2 (5.4)

за допомогою маркера заповнення скопіюємо неї у клітинки J2-L2, потім у клітинках І2-L2 всі абсолютні посилання за допомогою клавіші F4 поміняємо на відносні, і, нарешті, виділимо клітинки І2-L2 і за допомогою маркера заповнення скопіюємо формули аж до клітинок І5-L5. Таким чином, голоси Вики й Оксани тепер дорівнюють нулеві (рис. 5.5).

Рисунок 5.5 - Обнуління голосів учасників, що не вийшли в 2-ий тур

Тепер треба перерозподілити місця серед Оли й Ані, що вийшли в 2-ий тур. Наприклад, зараз четверо одеситів будуть ставити Аню вже не на 3-і місце, але на 1-і, а Олю - не на 4-і, але на 2-і. Для цього введемо у клітинку M2 формулу (5.5):

=ЕСЛИ(I2=0;0;ЕСЛИ(I2=НАИБОЛЬШИЙ($I$2:$I$5;2);1;2)) (5.5)

за допомогою маркера заповнення скопіюємо неї у клітинки M3-M5, потім у клітинках M2-M5 всі абсолютні посилання за допомогою клавіші F4 поміняємо на відносні, і, нарешті, виділимо клітинки M2-M5 і за допомогою маркера заповнення скопіюємо формули аж до клітинок P2-P5. Таким чином, місця між Олей і Анею тепер перерозподілилися так, як показано на рис. 5.6.

Рисунок 5.6 - Перерозподіл місць між учасниками 2-го туру

Переможець у 2-ом турі визначається також за правилом львів'ян: для кожної з двох наречених підраховується, скільки чоловік ставить неї на перше місце, і хто набере більше всіх голосів, та і переможе. Для цього введемо у клітинку Q2 формулу (5.6):

=СУММЕСЛИ(M2:P2;1;$B$1:$E$1) (5.6)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки Q3-Q5. Голоси, що Оля і Аня набрали в 2-м турі, показані на рис. 5.7.

Рисунок 5.7 - Підрахунок голосів за 1-і місце в 2-ом турі

Для визначення переможця за правилом киян введемо у клітинку R2 формулу (5.7):

=ЕСЛИ(Q2=МАКС($Q$2:$Q$5);"+";"") (5.7)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки R3-R5. Та "кандидатка", напроти якої є знак "+", буде переможцем. Таким чином, переможцем за правилом киян є Аня (рис. 5.8).

Рисунок 5.8 - Визначення переможця 2-го туру

"Нічого собі, "глюки", - подумав Петро. - За правилом львів'ян краще Оля, а за правилом киян - Аня!" Але отут утрутилися харків'яни: "Ви зовсім не враховуєте, що в різних місць різна "вага"! Давайте останньому місцю привласнимо вагу 0, передостанньому - вагу 1, другому - 2, першому - 3. І підрахуємо, скільки голосів набере кожна наречена з урахуванням ваг. У кого "вага" буде більше всіх, та і краща!"

Перо вирішив, що проміжні результати обчислень за правилом 1 і 2 можна вже сховати. Для цього він виділив стовпець F, у меню Данные вибрав підменю Группа и структура, а в ньому - пункт Группировать. При цьому над стовпцем G з'явився маленький квадратик зі знаком "-". Петя натиснув на нього мишкою - стовпець F зник, а над стовпцем G з'явився маленький квадратик, але вже зі знаком "+". Аналогічним образом Петя сховав стовпці H-Q. Результат показаний на рис. 5.9.

Рисунок 5.9 - Таблиця результатів без схованих стовпців

Для генерації ваг за правилом харків'ян введемо у клітинку S2 формулу (5.8):

=4-B2 (5.8)

а потім за допомогою маркера заповнення скопіюємо її аж до клітинки V5. Результат показаний на рис. 5.10.

Рисунок 5.10 - Генерація ваг кандидаток за правилом харків'ян

Для підрахунку "ваги" Оли введемо у клітинку W2 формулу (5.9):

=СУММПРОИЗВ(S2:V2;$B$1:$E$1) (5.9)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки W3-W5. "Ваги", набрані всіма "кандидатками", показані на рис. 5.11.

Рисунок 5.11 - Підрахунок "ваги" кандидаток за правилом харків'ян

Для визначення переможця за правилом харків'ян введемо у клітинку X2 формулу (5.10):

=ЕСЛИ(W2=МАКС($W$2:$W$5);"+";"") (5.10)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки X3-X5. Та "кандидатка", напроти якої є знак "+", буде переможцем. Таким чином, переможцем за правилом харків'ян є Вика (рис. 5.12).

Рисунок 5.12 - Визначення переможця 3-го туру

"Я догадуюся, - подумав Перо, - яке правило запропонують зараз одесити..." "Ви таки зовсім праві! - відповіли вони. - Навіщо кривдити Оксаночку! Оля була кращої, Аня була кращої, Вика була кращою... А чим наша Оксаночка гірше?! Давайте улаштуємо дуель! Один на один! Хто переможе у всіх інших, та і краща!"

Перо вже майже уявив собі "Mortal Combat: Crazy Ukraіnіan Gіrls Edіtіon", але одесити продовжили: "Ніякого мордобою! Візьмемо, наприклад, Олю й Оксану. Олю ставлять вище, ніж Оксану 5 львів'ян і 3 киян - всего 8 чоловік, а Оксану ставлять вище, ніж Олю 9 чоловік (5 харків'ян і 4 одесити). Тому можна сказати, що Оксана виграє в Оли з рахунком 9:8".

Петя сховав стовпці S-W, додав у перший рядок імена наречених, а для підрахунку кількості людина, що ставлять Аню вище, ніж Олю, ввів у клітинку Y5 наступну формулу масиву (5.11):

=СУММ(ЕСЛИ(B5:E5<$B$2:$E$2;$B$1:$E$1)) (5.11)

Що таке формула масиву, і чим вона відрізняється від інших формул, досить докладно описано в довідковій системі Excel. Відзначимо тільки, що для введення такої формули використовується комбінація клавіш CTRL+SHІFT+ENTER, і при цьому в рядку формул ця формула масиву буде укладена у фігурні дужки {}. Приведена вище формула масиву "працює" у такий спосіб: вона "сканує" діапазон місць Ані (B5:E5), порівнюючи його з діапазоном місць Оли ($B$2:$E$2), і якщо місце Ані виявляється вище, ніж місце Оли (знак "<"), те до рахунка Ані додається відповідне число з діапазону голосів ($B$1:$E$1).

Потім цю формулу можна за допомогою маркера заповнення скопіювати у клітинки Y2-Y4. Нарешті, аналогічно можна підрахувати рахунка для всіх інших пар. Результат показаний на рис. 5.13. Тут, наприклад, число 12 означає, що Вику ставлять вище, ніж Аню, 12 чоловік.

Рисунок 5.13 - Результати попарного порівняння кандидаток

Для підрахунку кількості перемог Оли введемо у клітинку AC2 формулу масиву (5.12) (не забувайте, що уведення формули здійснюється комбінацією CTRL+SHІFT+ENTER)

=СУММ(ЕСЛИ(Y2:AB2>СУММ($B$1:$E$1)/2;1)) (5.12)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки AC3-AC5. Результат показаний на рис. 5.14.

Рисунок 5.14 - Підрахунок кількості перемог кандидаток у парах

Для визначення переможця за правилом одеситів введемо у клітинку AD2 формулу (5.13):

=ЕСЛИ(AC2=3;"+";"") (5.13)

а потім за допомогою маркера заповнення скопіюємо неї у клітинки AD3-AD5. Та "кандидатка", напроти якої є знак "+", буде переможцем. Таким чином, переможцем за правилом одеситів є Оксана. Сховаємо стовпці Y-AC і глянемо на остаточний результат (рис. 5.15).

Рисунок 5.15 - Визначення переможця 4-го туру

Питання: як фахівці з теорії прийняття рішень називають правила львів'ян, киян, харків'ян і одеситів?

Завдання 5.2. Реалізувати в середовищі табличного процесора Mіcrosoft Excel рішення задачі прийняття колективних рішень для п'яти кандидатів і семи груп виборців. Одержати результати для наступного профілю голосування:

1

1

1

1

1

1

1

c

d

c

b

e

d

c

a

a

e

d

d

e

a

e

e

d

a

a

a

e

b

c

a

e

c

b

b

d

b

b

c

b

c

d

5.5 Зміст звіту

Вимоги до звіту див. у лабораторній роботі №1.