close

Вход

Забыли?

вход по аккаунту

?

курсоваяНИНА

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ
Кафедра Информационных Систем
Курсовая работа
по дисциплине "Функциональное и логическое программирование"
Выполнила: студентка группы ПО-10-1
Селезнева Н.А.
Проверил: Бутырин О.В.
Иркутск
2012
Оглавление
I часть3
1. Постановка задачи3
2. Задание5
3. Программа6
4. Результат10
Сравним с самостоятельными расчетами:13
5. Вывод13
II часть14
Эвристический поиск.16
Слепой поиск в глубину16
Вывод17
I часть
1. Постановка задачи
Очень часто проведение экспертизы объекта исследования зависит от множества объективных и субъективных параметров и характеризуется значительным числом локальных показателей. Оперирование всем набором используемых критериев требует значительных материальных и временных затрат на сбор и обработку статистической информации и не всегда является оправданным. Поэтому необходимо, используя методы анализа данных и теории принятия решений, научиться определять значимость локальных показателей и строить на их базе линейную свертку, которую можно было бы использовать для построения интегрированной оценки объекта исследования. Такая свертка имеет вид:
(1)
где - параметры, которые определяются на основе решения последовательности задач линейного программирования (ЛП) и с помощью методов игрового моделирования.
Пусть в распоряжении исследователя имеется статистическая информация об объекте исследования, которая оценивается по показателям. Сформируем эту информацию в виде матрицы:
(2)
где - число рассматриваемых объектов.
Важным элементом решения подобных задач является назначение коэффициентов весомости каждого из параметров. При этом распространенный метод - определение коэффициентов веса с помощью экспертов. Субъективность, возникающая в результате экспертизы, и, как следствие, методики в целом, снижается пропорционально увеличению уровня квалификации экспертов. Задача эксперта на первом этапе сводится к попарному сравнению параметров оценки, которое ведется по принципу - критерий строки к критерию столбца. Или, формально, к определению индексного множества пар:
(3)
для которых = , . Здесь - значение коэффициента весомости в баллах. При обратном сравнении таких же критерия строки к критерию столбца сумма обоих должна быть равна максимальному значению выбранной оценочной шкалы. Правила выставления экспертных оценок следующие:
=- критерии равнозначны;
- критерий строки значимее критерия столбца;
- критерий строки имеет меньшую значимость в отношении критерия столбца.
На основе множества A формируется результирующая матрица параметров оценки.
Далее, попарно сравниваем исследуемые товара по первому оценочному параметру. Обработка высказываний экспертов осуществляется в порядке аналогичном (3). На основе экспертных оценок формируем матрицу. Аналогичным образом обрабатываются данные товара по каждому из оставшихся показателей с формированием соответствующих матриц.
На следующем этапе определяем среднюю значимость каждого критерия по отношению к другим оценочным параметрам по правилу:
,(4)
где - значение оценочного параметра матрицы показателей.
Далее определяем средние оценки товара по каждому показателю согласно зависимости:
, , (5)
где - значение средней оценки товара по каждому показателю.
Итоговый расчет оценочной функции для каждой товара определяем по правилу:
, (6)
где cm и fmj соответственно значение оценочного параметра матрицы показателей и значение средней оценки товара по каждому показателю, которые определяются по правилам (4 и 5).
В результате будет построена агрегированная свертка, включающая все локальных показателей:
(7)
Результатом решения итоговой задачи и является та конечная линейная свертка (6), по которой может производиться количественное оценивание качественных параметров товара.
2. Задание
Вариант: 17.
Размерность шкалы экспертной оценки: 21.
Количество критериев оценки: 3.
Количество объектов исследования:3.
Критерий для выбора решений: Лапласа.
Характер оценочной функции: мультипликативный.
Критерий Лапласа: применяется, если можно предполагать, что все варианты внешних условий одинаково вероятны. Для каждого решения находится средняя оценка по всем вариантам внешних условий (средний выигрыш):
В курсовой работе оцениваются 3 губных помады: Avon, Oriflame, Faberlic . По трём критериям: Блеск(blesk), Стойкость(stoikost), Насыщенность цвета(cvet).
Целью является выбрать губную помаду, которая имеет максимальную оценку.
Исходные данные:
Пользователь вводит с клавиатуры оценки приборов по каждому показателю: KRITERII stoikost
blesk stoikostcvetblesk-78stoikost14-9cvet 1312-
blesk
AvonOriflameFaberlicAvon-1214Oriflame9-11Faberlic710-
AvonOriflameFaberlicAvon-88Oriflame13-11Faberlic1310-
cvet
AvonOriflameFaberlicAvon-1710Oriflame4-12Faberlic119-
Выходные данные:
В программе осуществляется вывод помады, которая имеет максимальную оценку. Также по запросу пользователя осуществляется вывод другой информации: исходные данные по четырем таблицам, средние значения показателей, средние оценки приборов по каждому показателю, итоговая оценка и повторный вывод выбранной помады.
3. Программа
(CLEAR-SCREEN)
(print ************************************************************************)
(print ------------------------------------------------------------------------)
(print ----------------------------KURSOVAYA_RABOTA----------------------------)
(print ---------------------------------PO_FLP---------------------------------)
(print ------------------------VIPOLNILA_STUDENTKA_PO-10-1---------------------)
(print -----------------------------SELEZNYOVA_NINA----------------------------)
(print -----------------------------VIBOR-POMADI-------------------------------)
(print ------------------------------------------------------------------------)
(print ************************************************************************)
(terpri)
;функция ввода данных в таблицу
(defun proverka (x) (
(print x)
(setq p (read))
(cond ((> p 21) (return (proverka 'neverno!_vvedite_snova:))) (x (terpri) (return p)) )))
;обращение к функции ввода данных в таблицу (print -----------------------------KRITERII-----------------------------------)
(setq a12 (proverka vvedite_blesk_k_stoikost))
7
(setq a13 (proverka vvedite_blesk_k_cvet))
8
(setq a21 (proverka vvedite_stoikost_k_blesk))
14
(setq a23 (proverka vvedite_stoikost_k_cvet))
9
(setq a31 (proverka vvedite_cvet_k_blesk))
13
(setq a32 (proverka vvedite_cvet_k_stoikost))
12
(print -----------------------------blesk-----------------------------)
(setq b12 (proverka vvedite_otnoshenie_Avon_k_Oriflame))
12
(setq b13 (proverka vvedite_otnoshenie_Avon_k_Faberlic))
14
(setq b21 (proverka vvedite_otnoshenie_Oriflame_k_Avon))
9
(setq b23 (proverka vvedite_otnoshenie_Oriflame_k_Faberlic))
11
(setq b31 (proverka vvedite_otnoshenie_Faberlic_k_Avon))
7
(setq b32 (proverka vvedite_otnoshenie_Faberlic_k_Oriflame))
10
(print -----------------------------stoikost--------------------------) (setq c12 (proverka vvedite_otnoshenie_Avon_k_Oriflame))
8
(setq c13 (proverka vvedite_otnoshenie_Avon_k_Faberlic))
8
(setq c21 (proverka vvedite_otnoshenie_Oriflame_k_Avon))
13
(setq c23 (proverka vvedite_otnoshenie_Oriflame_k_Faberlic))
11
(setq c31 (proverka vvedite_otnoshenie_Faberlic_k_Avon))
13
(setq c32 (proverka vvedite_otnoshenie_Faberlic_k_Oriflame))
10
(print -----------------------------cvet-----------------------------)
(setq d12 (proverka vvedite_otnoshenie_Avon_k_Oriflame))
17
(setq d13 (proverka vvedite_otnoshenie_Avon_k_Faberlic))
10
(setq d21 (proverka vvedite_otnoshenie_Oriflame_k_Avon))
4
(setq d23 (proverka vvedite_otnoshenie_Oriflame_k_Faberlic))
12
(setq d31 (proverka vvedite_otnoshenie_Faberlic_k_Avon))
11
(setq d32 (proverka vvedite_otnoshenie_Faberlic_k_Oriflame))
9
;Функция Лапласа для таблицы KRITERII
(defun laplas1 (z a b ) (set z( / (+ a b) 2)))
(laplas1 sr1 a12 a13)
(laplas1 sr2 a21 a23)
(laplas1 sr3 a31 a32)
;Функция Лапласа для таблицы blesk
(laplas1 sr5 b12 b13)
(laplas1 sr6 b21 b23)
(laplas1 sr7 b31 b32)
;Функция Лапласа для таблицы stoikost
(laplas1 sr8 c12 c13)
(laplas1 sr9 c21 c23)
(laplas1 sr10 c31 c32)
;Функция Лапласа для таблицы cvet
(laplas1 sr11 d12 d13)
(laplas1 sr12 d21 d23)
(laplas1 sr13 d31 d32)
;функция, представляющая вычисление мультипликативной оценочной функции
(defun znachimost ( z a b c d e f )
(set z (* (* a b) (* c d) (* e f)) ) )
;функция, представляющая вычисление мультипликативной оценочной функции для таблиц
( znachimost f1 sr1 sr5 sr2 sr8 sr3 sr11 )
( znachimost f2 sr1 sr6 sr2 sr9 sr3 sr12)
( znachimost f3 sr1 sr7 sr2 sr10 sr3 sr13)
(print ' Avon:)
(print f1)
(print ' Oriflame:)
(print f2)
(print ' Faberlik:)
(print f3)
;функция сравнения
(defun sravnenie ()
((cond ((and (= f2 f3) (= f2 f1)) 'odinakovi_po_kriteriyam)
((cond ((and (= f1 f2) (> f1 f3)) 'avon_oriflame)
((cond ((and (= f1 f3) (> f1 f2)) 'avon_faberlik)
((cond ((and (= f2 f3) (> f2 f1)) 'oriflame_faberlik)
((cond ((and (= f1 f2) (< f1 f3)) 'faberlik)
((cond ((and (= f1 f3) (< f1 f2)) 'oriflame)
((cond ((and (= f2 f3) (< f2 f1)) 'avon)
(if (not(= f1 f2)) (if (not(= f1 f3)) (if (not(= f2 f3))
(if ( > f1 f2)(if ( > f1 f3)'avon 'faberlik) (if ( > f2 f3) 'oriflame 'faberlik)
) ) ) )
)) )) )) )) )) )) ))
)
(setq best(sravnenie))
(print luchshaya_pomada:)
(print best)
;функция вывода меню
(defun info ()
((print ishodnie_dannie_tab_KPITERII:________1) (print ishodnie_dannie_tab_BLESK:________2)
(print ishodnie_dannie_tab_STOIKOST:________3)
(print ishodnie_dannie_tab_CVET:________4)
(print srednie_znacheniya_pokazatelei:________5)
(print srednie_znachenia_po_kashdomy_pokazalely:________6)
(print itogovaia_ocenka:________7)
(print luchshaya_pomada:________8)
))
;функция вывода таблицы KRITERII
(defun q ( x2 x3 x4 x6 x7 x8)
((print (list blesk 0 x2 x3 ))
(print (list stoikost x4 0 x6))
(print (list cvet x7 x8 0))
))
;функция вывода таблицы BLESK STOIKOST CVET
(defun k (x2 x3 x4 x6 x7 x8)
((print (list avon 0 x2 x3))
(print (list oriflame x4 0 x6))
(print (list faberlik x7 x8 0)) ))
функция вывода таблицы по каждому критерию (defun s (x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 )
((print (list avon x1 x2 x3 x4))
(print (list oriflame x5 x6 x7 x8 ))
(print (list faberlik x9 x10 x11 x12))))
(setq zag1 (list kriterii: blesk stoikost cvet))
(setq zag2 (list avon oriflame faberlik))
(setq zag3 (list blesk stoikost cvet))
(setq zag4 (list pomada: blesk stoikost cvet))
(defun sredn (a b c ) (print (list a b c )))
;рекурсия (defun vuvod ()
((info) (terpri)
(princ Vvedite_nomer:)
(setq z (read))
(print ---------------------------------------------------------------------)
(cond ((= z 1) ((print ishodhie_dannie_tab1:) (terpri) (print zag3) (q a12 a13 a21 a23 a31 a32 )))
((= z 2) ((print ishodhie_dannie_tab2:) (terpri) (print zag2) (k b12 b13 b21 b23 b31 b32 )))
((= z 3) ((print ishodhie_dannie_tab3:) (terpri) (print zag2) (k c12 c13 c21 c23 c31 c32)))
((= z 4) ((print ishodhie_dannie_tab4:) (terpri) (print zag2) (k d12 d13 d21 d23 d31 d32)))
((= z 5) ((print srednie_znachenia_pokazatelei:) (terpri) (print zag3) (sredn f1 f2 f3)))
((= z 6) ((print srednii_ocenki_po_kagdomu_pokazateliy:) (terpri) (print zag4) ( s sr1 sr5 sr8 sr11 sr2 sr6 sr2 sr9 sr2 sr12 sr3 sr7 sr3 sr10 sr3 sr13)))
((= z 7) ((print itogovaia_ocenka:)(terpri) (print zag2) (print (list f1 f2 f3))))
((= z 8) ( (princ the_best:) (print best)))
)
(print -----------------------------------------------------------------)
(princ eche-da-1_)
(setq s (read))
(terpri)
(cond ((= s 1) (vuvod))
(print -----------------------------vse---------------------------------)
)
))
4. Результат
В результате работы программы обработаны исходные данные.
1. Таблица KRITERII
2. Таблица BLESK
3. Таблица STOIKOST
4. Таблица CVET
5. Среднее значение показателей (Характер оценочной функции: мультипликативный)
6. Средние значения по каждому показателю(Критерий для выбора решений: Лапласа.) 7. Итоговая оценка
8. Лучшая помада
Сравним с самостоятельными расчетами:
1.Находим среднюю значимость первого критерия "Блеск" по отношению к критериям "Стойкость" и "Насыщенность цвета". с1 = (7+8)/2=7,5
Аналогично находим средние для критерия "Стойкость" и "Насыщенность цвета":
с2 = (14+9)/2=11,5 для "Стойкость".
с3 = (13+12)/2=12,5 для "Насыщенность цвета".
Таким образом, мы видим, что для нас важнее всего "Насыщенность цвета" товара, далее с небольшим отрывом следуют критерии "Стойкость", а затем "Блеск".
2. Находим средние оценки товара Avon, Oriflame и Faberlic по критерию "Блеск":
f11 = ( 12+14 ) / 2 = 13( для товара 1 по отношению ко 2 и 3 товара)
f12 = ( 9+11 ) / 2 = 10 ( для товара 2 по отношению ко 1 и 3 товара)
f13 = ( 7+10 ) / 2 = 8,5 ( для товара 3 по отношению ко 1 и 2 товара)
3. Находим средние оценки товара Avon, Oriflame и Faberlic по критерию "Стойкость":
F21 = ( 8+8 ) / 2 =8( для товара 1 по отношению ко 2 и 3 товара)
F22 = ( 13+11 ) / 2 = 12 ( для товара 2 по отношению ко 1 и 3 товара)
F23 = ( 13+10 ) / 2 = 11,5 ( для товара 3 по отношению ко 1 и 2 товара)
4. Находим средние оценки товара Avon, Oriflame и Faberlic по критерию "Насыщенность цвета":
F31 = ( 17+10 ) / 2 =13,5( для товара 1 по отношению ко 2 и 3 товара)
F32 = ( 4+12) / 2 = 8 ( для товара 2 по отношению ко 1 и 3 товара)
F33 = ( 11+9 ) / 2 = 10 ( для товара 3 по отношению ко 1 и 2 товара)
5.Находим оценку итоговой функции помад по критериям "Блеск", "Стойкость" и "Насыщенность цвета"( мультипликативный характер оценочной функции (множители итоговой функции не суммируются, а перемножаются)):
Fa = с1 f11 * с2 f21 * с3 f31 = 7.5 * 13 * 11,5 * 8 * 12,5 * 13,5 = 1513687
Fb = с1 f12 * с2 f22 * с3 f32 = 7.5 * 10 * 11,5 * 12* 12,5* 8 = 1035000
Fc = с1 f13 * с2 f23 * с3 f33 = 7.5 * 8,5 *11,5 * 11,5 *12,5 * 10 = 1053867
5. Вывод
В данной работе мы познакомились с принципами разработки экспертной системы, а также с некоторыми возможностями среды "MuLisp". Сформулировав для себя конкретную задачу, я выделила возможные альтернативы и критерии оценки, провела оценку вариантов на основе разработанного программного кода, осуществляющего принятие конкретного решения.
Методика принятия решений, использованная в курсовой работе:
- шкала оценок пар критериев и пар вариантов - 21-балльная;
- оценочная функция вариантов - мультипликативная;
- критерий для выбора решений - Лапласа.
После проверки работы программы вручную, мы получили идентичные результаты.
II часть
Найдите решение задачи переложив цилиндры на целевую башню в порядке возрастания их диаметра. Задачу решить используя метод пространства состояний на основе слепого и эвристического поиска. Самостоятельно определить критерий эвристической функции. Исходные данные:
Расположение цилиндров - цилиндр №1 - В;
цилиндр №2 - В;
цилиндр №3 - С;
цилиндр №4 - А;
Целевая башня - А.
ε =, где - радиус, U - удаление от целевой вершины.
Примечание: На цилиндры меньшего радиуса нельзя класть цилиндры большего радиуса. Брать можно только по одному цилиндру. Наибольший радиус имеет цилиндр №2, наименьший - цилиндр №1.
Решение: Пусть цилиндры расположены так (1,2,3,4), тогда решение будет иметь вид:
(ВВСА)→ (ВВАА)→ (СВАА)→ (СААА)→ (АААА)
Эвристический поиск.
Слепой поиск в глубину
.
Вывод
При решении задачи с помощью эвристического поиска, происходит зацикливание из которого нет выхода, а при слепом поиске в глубину нам потребовалось всего четыре шага. Это можно объяснить за счет неудачного выбора эвристической функции, т.к. она отводит решение в неверную сторону: выбирает тот вариант, где больше цилиндров на целевой башне, даже если они лежат не в таком порядке, который необходим. Для более быстрого решения задачи в данном случае нужно использовать слепой поиск, в частности алгоритм поиска в глубину. 2
Документ
Категория
Рефераты
Просмотров
14
Размер файла
772 Кб
Теги
курсоваянина
1/--страниц
Пожаловаться на содержимое документа