1.Постановка задачи.
Управление осуществляется аппаратом, включающим менеджеров различного уровня управления. Высшее звено управления включает: генерального директора и главных специалистов(гл. конструктор, гл. технолог). Среднее звено управления включает: начальников цехов и отделов. Низшее звено: мастера, бригадиры и т.д.
Распределение полномочий, ответственности и обязанностей между менеджерами различного уровня может быть следующим:
Высшие менеджеры:
определение цели;
формирование организационной структуры;
подбор кадров среднего уровня;
распределение прибыли.
Менеджеры среднего уровня:
планирование работ;
подбор кадров низшего уровня.
Менеджеры низшего уровня:
организация работ;
распределение производственных заданий.
Рабочие выполняют работу, за что им выплачивается премия из прибыли.
2.Описание предметной области.
Менеджер имеет табельный номер, фамилию, имя, отчество. Менеджер высшего уровня является менеджером и имеет высокий уровень управления. Менеджер среднего уровня является менеджером и имеет средний уровень управления. Менеджер низшего уровня является менеджером и имеет низший уровень управления.
Генеральный директор имеет личный счет и является менеджером высшего уровня.
Главный конструктор имеет конструкторское бюро и является менеджером высшего уровня.
Главный технолог имеет технический отдел и является менеджером высшего уровня.
Начальник цеха имеет цех и является менеджером среднего уровня.
Начальник отдела имеет отдел и является менеджером среднего уровня.
Мастер имеет участок и является менеджером низшего уровня.
Бригадир имеет бригаду и является менеджером низшего уровня.
Менеджер высшего уровня подбирает менеджера среднего уровня. Менеджер среднего уровня подбирает менеджера низшего уровня.
Менеджер высшего уровня:
-распределяет прибыль
-определяет цель
Менеджер низшего уровня планирует работу.
Менеджер низшего уровня:
-организует работу;
-распределяет производственное задание.
Рабочий имеет Ф.И.О.
Рабочий имеет номер цеха
Рабочий:
-получает премию;
-выполняет работу.
Премия выплачивается из прибыли.
Производственное задание обуславливает работу.
3. Переход от описания предметной области к семантической сети
Вершины в семантической сети показывают объект предметной области, концепт, ситуацию, а дуги - это отношение между ними.
Предложение из предметной области:
Менеджер низшего уровня:
-организует работу;
-распределяет производственное задание,
В данном случае Менеджер низшего уровня является агентом (инициатор действия), а работа и производственное задание – объектом (подвергающимся действию).
Семантическая сеть может быть реализована программными средствами (языком Пролог). Данная часть сети будет иметь следующий вид:
have(manager,fio).
have(manager,tab_nomer).
is(h_manager,manager).
have(X,Y):-is(X,Y),have(X,Y).
have(h_manager,h_level).
raspred(h-manager,profit).
opredel(h_manager,target).
Объекты, понятия и события, определенные в предметной области в пролог – программе будут иметь следующее обозначение:
Manager- менеджер.
H_manager- менеджер высшего уровня.
M_manager- менеджер среднего уровня.
L-manager- менеджер низшего уровня.
Dir- генеральный директор.
Tech- главный технолог.
Cons- главный конструктор.
Nach_ceh- начальник цеха.
Nach_otd- начальник отдела.
Master- мастер.
Brig- бригадир.
Worker- рабочий.
Fio- ФИО.
Ceh- цех.
Tab_nomer- табельный номер.
High_level- высокий уровень управления.
Mid_level- средний уровень управления.
Low_level- низкий уровень управления.
Account- личный счет.
N_office- номер офиса.
N_cons_buro- номер конструкторского бюро.
N_ceha- номер цеха.
N_otdela- номер отдела.
N_uchastka- номер участка.
N-brigada- номер бригады.
Profit- прибыль.
Target- цель.
Premia- премия.
Work- работа.
Proiz_zad- производственное задание.
Is- является.
Raspred- распределяет.
Opredel- определяет.
Podbir- подбирает.
Planir- планирует.
Organiz- организует.
Have- имеет.
Vypol- выплоняет.
Obysl- обуславливает.
Polych- получает.
Vypl_is- выплачивается из.
6. Пролог-программа
predicates
is(string,string)
raspred(string,string)
opredel(string,string)
podbir(string,string)
planir(string,string)
organiz(string,string)
have(string,string)
vypol(string,string)
obysl(string,string)
polych(string,string)
vypl_is(string,string)
clauses
is(l_manager,manager).
is(m_manager,manager).
is(h_manager,manager).
is(dir,h_manager).
is(tech,h_manager).
is(cons,h_manager).
is(nach_ceh,m_manager).
is(nach_otd,m_manager).
is(master,l_manager).
is(brig,l_manager).
have(worker,fio).
have(worker,ceh).
have(manager,fio).
have(manager,tab_nomer).
have(h_manager,high_level).
have(m_manager,mid_level).
have(l_manager,low_level).
have(dir,account).
have(cons,n_cons_byro).
have(tech,n_office).
have(nach_ceh,n_ceha).
have(nach_otd,n_otdela).
have(master,n_uchastka).
have(brig,n_brigada).
have(X,Y):- is(X,Q),
have(Q,Y).
raspred(h_manager,profit).
raspred(X,proiz_zad):- podbir(m_manager,X),
is(X,manager).
raspred(X,Y):- is(X,Z),raspred(Z,Y).
opredel(h_manager,target).
opredel(X,Y):- is(X,Z),opredel(Z,Y).
podbir(h_manager,m_manager).
podbir(X,l_manager):- podbir(h_manager,X),
is(X,manager).
podbir(X,Y):- is(X,Z),podbir(Z,Y).
podbir(X,Y):- is(Y,Z),podbir(X,Z).
planir(X,work):- opredel(Z,target),
podbir(Z,X),Z=h_manager.
organiz(X,Y):- planir(Z,Y),
podbir(Z,X),Z=m_manager.
vypol(X,Y):- have(X,ceh),
planir(m_manager,Y),
organiz(l_manager,Y).
polych(X,premia):- vypol(X,work).
vypl_is(X,Y):- polych(worker,Y),
raspred(h_manager,X).
obysl(X,Y):- raspred(l_manager,X),
planir(m_manager,Y),
organiz(l_manager,Y).
Возможные запросы к БЗ
Запрос: Что имеет Генеральный директор?
Goal: have (dir, X).
Ответ: – личный счет (X= account).
высокий уровень управления (X= high_level).
Фамилию, имя, отчество (X=fio).
Табельный номер (X=tab_nomer).
Запрос: Кто является менеджером низшего уровня?
Goal:is(X,l_manager).
Ответ: - мастер(X=master).
- бригадир (X=brig).
Запрос: Планирует кто, что?
Goal:planir(X,Y).
Ответ:
менеджер среднего уровня, работу (X=m_manager,Y=work).
начальник цеха, работу (X=nach_ceh,Y=work).
начальник отдела, работу (X=nach_otd,Y=work).
Запрос: Кто организует работу?
Goal:organiz(X,work).
Ответ:
менеджер низшего уровня (X=m_manager).
мастер (X=master).
бригадир (X=brig).
Запрос: кто распределяет что?
Goal:raspred(X,Y).
Ответ:
менеджеры высшего уровня, прибыль (X=h_manager,Y=profit).
менеджеры низшего уровня, производственное задание (X=l_manager,Y=proiz_zad).
директор, прибыль (X=dir,Y=profit).
главный технолог, прибыль (X=tech,Y=profit).
главный конструктор, прибыль (X=cons,Y=profit).
мастер, производственное задание (X=master,Y=proiz_zad).
бригадир, производственное задание (X=brig,Y=proiz_zad).