Добрый день можно поинтересоваться где брать литературу предложенную в курсе ?Большинство книг я не могу найти в известных источниках |
Жадный алгоритм поиска индивидуальных масок
Рассмотрим работу алгоритма на примере схемы C17 и ДИ, заданной для этой схемы в виде СПР из табл. 27.5.
В табл. 32.1 - табл. 32.10, представленных ниже, иллюстрируется выбор точек проверки на шаге 2 в процедуре при сокращении ДИ для схемы С17.
На первом шаге алгоритма создается множество пустых масок
![Н= \{h_i=\varnothing | 0\le i\le 8\}.](/sites/default/files/tex_cache/bf1011ac993357b9d850a7ddc4ac6552.png)
На следующем шаге происходит вызов процедуры :
![MaskSet(\{s_0, s_1, , s_2, s_3, s_4, s_5, s_6, s_7, s_8 \},\varnothing,9)](/sites/default/files/tex_cache/04f58ea896006fbbef3d98838e9662d5.png)
производящая поиск точки проверки по значению величины из вариантов, перечиcленных в табл. 32.1. Первому максимальному значению
соответствует точка проверки
и значение
.
Выбираем эту точку проверки. Для нее вычисляем
и
. Добавляем точку проверки
в маску
, после чего производятся рекурсивные вызовы.
- вызов завершается без внесения изменений в маски.
![MaskSet(\{s_0, s_1, , s_2, s_3, s_4, s_5, s_6, s_7\},\{ s_8 \},7)](/sites/default/files/tex_cache/c03802ab97732279d782ebff3843bed4.png)
из той же табл. 32.1 выбираем следующее максимальное значение
, соответствующее точке проверки
и значению
(значение
, соответствующее точке проверки
и значению
не выбирается, так как
). Вычисляем
,
. Добавляем
в маску
.
- вызов завершается без внесения изменений в маски.
![MaskSet(\{s_0, s_1, , s_2, s_3, s_4, s_5, s_7\},\{ s_6,s_8 \},7)](/sites/default/files/tex_cache/b1fbf4c7863a5488dab29e6432859b1b.png)
- следующее максимальное значение (не превышающее 7) в табл. 32.1 равно 5 и соответствует точке проверки
и значению
.
,
. Добавляем
в маску
.
![MaskSet(\{s_0\},\{s_8\},2)](/sites/default/files/tex_cache/6af696fa1ed36584e382fcc706e494ba.png)
- значения для данного вызова приведены в табл. 32.2. Первое максимальное значение
равно 0 для точки проверки
и значения
.
,
.
Точка проверки
добавляется в
.
- вызов завершается без внесения изменений в маски.
- вызов завершается без внесения изменений в маски.
![MaskSet(\{s_0,s_2,s_3,s_4,s_5,s_7\},\{s_1,s_6,s_8\},5)](/sites/default/files/tex_cache/6ace0891db48cf5af2afb8ef4773ec8f.png)
- следующее максимальное значение (не превышающее 5) в табл. 32.1 равно 3 и соответствует точке проверки
и значению
.
,
. Добавляем
в маски
,
и
.
![MaskSet(\{s_3,s_4,s_7\},\varnothing,3)](/sites/default/files/tex_cache/6ed7d3bd3d4b13a110290a34e2543016.png)
- значения для этого вызова приведены в табл. 32.3. Первое максимальное значение
равно 1 и соответствует точке проверки
и значению
.
,
. Вносим
в
.
- вызов завершается без внесения изменений в маски.
![MaskSet(\{s_3,s_4\},\{s_7\},1)](/sites/default/files/tex_cache/62d79a4bba9802e068a1eabce9749277.png)
- из табл. 32.3 выбираем следующее значение для
и значения
.
,
. Вносим
в
.
- вызов завершается без внесения изменений в маски.
![MaskSet(\{s_3\},\{s_4, s_7\},1)](/sites/default/files/tex_cache/3eac1c16801e0045db8dbfb8eb52342e.png)
- из табл. 32.3 следующее значение , не превышающее 1 и для которого
, равно -1 и соответствует точке проверки
и значению
.
,
. Вносим
в
.
![MaskSet(\{s_3\},\{s_4\},\varnothing,2)](/sites/default/files/tex_cache/6699d63a02be9d0cc9a73ae7981df0a2.png)
- из табл. 7.4 выбираем для точки проверки
и значения
.
,
. Вносим
в
.
- вызов завершается без внесения изменений в маски.
- вызов завершается без внесения изменений в маски.
- вызов завершается без внесения изменений в маски.
![MaskSet(\{s_0,s_2,s_5\},\{s_1,s_3,s_4,s_6,s_7,s_8\},3)](/sites/default/files/tex_cache/590f80ed432b6d22930d05366c8e0b8d.png)
- максимальное значение не превышающее 3 в табл. 32.1 равно 1 и соответствует точке проверки
и значению
.
,
. Точка проверки
помещается в маску
.
![MaskSet(\{s_0\},\{s_1,s_7,s_8\},4)](/sites/default/files/tex_cache/c6d0e2d6a9412841a6e4be3ccfa80d53.png)
- значения для данного вызова приведены в табл. 32.5. Первое максимальное значение
равно 0 для точки проверки
и значения
.
,
. Точка проверки
добавляется в
.
![MaskSet(\{s_0\},\{s_8\},2)](/sites/default/files/tex_cache/6af696fa1ed36584e382fcc706e494ba.png)
- значения для данного вызова приведены в табл. 32.6. Первое максимальное значение
равно 0 для точки проверки
и значения
.
,
.
Точка проверки
добавляется в
.
- вызов завершается без внесения изменений в маски.
- вызов завершается без внесения изменений в маски.
- вызов завершается без внесения изменений в маски.
![MaskSet(\{s_2,s_5\},\{s_0,s_1,s_3,s_4,s_6,s_7,s_8\},1)](/sites/default/files/tex_cache/1330029faa6f648d66a171bb030d4eac.png)
- максимальное значение не превышающее 1 в табл. 32.1 равно 1 и соответствует точке проверки
и значению
.
,
. Точка проверки
помещается в маску
.
![MaskSet(\{s_2\},\{s_1,s_3,s_7\},1)](/sites/default/files/tex_cache/6c0b8780aa21f1912c7abaff2661c95d.png)
-значения для данного вызова приведены в табл. 32.7. Первое максимальное значение
равно 0 для точки проверки
и значения
.
,
.
Точка проверки
добавляется в
.
![MaskSet(\{s_2\},\{s_3\},2)](/sites/default/files/tex_cache/cfac04459cd183787caf5d3be80fb8e1.png)
- значения для данного вызова приведены в табл. 32.8 . Первое максимальное значение
равно 0 для точки проверки
и значения
.
,
.
Точка проверки
добавляется в
.
![MaskSet(\{s_2\},\varnothing,1)](/sites/default/files/tex_cache/8a182ecdd47921e2ae3cb1e3d62f716e.png)
- вызов завершается без внесения изменений в маски.
![MaskSet(\varnothing,\{s_2,s_3\},0)](/sites/default/files/tex_cache/c9270b8ceb5d17db71750b9cf86b6338.png)
- вызов завершается без внесения изменений в маски.
![MaskSet(\varnothing,\{s_1,s_2,s_3,s_7\},0)](/sites/default/files/tex_cache/f6ec33ba95b1f73b9b9e4e0baa3299e3.png)
- вызов завершается без внесения изменений в маски.
![MaskSet(\{s_5\},\{s_0,s_1,s_2,s_3,s_4,s_6,s_7,s_8\},1)](/sites/default/files/tex_cache/aa16a27f096d2baf3a2bf04f170f00e0.png)
- следующее максимальное значение не превышающее 1 в табл. 32.1 равно 1 и соответствует точке проверки
и значению
.
,
.
Точка проверки
помещается в маску
.
![MaskSet(\{s_5\},\{s_3,s_4,s_6 \},4)](/sites/default/files/tex_cache/e7ecced519ab0ffd2c3c941463effe1d.png)
- значения для данного вызова приведены в табл. 32.9. Первое максимальное значение
равно 0 для точки проверки
и значения
.
,
.
Точка проверки
добавляется в
.
![MaskSet(\{s_5\},\{s_6\},2)](/sites/default/files/tex_cache/aedeb3fbb0f6d2e48f290e7bf264ecbd.png)
- значения для данного вызова приведены в табл. 32.10. Первое максимальное значение
равно 0 для точки проверки
и значения
.
,
.
Точка проверки
добавляется в
.
![MaskSet(\{s_5\},\varnothing,1)](/sites/default/files/tex_cache/751a72f9573a1cbba02b5af719941618.png)
- вызов завершается без внесения изменений в маски.
![MaskSet(\varnothing,\{s_5,s_6\},0)](/sites/default/files/tex_cache/cd852e71effcec1a734c8052aea845ba.png)
- вызов завершается без внесения изменений в маски.
![MaskSet(\varnothing,\{s_3,s_4,s_5,s_6\},0)](/sites/default/files/tex_cache/9041dd62ec110ca41fffdb3dc21ab999.png)
- вызов завершается без внесения изменений в маски.
![MaskSet(\varnothing,\{s_0,s_1,s_2,s_3,s_4,s_5,s_6,s_7,s_8\},1)](/sites/default/files/tex_cache/1c83f75b615a67399b41b58bc1b1290f.png)
- вызов завершается без внесения изменений в маски.
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
-1 | 1 | 1 | -1 | -5 | 5 | -7 | 7 | 1 | -1 | 3 | -3 | 7 | -7 | -9 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
- | -2 | 0 | - | - | -2 | 0 | - | - | -2 | - | -2 | - | -2 | -2 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
-1 | 1 | -1 | 1 | -3 | - | -3 | - | -1 | 1 | -3 | - | - | -3 | -3 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
-2 | - | 0 | - | -2 | - | -2 | - | -2 | - | -2 | - | - | -2 | -2 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
- | -4 | - | 0 | 0 | - | -2 | - | - | -4 | - | -2 | - | -4 | -4 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
- | -2 | - | -2 | 0 | - | 0 | - | - | -2 | - | -2 | - | -2 | -2 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
0 | - | -4 | - | -2 | - | -4 | - | - | -2 | - | 0 | - | -4 | -4 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
-2 | - | -2 | - | -2 | - | -2 | - | - | 0 | - | 0 | - | -2 | -2 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
-4 | - | - | -2 | -4 | - | -4 | - | -4 | - | - | 0 | - | -2 | -4 | - |
Точка проверки | 1:1 | 1:2 | 2:1 | 2:2 | 3:1 | 3:2 | 4:1 | 4:2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
![]() |
-2 | - | - | -2 | -2 | - | -2 | - | -2 | - | - | -2 | - | 0 | -2 | - |
Работа алгоритма закончена. В результате получены маски:
![h_0=\{1:1,1:2,2:1\},\\
h_1=\{1:2,2:1\},\\
h_2=\{1:1,1:2,3:1\},\\
h_3=\{1:1,1:2,3:2\},\\
h_4=\{1:2,3:2\},\\
h_5=\{3:1,3:2,4:1\},\\
h_6=\{4:1\},\\
h_7=\{1:1,3:2\},\\
h_8=\{2:2\}.](/sites/default/files/tex_cache/c8f1e268deb62bd8c900442a87c40373.png)
Из приведенного примера ясно, что алгоритм не является точным, т. к. в маске точка проверки
является избыточной.