Белорусский государственный университет информатики и радиоэлектроники
Кафедра экономической информатики
Контрольная работа по дисциплине САиПИС
Вариант 6
Проверила: Выполнила:
Живицкая Е.Н. студентка
гр.772303
Захарченко М.М
Минск 2010
СОДЕРЖАНИЕ:
1 Описание задачи…………………………………………………….……...3
2 Решение задачи (ручной способ)………………………………….……….4
3 Листинг кода………………………………………………..………….……6
4 Руководство пользователя……………………..……………………….…..10
5 Выводы………………………………………………………………...…...13
1 Описание задачи
Для продвижения товаров и услуг на рынке холдингу необходимо провести дополнительные рекламные мероприятия. Эксперт из отдела сбыта проводит анализ четырех вариантов решения этого вопроса :
1) создание интернет - магазина;
2) введение круглосуточного режима работы, увеличение кадров;
3) открытие еще одного филиала;
4) усилить рекламу в СМИ.
Матрица оценок предложенных вариантов:
Определить наиболее информативный способ расширения и рекламы методом парных и последовательных сравнений.
2 Решение задачи (ручной способ)
Для решения задачи методом парных сравнений эксперт проводит оценку четырех целей, которые связаны с решением транспортной проблемы:
- создание интернет - магазина;
- введение круглосуточного режима работы, увеличение кадров;
- открытие еще одного филиала;
- усилить рекламу в СМИ.
Согласно этому методу осуществляются парные сравнения целей во всех возможных сочетаниях. В каждой паре выделяется наиболее предпочтительная цель. И это предпочтение выражается с помощью оценки.
В первую очередь составляется матрица бинарных предпочтений:
Затем определяем цену каждой цели, путем суммирования булевых переменных по строкам и получаем:
= 3; = 0; = 2; = 1.
Находим искомые веса целей:
=
= 3/6 = 0,5;
= 0;
= 2/6 = 0,33;
= 1/6 = 0,17
Проверка правильности расчета:
Получаем следующий порядок предпочтения целей:
; ; ; ;
Лучший вариант 1 - создание интернет – магазина, так как искомые веса целей самое большое: 0,5
Для решения задачи методом последовательных сравнений необходимо, что бы эксперт провел оценку четырех целей, которые связаны с решением транспортной задачи, а затем:
Расположить цели в виде массива в порядке убывания их важности и назначим предварительные оценки , , , Выставляя баллы (баллы выставляются интуитивно):
Выполнить сравнение целей и корректировку их оценок:
(т.е цель сравниваем с комбинацией и );
;
;
.
Допустим, что построить интернет-магазин лучше, чем открытие еще одного филиала и усиление рекламы СМИ, но сумма этих альтернатив составляет 100 («3»+»4» = 100), поэтому производим корректировку оценок:
Запишем скорректированные оценки и вычислим веса целей:
;
Проверка:
Получаем следующий прядок предпочтения целей:
Лучший вариант 1 - создание интернет – магазина.
3 Листинг программы
String cBox = (String) jComboBox1.getSelectedItem();
double [][] rezult = new double [4][2];
if(cBox.equals("Метод парных сравнений"))
{
int matrix [][]={
{0, Integer.parseInt(num1.getText()), Integer.parseInt(num2.getText()),Integer.parseInt(num3.getText())},
{Integer.parseInt(num5.getText()), 0, Integer.parseInt(num7.getText()),Integer.parseInt(num8.getText())},
{Integer.parseInt(num10.getText()), Integer.parseInt(num11.getText()), 0,Integer.parseInt(num13.getText())},
{Integer.parseInt(num15.getText()), Integer.parseInt(num16.getText()), Integer.parseInt(num17.getText()),0}};
rezult = lab.MethodParnihSravnenij(matrix);
}
else{
int mas[][]=new int[4][2];
mas[0][0] = Integer.parseInt(num25.getText());
mas[1][0] = Integer.parseInt(num26.getText());
mas[2][0] = Integer.parseInt(num27.getText());
mas[3][0] = Integer.parseInt(num28.getText());
for(int i=0; i<4;i++){
mas[i][1]=i+1;
}
int tmp1=0, tmp2=0;
//Сортируем цели по возрастанию
for(int i=0; i<4; i++){
for(int j=0; j<4; j++)
if(mas[i][0]<mas[j][0] && i<j){
tmp1 = mas[i][0];
tmp2 = mas[i][1];
mas[i][0]=mas[j][0];
mas[i][1]=mas[j][1];
mas[j][0]=tmp1;
mas[j][1]=tmp2;
}
}
for(int i=0; i<4; i++){
for(int j=1; j<4; j++){
for(int c=2; c<4; c++)
if(mas[i][0]<=mas[j][0]+mas[c][0] && (i<j) && (c>j)){
mas[i][0]+=30;
}
}
}
jTextArea2.setText("Скорректированные оценки целей:\n Z"+(int)mas[0][1]+" = "+mas[0][0]+
"\n Z"+(int)mas[1][1]+" = "+mas[1][0]+
"\n Z"+(int)mas[2][1]+" = "+mas[2][0]+
"\n Z"+(int)mas[3][1]+" = "+mas[3][0]);
// "\n Z"+(int)mas[4][1]+" = "+mas[4][0]);
rezult = lab.MethodPosledovatelnihSravnenij(mas);
}
jTextArea1.setText("Веса целей:\n Z"+(int)rezult[0][1]+" = "+rezult[0][0]+
"\n Z"+(int)rezult[1][1]+" = "+rezult[1][0]+
"\n Z"+(int)rezult[2][1]+" = "+rezult[2][0]+
"\n Z"+(int)rezult[3][1]+" = "+rezult[3][0]);
// "\n Z"+(int)rezult[4][1]+" = "+rezult[4][0]);
String answer = "Лучший вариант: "+(int)rezult[0][1];
JOptionPane.showMessageDialog(null, answer);
}
public double [][] MethodParnihSravnenij(int mas [][]) {
//Определение цены каждой цели
int [] c = new int [4];
int i = 0, j = 0;
for(i=0; i<4; i++) c[i]=0;
for(i=0; i<4; i++){
for(j=0; j<4; j++){
if(i!=j){
c[i]+=mas[i][j];
}
}
}
//Определяются веса целей
int sum = 0;
for(i=0;i<4;i++){
sum+=c[i];
}
double [][] v = new double [4][2];
for(i=0;i<4;i++){
v [i][0]=(double)c[i]/(double)sum;
v [i][1]=i+1;
}
//Сортировка целей по возрастанию
double tmp1=0, tmp2=0;
for(i=0; i<4; i++){
for(j=0; j<4; j++)
if(v[i][0]<v[j][0] && i<j){
tmp1 = v[i][0];
tmp2 = v[i][1];
v[i][0]=v[j][0];
v[i][1]=v[j][1];
v[j][0]=tmp1;
v[j][1]=tmp2;
}
}
return v;
}
public double [][] MethodPosledovatelnihSravnenij(int mas [][]) {
int tmp1=0, tmp2=0;
//Сортируем цели по возрастанию
for(int i=0; i<4; i++){
for(int j=0; j<4; j++)
if(mas[i][0]<mas[j][0] && i<j){
tmp1 = mas[i][0];
tmp2 = mas[i][1];
mas[i][0]=mas[j][0];
mas[i][1]=mas[j][1];
mas[j][0]=tmp1;
mas[j][1]=tmp2;
}
}
//Сравнение целей и корректировка их оценок
for(int i=0; i<4; i++){
for(int j=1; j<4; j++){
for(int c=2; c<4; c++)
if(mas[i][0]<=mas[j][0]+mas[c][0] && (i<j) && (c>j)){
mas[i][0]+=30;
}
}
}
//веса целей
double sum=0;
for(int i=0; i<4; i++){
sum+=mas[i][0];
}
double mas1[][] = new double [4][2];
for(int i=0; i<4; i++){
mas1[i][0]=mas[i][0];
mas1[i][1]=mas[i][1];
}
for(int i=0; i<4; i++){
mas1[i][0]= mas1[i][0]/sum;
}
return mas1;
}
}