Файл: Алферова, З. В. Математическое обеспечение экономических расчетов с использованием теории графов.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2024

Просмотров: 80

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.Установление всех ограничений на множестве данных V и операций F.

3.Установление всех функциональных связей на предметном множестве U всех тех ^-объектов, которые составляют данную проблему.

4.Определение возможно полного класса А всех проблем, спе­ цифицированных множествами U и F проблемы щ.

5.Решение вопроса о выборе языковых средств и средств ре­ ализации проблемы, т. е. какие требования необходимо предъяв­

лять классу вычислительных машин в специфицированном проб­

лемой

аспекте,

с тем чтобы можно было описать для

машины

метод

решения

проблемы и ожидать, что машина решит

проблему.

6. Выделение различных вариантов решения проблемы, т. е. уточнение различных пониманий проблемы ai. Нужно заметить, что если известен хороший метод решения проблемы, то она не нуждается в том, чтобы ее изучали или понимали, т. е. аналист, минуя второй этап, переходит к третьему — программированию. Другими словами, после спецификации собственно проблемы не­ обходимо уточнить метод ее решения на основании результатов анализа проблемы на первом этапе.

Поскольку окончательный выбор языка (вернее, языковой си­ стемы) не является точным процессом из-за разнообразия языков и большого числа оценочных критериев выбора, то необходимо выделить конечную совокупность наиболее важных критериев и определить их как доминирующие при выборе конкретных языко­ вых систем. Это можно сделать лишь на основе как результатов анализа конкретной области действия L-языка, так и оценки мощности языковых Ln-множеств, ранее использовавшихся либо в данной среде, либо в примыкающих к ней проблемных средах. Таким образом, основной концепцией определения оценочных кри­ териев и факторов, определяющих схему выбора, является как тип критериев выбора, так и собственно алгоритм выбора, зада­ ваемые средой, специфицированной как область действий L-язы­

ка — DL.

Процесс исследования области действия языков программиро­

вания DL

базируется на следующих

методологических принципах:

1. Необходимо знать возможности различных языков и харак­

теристику

состава основных средств

применяемых L-языков. Для

этого необходим тщательный анализ и изучение достаточно пред­ ставительного класса /.„-языков программирования. Безусловен тот факт, что внимательное изучение языков программирования с их характеристиками поможет пользователю избежать неправиль­ ного выбора конкретно требуемого L-языка.

2. Необходимо знать все типы алгоритмов выбранного для изу­ чения класса А проблем, их конструктивные особенности, а также типы и категории объектов, с которыми работает исследуемое мно­ жество алгоритмов из класса А. Необходимо в результате изуче­ ния строения L-языков уметь подвести базу под те принципы, ко-

143


торые лежат в основе различия

между «хорошим»

и «плохим»

языками. Эта база строится на детальном изучении как

проблем,

которые

должен описывать L-язык, так и способов

реализации

L-языка

в

языковую систему. На

основании

анализа

строения

алгоритмов

из представительного

проблемного

класса

А

возмож­

но сделать

обобщающие выводы

по основным

факторам,

опреде­

ляющим язык программирования как хороший с точки зрения пользователя.

3. Необходимо знать определяющие факторы и основные оце­ ночные характеристики, специфицирующие процесс внедрения и наилучшего применения языка программирования для конкретно задаваемой проблемы из класса А . Этот методологический прин­ цип основан на том, что способ реализации L-языка, т. е. компиля­ тор и вся языковая система в целом определяют оптимальный ба­ ланс между высокой скоростью вычисления исходной программы и эффективностью целевой программы. Отсюда, чтобы выработать набор специфицирующих требований к хорошему языку в аспекте оптимальности реализации L-языка, проводится анализ различных реализаций L-программ или компилирующих систем, т. е. анализ на оптимальность соответствия характеристик языковых систем

мерам

качества,

определяющим

оптимальность реализации.

4.

Необходимо

иметь

строгую

классификацию

как языкового

L, так и проблемного А

классов

по их оценочным

характеристи­

кам. Классификация должна быть строгой в смысле формальности подхода к выбору характеристик, специфицирующих L-языки и алгоритмы из класса А . Кроме того, классификация должна быть унифицированной в смысле соответствия характеристик L-языка и алгоритмов проблем из класса А . Этот принцип своей базой име­ ет тот факт, что выбор L-языка должен производиться из подклас­

са

L N языков

программирования. Сведение

класса

L N к некоторо­

му

подклассу

позволяет конкретизировать

набор

основных оце­

