Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Фролов, С. А. Кибернетика и инженерная графика

.pdf
Скачиваний:
13
Добавлен:
20.10.2023
Размер:
7.75 Mб
Скачать

прямой и решением этого

уравнения

относительно у

(или х).

 

 

Во втором варианте (кривая линия) (рис. 49) отыска­

ние в множестве 2] р\ точки

с абсциссой

х = хк является

случайностью. Как правило, такой точки в 2] р\- не будет.

Поэтому мы можем говорить только о нахождении в

2] р\-

точек

/ и 2, у

которых разность хк

хх и х 2

хк

(или

г/д- — ух и г/2

ук)

меньше наперед

заданной

величины

AL.

Значение

AL определяется в зависимости от приня­

тых

величин

квантования по х и у,

для нашего случая

AL

=

1,019

мм *.

Очевидно, отождествлять

искомую

точку

с точкой 1 я

2 нельзя, так как

возможная ошибка

в отклонении от действительной величины может быть значительной (0,2 мм для у и до 1 мм для х). Чтобы избе­ жать появления ошибки, необходимо составить уравнение прямой, проходящей через точки / и 2, и на ней найти точку К-

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

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

Для ЭЦВМ «провести» прямую означает составить ее уравнение. При этом необходимо различать следующие случаи:

1) определение уравнения прямой по совокупности

принадлежащих

 

ей

точек;

 

2) определение уравнения прямой, проходящей через

данную точку

в

заданном

направлении.

*AL =

V

^

+ ^ =

= 1,019.

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

76

Проведение~окружностей (или дуг) на чертеже необ­

ходимо для

решения

таких

задач,

как:

 

 

1)

определение на заданной линии точек,

удаленных

от данной

точки

на расстояние

R;

 

 

 

2)

определение

на

плоскости

точек,

удаленных от

точки

А

на

расстояние Rx

и

от

точки

В

на расстоя­

ние

R2.

 

 

 

 

 

 

 

 

 

Учитывая, что информация о линиях чертежа посту­ пает в ЭЦВМ в виде конечного множества чисел — ко­ ординат некоторой совокупности точек, принадлежа­ щих линии, эти задачи целесообразно формулировать иначе:

1) на данной прямой найти точки, удаленные от дан­ ной точки на заданное расстояние;

2)определить уравнение прямой, проходящей через две точки, удаленные от двух данных точек на заданное расстояние;

3)найти на заданной линии точки, расстояние которых от данной точки ближе всего к некоторому заданному расстоянию;

4)пользуясь точками, выделенными в предыдущей задаче, найти точки пересечения линии и окружности заданного радиуса.

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

Теперь вернемся к различным случаям определения точки пересечения (рис. 47, 48, 49). Устанавливаем, что во всех подпрограммах имеются: а) одинаковые участки для определения уравнения прямой, проходящей через две точки, и б) участок, предписывающий совместное ре­ шение уравнений двух прямых. Эти участки следует вы­

делить

как самостоятельные подпрограммы, исключив

из тех

подпрограмм, в которых они встречаются.

Приведенные в табл. 1 операции должна «уметь» выполнить ЭЦВМ по даннным, представленным в графи­ ческой форме.

71

Содержание операции

I г р у п п а

 

 

Определить

уравнение

прямой,

про­

ходящей через

две данные

точки . . . .

Определить

уравнение

прямой,

па­

раллельной данной и проходящей через заданную точку

Определить уравнение прямой, пер­ пендикулярной данной, проходящей че­ рез заданную точку

Определить уравнение горизонталь­ ной прямой, проходящей через заданную точку

I I г р у п п а

Найти точку пересечения двух за­

данных прямых На данной прямой найти точку с за­

данным значением абсциссы На данной прямой найти точку с за­

данным значением ординаты I I I г р у п п а

Найти расстояние между двумя за­

данными точками Разделить заданный отрезок в данном

отношении На данной прямой найти точки, уда­

ленные от данной точки на заданное рас­ стояние

Определить уравнение прямой, про­ ходящей через две точки, удаленные от

двух данных точек на заданное расстоя­ ние

I V г р у п п а

Найти на заданной кривой две точки, ближайшие к данной прямой

Найти на двух заданных кривых по

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

Найти на заданной кривой точки, расстояние от которых до данной точки ближе всего к заданному расстоянию

Найти точки пересечения кривой с окружностью, проведенной из заданного центра данным радиусом

Определить уравнение прямой по со­ вокупности ее точек

 

Таблица 1

Обозначение

Число

команд

/

10

I I

7

III

9

IV

5

V

17

VIa

11

v i 6

10

VII

8

VIII

5

i x a

40

б

11

X

23

XI

26

XIU

25

х п б

19

XIII

57

72

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

§ 7. ОБ АЛГОРИТМЕ МАШИННОГО РЕШЕНИЯ ЗАДАЧ

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

мощью обобщенных

определений, включенных в

поня­

тие элементарная

графическая операция

Для

обоз­

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

Таблица 2

Содержание элементарной графической операции

Провести прямую через две данные точки

. .

Провести прямую через данную точку в заданном направлении

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

Провести горизонтальную прямую через данную точку

Найти точку пересечения двух линий . . . .

Провести дугу заданного радиуса из заданной точки

Обозначение

А

В

С

D

Е

F

1 Элементарная графическая операция отличается

от оператора

тем, что получение результатов на машине, соответствующих

графи­

ческому выполнению одной элементарной операции, в

ряде

случаев

достигается выполнением нескольких операторов (см. §

6).

 

73

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

E1C2ES

Е4СьЕа

А^Е8С^Е10 .

(6)

(1) (3)

(2) (4)

(/С 2 ) (Ki)

 

Арабские цифры и буквы в скобках указывают точку, которая получается в результате выполнения операций,

Рис. 50

обозначенных латинскими буквами. Комбинации из не­ скольких повторяющихся операций объединены в стан­ дартные массивы Q.

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

дачи

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

следующей

схемой

счета:

а) прямая проецирующая, плоскость задана парал­

лельными

прямыми

(рис.

50, а):

 

 

 

О1Е2С3Е^ьЕвС7Е8АаЕ10',

(7)

 

 

 

(1) (2)

(3)

(4) (Ki)

 

б) прямая проецирующая,

плоскость

задана следами

(рис.

50,

б):

 

 

 

 

 

 

 

D^CsEiB^Ee,

 

(8)

 

 

 

(1)

(2)

(КО

 

74

в) плоскость проецирующая

(рис. 50, в):

E1C2ES.

 

(9)

(К,)

(Кг)

 

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

можно поступить следующим

образом:

 

во-первых, подготовить постоянный набор

программы,

с помощью которых можно решить задачу при

различных

вариантах

исходных данных

и записать эти

программы

в памяти

машины;

 

 

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

Прежде чем приступить к решению задачи, машина должна распознать ситуацию (первый случай) исходных данных и определить, по какой из записанных в ее па­

мяти

программ осуществлять

решение.

Во

втором случае — машина

начинает решать задачу

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

Машинное опознавание геометрических образов, осно­ ванное на сравнении ситуации, изображенной на чертеже, фотографии или каком-либо другом носителе информации, с эталоном, хранящемся в памяти машины, не может быть использовано, так как исходные данные могут обра­ зовать бесчисленное множество различных вариантов. Например, две равнозначные (с точки зрения машинного решения) исходные ситуации (рис. 51) при опознавании

будут отнесены к разным случаям, а внешне

похожие

(рис. 52) требуют для своего решения различных

машин-

75

ных алгоритмов. Кроме того, для практической реализа­ ции методы опознавания нуждаются в дополнительных очень сложных приставках к ЭЦВМ. Поэтому первый вариант неприемлем для автоматизации процесса ре­ шения задач.

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

Рис. 51

Рис.

52

должать ли

решение по заданному частному

алгоритму

или приступать к выполнению нового.

При переходе от алгоритма решения «вручную» к алго­

ритму

машинному

необходимо

схему счета

составлять

не в

символах

элементарных

графических

операций

(табл. 2), а в обозначениях машинных операторов (табл. 1). В этом случае схема счета (6) примет вид

 

VJIIzVsVJIhVJiVsIIhVu.

 

 

Выполнение двух операторов

ШпУп+i

можно

заме­

нить одним

оператором

VIa

. Окончательно

схема

счета

машинного

алгоритма

запишется

 

 

 

V l V / a , V a V / a 4

W a , .

 

 

(1) (2)

(3) (4)

(Кг)

(К,)

 

 

Аналогично после соответствующей замены графи­ ческих операций машинными операторами в схемах (7),

(8), (9) получим

 

 

VI6iVh,VI6,VIaJ6Ve;

(П)

(1) (2)

(3) (4)

(К,)

У1бу1л,11яУл;

(12)

(1)

(2)

(Ki)

 

VlV/a,.

(13)

(Кг) (Кг)

76

Все многообразие случаев исходных данных задачи по определению точки встречи прямой с плоскостью может быть отнесено к восьми альтернативным вариантам.

Кроме схем счета (10), (11), (12), (13), отметим еще

ViV/a,//3 V#/a.;

(14)

ViVhy3VhJ5V6VIIai;

(15)

VI6lVIayi6yia-

(16)

Vyiay3VIaJ5V6VIa

(17)

соответствующие задачам, исходные данные которых изо­ бражены на рис. 53, а, б, в, г.

Приведенные варианты схем счета машинных алго­ ритмов отображают самый быстрый способ решения за-

ai

6J

6)

г )

 

Р и с .

53

 

дачи. Но сразу

найти такой

способ

решения машина

не сможет. Чтобы выяснить логическую схему построения обобщенного алгоритма, по которому будет в действи­ тельности производиться решение, запишем отмеченные выше схемы счета частных алгоритмов в порядке, ука­ занном в табл. 3. Такая система записи позволяет найти ключ к построению схемы счета обобщенного алгоритма. За основу обобщенной схемы счета принята схема счета [выражение (10)].

Сначала машина производит решение задачи по основ­ ной схеме счета, начиная с горизонтальной проекции (I вариант решения). Если задача не решается, машина переходит к фронтальной проекции и производит реше­

ние также по основной схеме счета

(II вариант

решения).

Если задача опять не решается,

то в основную схему

счета необходимо добавить новые

варианты.

Структуру

77

построения обобщенного алгоритма удобно представить графически в виде «дерева», устанавливающего связь между исходными данными задачи и алгоритмом ее ре­ шения (рис. 54).

Из приведенной схемы видно, что машина сможет самостоятельно выбрать правильный путь решения, если составить программу так, чтобы она начала работать по «жесткой» подпрограмме, составленной на основании

 

алгоритма

для

общего

 

случая

задачи

(схема

 

счета I , табл. 3). Чтобы

 

сделать

программу

гиб­

 

кой,

 

достаточно

после

 

выполнения

 

операций

 

Vu

V3 ,

VIai

 

и

V6

про­

 

извести

пробу аг

и

вы­

 

яснить,

находится

ли

 

точка

 

после

выполне­

 

ния

одного

из отмечен­

 

ных

 

операторов *.

По

 

результатам

этой пробы

 

машина

либо

продол­

 

жает

решение по основ­

 

ной

 

программе,

если

 

точка

есть,

 

либо

при­

 

ступает

к

выполнению

 

другого

участка

про­

 

граммы, когда точки нет.

Выбор

участка зависит от того, при

выполнении

ка­

кого оператора не получается новой

точки

пересече­

ния. Например, при выполнении оператора

 

V3

в зави­

симости

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

могут быть два

различных варианта: точка пересечения определяется (варианты 1, 2, 3, 4) или ее не будет (варианты 5, 6, 7, 8). В первом случае машина продолжает работать по про­ грамме, составленной для «частного» алгоритма 1, во втором — переходит ко второму варианту решения. До­ пустим, что после выполнения оператора V3 точка пере­ сечения определяется, определяется она и после выпол­

нения операторов VIdl

и V a .

Тогда,

подойдя к

вершине

1 На схеме указаны

также проба а 0 и

оператор V0-a0

— проба

на число геометрических

образов,

заданных

на чертеже. Если N = 4,

то прежде чем приступить к выполнению основной программы, необ­ ходимо определить координаты точки схода следов (оператор V0).

78

ветви, машина получит ответ на поставленную задачу.

Если при выполнении какого-либо

из

 

операторов

V3,

Wa4 .

 

 

точка

 

не определяется,

то это

служит

призна­

ком для перехода: к решению

 

по

второму

варианту,

если

Уз =

0,

к

оператору

V8,

 

если

VI3t

=

0,

к V I a 2 2

и

к

У1б2,

при

Уб =

 

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица

3

 

 

 

 

 

Схема счета общего случая

 

 

 

 

 

Необходимые

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

добавления

в основную

 

 

I

вариант

 

 

 

 

II

вариант

 

 

схему для

решения

 

 

 

 

 

 

 

 

 

 

частных

случаев

 

V

V I a

V

V l a

I V

V I a

V

VI.

V

VI3

/

V

Via

 

 

 

 

 

 

 

V

Via

V

V l a

I

V

VIa

V

Via

V

Via

/ V

Via

V I 6

 

V l a

V I 6

V I a I V

 

V

V I a

V

V l a

I

V

VU

V

Via

V

VIa

/

V

Via

V I 6

V l a

V I 6 V I a I V, И V

V

V I a

V

V I a

/

V

VU

V

Via

V

Via

/

V

Via Via

 

 

 

 

 

 

V

V l a

V

VIB

I

V

Via

V

Via

V

Via

/

V

Via

И

V

V I a

 

 

 

V

V I a

V

Via

I

V

VU

V

Via

V

V l a

I

V

V l a

 

 

 

 

 

 

 

V

 

v i a

V

VIal

 

V

Vla

V

Via

V

VIa

/

V

VU

VI6

 

VU

 

VI6

VIa

 

V

 

VIa

V

VU

I

V

VIa

V

Via

V

V I a

I

V

V I a

 

 

 

 

 

 

 

Пользуясь графическим изображением обобщенного алгоритма, легко составить его схему счета

На рис. 55 представлена блок-схема программы, при­ годной для решения всех возможных вариантов задачи по определению точки встречи прямой с плоскостью. Пользуясь программой (приложение I I I , стр. 211), ма­ шина самостоятельно решает любую задачу этого типа

независимо

от характера расположения

исходных данных

и варианта

задания

плоскости х . Экспериментальная про­

верка подтвердила

универсальность

этой программы.

Машине были предложены все восемь вариантов задания

1 Исключение составляют два случая: 1) если плоскость, прохо­ дящая через ось х 1 2 , задана следами и 2) пересекающая плоскость прямая — профильная.

79