Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6_вариант.docx
Скачиваний:
1
Добавлен:
18.09.2019
Размер:
1.32 Mб
Скачать

Белорусский государственный университет информатики и радиоэлектроники

Кафедра экономической информатики

Контрольная работа по дисциплине САиПИС

Вариант 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

Для решения задачи методом последовательных сравнений необходимо, что бы эксперт провел оценку четырех целей, которые связаны с решением транспортной задачи, а затем:

  1. Расположить цели в виде массива в порядке убывания их важности и назначим предварительные оценки , , , Выставляя баллы (баллы выставляются интуитивно):

  1. Выполнить сравнение целей и корректировку их оценок:

(т.е цель сравниваем с комбинацией и );

;

;

.

Допустим, что построить интернет-магазин лучше, чем открытие еще одного филиала и усиление рекламы СМИ, но сумма этих альтернатив составляет 100 («3»+»4» = 100), поэтому производим корректировку оценок:

  1. Запишем скорректированные оценки и вычислим веса целей:

;

Проверка:

Получаем следующий прядок предпочтения целей:

Лучший вариант 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;

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]