ночных критериев, используемых разрешающим алгоритмом вы­ бора, т. е. становится возможным выделить совокупность наиболее важных критериев, которые являются доминирующими при окон­ чательном выборе языка программирования для конкретного при­ менения. Результатом такого выбора является априорный выбор языка, т. е. выбор языка без учета техники его реализации, но в предположении, что реализация должна отвечать всем мерам ка­ чества.

5. Необходимо иметь единую формальную систему, в рамках которой однозначно определяются L-языки и содержательные ал­ гебры проблем А как алгоритмические системы, т. е. формальная система в таком аспекте интерпретируется как единый способ за­ дания языков программирования и класса изучаемых проблем. Выбранная формальная система должна быть полной в смысле содержательного отображения всех компонент алгоритмических языков и проблемных систем. Кроме того, формальная система должна служить основанием для построения содержательной тео-

144


рии, определяющей разрешимость оценочного алгоритма выбора языков программирования для конкретного применения. Этот ме­ тодологический принцип строится на том основании, что оценочные критерии хорошего языка и требования, предъявляемые к языку, подходящему для данного класса проблем, можно получить лишь при том условии, что анализ языкового и проблемного множеств проводится в строгом соответствии с основными характеристика­ ми, заданными в единой системе измерения. Таким образом, за­ дача построения разрешающего оценочного алгоритма выбора языков программирования для конкретного применения является комплексной.

Научный аспект проблемы связан с выявлением факторов и критериев, определяющих сущность алгоритма выбора, и с непо­ средственным конструированием схемы алгоритма. Как первое, так и второе должно базироваться на научном обобщении резуль­ татов анализа и классификации языкового L n и проблемного А классов. Кроме того, построение системы оценочных функций сво­ им основанием имеет оценочные характеристики, получаемые пре­ образованием оценочных параметров в числовые эквиваленты. С помощью этих функций с достаточной степенью вероятности и однозначности можно определить меру качества выбираемого из

семейства языков с одним модусным признаком L-языка

(или

языковой системы). Оценочные параметры возможно

получить

лишь как результат анализа L-программ и проблем из класса А .

Организационный

аспект проблемы — это

способ

организации

входной и рабочей информации для оценочного

алгоритма,

а

так­

же возможный способ заданий общей системы выбора как

некото­

рой операционной системы, работающей в

режиме

диалога.

 

Пусть дан некоторый абстрактный язык L

из

семейства

L n ,

определяемый на множестве констант L-языка и множестве пове­

лительных и декларативных сообщений. Тогда

L-язык

можно

оп­

ределить как параметризированную

систему

 

 

 

 

 

 

 

 

P(L)=P(/, ,

h,

/ 3 ,

/ 4 )

,

 

 

 

 

где

l\, h, h, U — четыре основных параметра

L-языка.

 

 

 

 

Параметр U—универсальное

множество

абстрактных £-объек-

тов,

определяемых

в предметной

области

UE,

например,

числа,

символы строк, символы операций и функций, специальные сим­ волы, т. е.'полная номенклатура компонент, которые могут исполь­ зоваться при формировании проблемы.

Параметр

1% — основное множество соотношений,

заданных на

f/в-множестве.

 

Параметр

/3 — форма базовой структуры L-языка.

Это отно­

сится к основным методам, по которым ассемблируются

сообщения

в L-языке.

Ц — совокупность правил способа представления ба­

Параметр

зовых форм

L-языка, указывающих на соответствие между форма-

10. Заказ 4230.

145


ми базовой структуры и конкретной формой представления сооб­ щения.

Параметр U языковой системы программирования может иметь различные конкретные значения для заданной параметрами l2, h абстрактной схемы языка. В зависимости от фактического значе­ ния /4 одна и та же схема абстрактного языка может принимать различные интерпретации. Но в любой из них конкретно представ­ ляемые L-языки должны быть эквивалентны, если они определены одними и теми же 12, / 3 . Термин «базовая форма» содержательно эквивалентен основному конструктивному представлению выраже­ ний операторов, объявлений, программы в целом для конкретного языка программирования.

Параметр /4 зависит от фактического преемника, т. е. вычис­

лительной

машины

Mj

или

конструктивной

модели носителя

язы­

ка. Если

базовую

структуру языка

представить

как внутренний

L-язык некоторой

абстрактной

машины Mj, то

Ц (или

правила

представления

базовой

структуры)

можно

интерпретировать

как

гипотетический

преобразователь

сообщений

L-языка, а 12 (основ­

ное множество

соотношений) — как

библиотеку стандартных

под­

программ

или

некоторые

информационные

структуры,

которые

включаются при написании сообщений согласно схеме, заданной базовой структурой L-языка. По аналогии параметр h можно от­ нести к совокупности возможных промежуточных и конечных зна­ чений, которые получаются в процессе вычисления строк по задан­

ной схеме

/ 3 .

С тем, чтобы

параметрическая

система Р позволяла

отображать

не

только содержательный

состав алгоритмической

системы, но и представляла

формально

через

параметры строение

и смысл функций алгоритма информационной системы / или строе­

ние

и смысл примитивных

процедур, удобно расчленить параметр

на его составляющие

компоненты. Первая будет определять

форму, или синтаксис, вторая — смысл, или семантику.

Покажем, каким образом параметризуется алгоритмическая система проблем. В этом случае информационная система есть совокупность проблем или класс А взаимосвязанных проблем. Пусть мы имеем некоторую абстрактную проблему щ из класса А, определенную на предметном множестве UA. Тогда проблемный класс А однородных проблем а* в системе параметров предста­ вится следующим образом:

 

Р ( Л ) = Р ( а ь

а2, а3 , а 4 ) .

Параметр

а\ — вся номенклатура

^-объектов, определенных

для класса проблем А.

 

 

Параметр

а2 — конкретное множество ^-объектов, определяю­

щих решаемую проблему at.

всех

форм элементарных проце­

Параметр

аз — совокупность

дур, перерабатывающих информацию, в частности, все выраже­

ния,

функции и операции, применяемые при решении проб­

лемы

CLi.

146


Параметр ой — совокупность всех возможных представлений алгоритмов, решающих проблему аг- или проблемы из класса Л.

Рассмотрим, каким образом возможно построить процесс срав­ нительного анализа алгоритмических систем различной природы в рамках параметризированной системы Р и как система парамет­ ров определяет схему анализа. Пусть даны две параметризиро-

ванные системы:

языковая

Р

(L)

12, / 3 ,

/ 4 )

и проблемная

Р ( Л ) = Р ( а ь

а2,

«з,

« 4

) .

Назначение

языка

программирования

заключается

в том, чтобы

 

описывать

алгоритмы Лг -еЛ. Тогда

смысл базовых форм, задаваемых через

параметр /3 , должен со­

ответствовать

смыслу

вычислительного

процесса,

задаваемого

примитивными процедурами. В свою очередь параметр 13 синтези­

рует параметры 1\ и 12, т. е. семантика

декларативных

и

повели­

тельных

сообщений

L-языка

определяется параметрами

1\

и 12.

Константы

L-языка

своим значением определены

на

множестве

L-объектов.

Отсюда

очевидно,

что

параметры

ai

и а2

задают то

множество

объектов

Е, для которых однозначно задаются объек­

ты L-языка. Тогда

правомерным

будет

утверждение,

что

одно­

значное

соответствие

параметров ai, а2

и 1\, 12 задается

соответст­

вующей

функцией

фь в том

случае,

если,

с

одной

 

стороны,

рассматриваемый L-язык строго специфицирован

для данной проб­

лемы и, с другой стороны, параметр

/3 , представляемый семантичес­

ким аспектом, должен полностью соответствовать параметру аз. Компонента параметра / 3 определяет направленность сравнитель­ ного анализа между языковыми системами в целях выбора наи­ более удобных ;танструктивных представлений базовых форм и оп­ ределяет L-язык как хороший в аспекте его общности и практи­ ческой реализации для данной проблемы. Компонента U должна соответствовать компоненте 0С4 в смысле способов изобразитель­ ного представления алгоритма Л,-, который является наиболее удобным для решаемой проблемы. В заключение можно отметить, что конкретная оценка применимости L-языка для выбранной проблемы в рамках параметризированной системы Р может быть сведена к сравнительному сопоставлению параметризированных схем языковых и проблемных алгоритмических систем и опреде­ лению степени совместимости характеристических множеств каж­ дого из параметров схемы.

§ 6. 2. АЛГОРИТМ ВЫБОРА ЯЗЫКА ПРОГРАММИРОВАНИЯ ДЛЯ КОНКРЕТНОГО ПРИМЕНЕНИЯ

С точки зрения разработки алгоритма задачу априорного вы­ бора языка программирования можно определить следующим образом: для заданного класса задач и заданного множества язы­ ков программирования определить язык, обеспечивающий опти­ мальное программирование задач из заданного класса.

10*

147