Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Довжина програми






З використанням розглянутих програмних параметрів можна отримати рівняння для оцінки кількісного співвідношення між довжиною програми N і словником h. Це рівняння на перший погляд може здатися дещо несподіваним. Однак ретельний аналіз доводить його правомірність крім того його правильність підтверджується експериментально.
Рядок N, що утворений символами, що входять до словника з h символів, повинен підкорятися ряду обмежень. Вимога за якою кожен символ словника повинен з'явитися щонайменше хоча б один раз, гарантує виконання умови

,

 

що визначає нижню границю для N визначену через h.

Знайдемо верхю границю для N. Розібємо рядок довжини N на підрядки довжиною h. Поділена таким чином програма на ЕОМ складається з N/h операторів довжиною h кожен. Тепер якщо ми захочемо, щоб рядок не містив двох однакових підрядків довжини h, то з'явиться шукана верхня межа.

Вимога відсутності дублікатів підрядків довжини h є досить обгрунтованою у програмах для ЕОМ, в яких економія висловів призводить до того, що загальному подвираженій дається окреме ім'я, тому його треба обчислювати тільки один раз. Отже, якщо загальний підвираз довжиною h необхіден програмі більше одного разу, присвоювання його окремому операнду збільшить h (число типів операторів) на одиницю.

Число можливих комбінацій з h елементів взятих по h, добре відоме з курсу матиматики і складає

N £ hh+1

Якщо врахувати, що оператори і операнди, як правило чергуються, то можна отримати інше співвідношення

N£h´h1h1´h2h2

 

Верхня межа для цієї нерівності повинна включати не тільки впорядковану множину з N елементів, що представляють досліджувану програму, але і її будь-які підмножини. Сімейство всіляких підмножин з N елементів містить 2N елементів. Отже, ми можемо прирівняти число можливих комбінацій з операторів і операндів (рівне числу підрядків N / h) числу підмножин з N елементів і виразити довжину реалізації алгоритму через його словник. З рівняння

2N = h1h1´h2h2

отримуємо

N = log2 (h1h1´h2h2)

або N = log2 h1h1 + log2 h2h2

 

Це дає нам рівняння оцінки довжини

h1 log2h1 + h2 log2h2 (1.1)

 

У цьому виразі символ N забезпечили Ù для того, щоб відрізняти обчислену (теоретичну) оцінку довжини від значення N отриманого в результаті безпосереднього вимірювання (досліджуваної довжини). Ця оцінка відповідає основним концепціям теорії інформації, за якими частота використання операторів і операндів у програмі пропорційна двійковому логарифму кількості їх типів. Вираз (1.1) являє собою ідеалізовану апроксимацію виміряної довжини , справедливу для програм що не містять недосконалостей (стилістичних помилок). Експериментальні дослідження ряду авторів на представницькій групі програм показали, що для стилістично коректних програм відхилення в оцінці їхньої теоретичної довжини від дослідженої не перевищують (10-15)%.

 

Date: 2015-07-11; view: 307; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию