БКО производит оценку поступающих гипотез как удачных или неудачных на основе заложенных в него критериев сравнения. В качестве шаблона для написания БКО был взят пример, разработанный предыдущими курсами. В БКО введены счетчики, показывающие число положительно и отрицательно оцененных им гипотез.
Алгоритм работы БКО:
1.БКО анализирует вектор значений гипотезы, сопоставляя каждой переменной свой коэффициент согласно таблице 4.
Таблица 4. Коэффициенты значений предметных переменных
Значения | ||||
Поддержка расширенных вычислений | 0,975 | 1,025 | ||
Производительность, MIPS | 0,9 | 1,1 | 1,2 | 1,1 |
Объем памяти программ (ROM) | 0,9 | 1,1 | 1,075 | 1,05 |
Объем памяти данных (RAM) | 0,9 | 1,05 | 1,1 | 1,075 |
Оптимизированный набор инструкций | 0,95 | 1,05 | ||
Поддержка JTAG | 0,975 | 1,025 | ||
Разрядность АЦП | 0,8 | 0,9 | 1,2 | 1,1 |
Встроенное FFT ускорение | 0,95 | 1,05 |
Значения коэффициентов были подобраны после анализа ВПК разрабатываемого устройства. Как видно из таблицы, коэффициенты значений предметных переменных, не имеющих значительного влияния на ВПК, меньше отличаются от единицы.
2.БКО умножает полученные коэффициенты друг на друга. В случае если результат больше единицы (K > 1), то гипотеза признается положительной, иначе – отрицательной.
Исходный код БКО приведен в Приложении Б. Поскольку для разработки БКО использовался пример, разработанный предыдущими курсами, в Приложении Б приведен только код метода AppreciateHipothesis(), осуществляющего проверку и оценку списка гипотез в соответствии с заданным алгоритмом.
Для формирования начальной базы удачных и неудачных фактов были выбраны DSP фирм Microchip, AnalogDevices и TexasInstruments. Удачные факты приведены в таблице 5, неудачные приведены в таблице 6.
Таблица 5. Примеры удачных фактов из начальной таблицы знаний
Имя факта | Вес | Вектор значений | |||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
Microchip PIC ds33FJ256GP710A | 0 | Нет | <50 | 16K-32K | 16K-32K | Нет | Есть | 12 | Есть |
Analog Devices ADSP-2187N | 0 | Есть | 50-100 | 16K-32K | 16K-32K | Есть | Есть | 0 | Есть |
Texas Instruments 320UC5402-100 | 0 | Есть | 100-200 | 16K-32K | 16K-32K | Есть | Есть | 0 | Есть |
Таблица 6. Примеры неудачных фактов из начальной таблицы знаний
Имя факта | Вес | Вектор значений | |||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
Microchip PIC ds33FJ06GS102 | 0 | Нет | <50 | <8K | <4K | Нет | Нет | 0 | Нет |
Analog Devices ADSP-2184N | 0 | Есть | 50-100 | <8K | <4K | Нет | Нет | 0 | Нет |
Texas Instruments 320UC54A1-532 | 0 | Есть | >200 | <8K | >32K | Есть | Есть | 0 | Нет |
Критерии остановки:
1.Слабая динамика изменения коэффициентов функции выбора
2.Близкое к нулю количество противоречивых гипотез
Начальный вид функции выбора представлен в таблице 7.
Таблица 7. Начальный вид функции выбора
Параметр | 1 | 2 | 3 | 4 | |
1 | Поддержка расширенных вычислений | 0 | 0 | ||
2 | Производительность, MIPS | 0 | 0 | 0 | -3 |
3 | Объем памяти программ (ROM) | -9 | 0 | 9 | 0 |
4 | Объем памяти данных (RAM) | -6 | 0 | 9 | -3 |
5 | Оптимизированный набор инструкций | -3 | 3 | ||
6 | Поддержка JTAG | -6 | 6 | ||
7 | Разрядность АЦП | -3 | 0 | 3 | 0 |
8 | Встроенное FFT ускорение | -9 | 9 |
Протокол обучения решателя представлен в таблице 8.
Таблица 8. Протокол обучения решателя
Уровень знаний | Общее число фактов | Число гипотез | Число подтвержденных гипотез | Число опровергнутых гипотез | ||||
+ | - | |||||||
1 | 6 | 9 | 46 | 8 | 47 | |||
2 | 61 | 31 | 31 | 31 | 31 | |||
3 | 123 | 61 | 31 | 50 | 42 | |||
4 | 215 | 31 | 31 | 42 | 20 | |||
5 | 277 | 31 | 61 | 44 | 48 | |||
6 | 369 | 32 | 60 | 63 | 29 | |||
7 | 461 | 61 | 91 | 97 | 55 | |||
8 | 613 | 32 | 86 | 82 | 36 | |||
9 | 731 | 31 | 31 | 39 | 23 | |||
10 | 793 | 61 | 31 | 54 | 38 | |||
11 | 885 | 31 | 31 | 40 | 22 | |||
12 | 947 | 31 | 53 | 51 | 33 | |||
13 | 1031 | 84 | 31 | 82 | 33 | |||
14 | 1146 | 61 | 31 | 67 | 25 | |||
15 | 1238 | 31 | 16 | 24 | 23 | |||
16 | 1285 | 31 | 20 | 28 | 23 | |||
17 | 1336 | 31 | 13 | 33 | 11 | |||
18 | 1380 | 26 | 7 | 22 | 11 | |||
19 | 1413 | 24 | 15 | 27 | 12 | |||
Уровень знаний | Общее число фактов | Число гипотез | Число подтвержденных гипотез | Число опровергнутых гипотез | ||||
+ | - | |||||||
20 | 1452 | 27 | 12 | 31 | 8 | |||
21 | 1491 | 17 | 9 | 22 | 4 | |||
22 | 1517 | 10 | 8 | 13 | 5 | |||
23 | 1535 | 11 | 11 | 15 | 7 | |||
24 | 1557 | 12 | 4 | 11 | 5 | |||
25 | 1573 | 18 | 1 | 14 | 5 | |||
26 | 1592 | 7 | 3 | 8 | 2 | |||
27 | 1602 | 9 | 4 | 10 | 3 | |||
28 | 1615 | 8 | 4 | 10 | 2 | |||
29 | 1627 |
К 29-ой итерации количество генерируемых гипотез упало и выровнялось, а количество опровергнутых гипотез среди них стало минимальным. Таким образом, можно отметить факт окончания обучения решателя. Конечный вид функции выбора представлен в таблице 9. График зависимости числа генерируемых гипотез и числа противоречий от уровня знаний Решателя представлен на рисунке 2.
Таблица 9. Конечный вид функции выбора
Параметр | 1 | 2 | 3 | 4 | |
1 | Поддержка расширенных вычислений | -10653 | 581 | ||
2 | Производительность, MIPS | -112640 | 29200 | 42690 | 30421 |
3 | Объем памяти программ (ROM) | -85037 | 21601 | 34143 | 21601 |
4 | Объем памяти данных (RAM) | -73648 | 16875 | 16875 | 16875 |
5 | Оптимизированный набор инструкций | -34779 | 34401 | ||
6 | Поддержка JTAG | -18946 | 18512 | ||
7 | Разрядность АЦП | -138105 | -68925 | 120625 | 86405 |
8 | Встроенное FFT ускорение | -28302 | 20390 |
Результат ранжирования параметров, с учетом полученных весовых коэффициентов Cij, по формуле
wi = |maxj(Сij) - minj(Cij)|
Таблица 10. Проранжированные параметры
Параметр | wi | Ранг | |
1 | Поддержка расширенных вычислений | 11234 | 8 |
2 | Производительность, MIPS | 155330 | 2 |
3 | Объем памяти программ (ROM) | 119180 | 3 |
4 | Объем памяти данных (RAM) | 90523 | 4 |
5 | Оптимизированный набор инструкций | 69180 | 5 |
6 | Поддержка JTAG | 37458 | 7 |
7 | Разрядность АЦП | 258730 | 1 |
8 | Встроенное FFT ускорение | 48692 | 6 |
Ранжирование показывает, что Решатель правильно определил важность параметров в их влиянии на ВПК. Так от разрядности АЦП будет зависеть достоверность распознавания, производительность системы оказывает прямое влияние на быстродействие и косвенно влияет на достоверность распознавания, ведь недостаток вычислительной мощности процессора не позволит реализовать более сложные программные алгоритмы, сохранив при этом приемлемое время отклика всего устройства. Объем памяти данных и объем памяти программ так же должны быть достаточными для реализации программного алгоритма, иначе придется использовать внешнюю память, что уменьшит быстродействие системы, но увеличит её ресурсоёмкость. Далее по списку расположены параметры, влияющие на удобство разработки системы. Эти параметры важны для разработчика, но не оказывают прямого влияния на ВПК.