САПИС лабораторная работа 6 Вариант 6
.docМинистерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Лабораторная работа №6 тема: «Принципы решения неструктурированных проблем. Метод полного попарного сопоставления» по курсу «Системный анализ и проектирование информационных систем»
Вариант 6.
Минск 2009
Исходные данные: Исследования показали, что в областных городах недостаточно развита коммуникационная сеть. Местные власти приняли решение улучшить состояние связи, для чего разработали несколько проектов решения данной проблемы и предложили их рассмотреть комиссии из двух экспертов:
-
оснастить город таксофонами
-
увеличить количество телефонных станций
-
сделать более доступной мобильную связь, введя специальные областные тарифные планы.
Матрица попарного сопоставления альтернатив приведена ниже (размер шкалы 18):
-
E1
Z1
Z2
Z3
E2
Z1
Z2
Z3
Z1
-
13/18
1/18
Z1
-
11/18
4/18
Z2
5/18
-
7/18
Z2
7/18
-
5/18
Z3
17/18
11/18
-
Z3
14/18
13/18
-
где E1..i – эксперты, Z1..j – объекты экспертизы.
Определить наиболее предпочтительный вариант.
Постановка задачи: Искать наиболее предпочтительный вариант рекламной компании будем методом полного попарного сопоставления.
Описание метода: Пусть имеется m экспертов: E1, E2,…, Em и n целей: Z1, Z2,…, Zn. Каждый эксперт проводит попарное сопоставление целей в прямом и обратном направлениях, формируя матрицу частот, превалирования цели друг над другом, причем общее число суждений эксперта определяется формулой N = n(n - 1). В прямом и обратном направлении, т.е. заполняем не только наддиагональную часть. Это более точный метод. В этих условиях веса целей определяются следующим образом:
1. Формируются матрицы частот (каждый эксперт заполняет свою матрицу). Смысл частот: характеризуют предпочтение одной цели перед другой.
-
Ej
Z1
Z2
…
Zn
Z1
-
f(z1/z2)j
…
f(z1/zn)j
Z2
f(z2/z1)j
-
…
f(z2/zn)j
…
…
…
-
…
Zn
f(zn/z1)j
f(zn/z2)j
…
-
2. Определяются оценки предпочтений:
Сначала задаем j и т.д.
3. Определяются нормированные оценки:
4. Вычисляются искомые веса целей:
Решение: Оценки предпочтений:
-
f
1
2
3
1
14/18
12/18
28/18
2
15/18
12/18
27/18
Нормированные оценки: N = 3*2 = 6
-
f
1
2
3
1
14/108
12/108
28/108
2
15/108
12/108
27/108
Искомые веса целей:
ω1 = (14/108 + 15/108) / (108/108) = 0,269; ω2 = 0,222; ω3 = 0,509;
Наиболее предпочтительным вариантом будет ω3 (сделать более доступной мобильную связь, введя специальные областные тарифные планы).
Исходный текст программы: public class L6 {
/**
* @param args
*/
public static void main(String[] args) {
String variantNames[] = {"оснастить город таксофонами",
"увеличить количество телефонных станций",
"сделать более доступной мобильную связь, введя специальные областные тарифные планы"};
//Введем исходную матрицу попарного сопоставления альтернатив
float s[][][] = {{{(float)13/18, (float)1/18}, {(float)5/18, (float)7/18}, {(float)17/18, (float)11/18}},
{{(float)11/18, (float)4/18}, {(float)7/18, (float)5/18}, {(float)14/18, (float)13/18}}};
//оценки предпочтений
float f[][] = new float[s.length][s[0].length];
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < s[i].length; j++) {
for (int k = 0; k < s[i][j].length; k++) {
f[i][j] += s[i][j][k];
}
}
}
//нормированные оценки
int n = s[0].length * (s[0].length - 1);
float sum = 0;
for (int i = 0; i < f.length; i++) {
for (int j = 0; j < f[i].length; j++) {
f[i][j] /= n;
sum += f[i][j];
}
}
//Найдем веса целей
float w[] = new float[s[0].length];
for (int i = 0; i < s[0].length; i++) {
for (int j = 0; j < s.length; j++) {
w[i] += f[j][i];
}
w[i] /= sum;
}
//Найдем наилутший вариант
float maxW = w[0];
int variant = 0;
for (int i = 1; i < w.length; i++) {
if (w[i] > maxW) {
maxW = w[i];
variant = i;
}
}
System.out.println("Наиболее предпочтительным вариантом будет вариант: " + variantNames[variant]);
}
}
Результат работы программы: Наиболее предпочтительным вариантом будет вариант: сделать более доступной мобильную связь, введя специальные областные тарифные планы