поговорим о ЛОНИИС

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » поговорим о ЛОНИИС » КОММЕНТАРИИ к ПРОГРАММАМ » Генерация случайного логического многочлена


Генерация случайного логического многочлена

Сообщений 1 страница 4 из 4

1

ПРОГРАММА
1- многочлен
Генерация случайного  логического многочлена

1. Общее описание
2. Условные обозначения
3. Упрощения
4. Структура многочлена
5. Формирование  исходного многочлена
6. Формирование концовки многочлена
7. Ввод – вывод

1. Общее описание

Программа предназначена для формирования случайных логических многочленов.
Случайным образом выбирается порядок элементов логического многочлена:
логические операции (связки), скобки, логические операции (связки), переменные.
Связки: отрицание, конъюкция, дизъюнкция,   импликация и эквиаленция
Скобки: левая и   правая
Принято: 11 переменных.

2. Условные обозначения

Для упрощения программы введены условные обозначения.

Связки:
Отрицание: знак минус  «-»

Связки:
Конъюнкция:  1
Дизъюнкция: 2
Импликация:  3
Эквиваленция: 4

Скобки:
Левая: 6
Правая: 7

Переменные
Числа в диапазоне:  10 -11

В формуле  (A связка B): A - первая переменная,  B – вторая переменная

3. Упрощения

В ходе построения многочлена не формируются последовательности:
Отрицание    отрицание,  отрицание   отрицание   отрицание  ………………………………………..
Переменная связка переменная связка  переменная ……….

4. Структура многочлена

4.1 Вначале формируется исходный многочлен длиной y.
Левые скобки и переменные, перед которыми отрицания, считаются за один элемент многочлена.
Если исходный многочлен  логически не завершен, добавляется концовка.
4.2. Построение многочлена начинается с левой скобки или переменной.
4.3. При формировании многочлена вычисляются:
k - Число левых скобок    p – число правых скобок
При формировании многочлена проверяется условие: k>p
В сформированном многочлене k=p
4.4 Формирование исходного многочлена продолжается, пока с учётом концовки можно создать логически непротиворечивый многочлен.
То есть исходные многочлены имеют длину в диапазоне: 3 …y

5. Формирование  исходного многочлена
Левая скобка: левая скобка или  первая переменная
Связка: левая скобка, вторая переменная
Первая переменная: связка
Связка: левая скобка или вторая переменная
Правая скобка: связка или правая скобка
Вторая переменная: правая скобка

6. Формирование концовки многочлена

Левая скобка – правые  скобки
Правая скобка – правые скобки
Вторая переменная – правые скобки
Связка – переменная – правые скобки
Первая переменная – связка – вторая переменная – правая скобка

7. Ввод и вывод

Входные данные:
y=25;   //предельная длина исходного многочлена
       a1 = 5;  // для вычисления вероятности
    b1 = 5 ; // для вычисления вероятности
    b2=5; // для вычисления вероятности
    d1=5;  // для вычисления вероятности
       w=5; // для вычисления вероятности
    w1=5;  // для вычисления вероятности
    w2=5;  // для вычисления вероятности
    w3=5;   // для вычисления вероятности

Вывод:

Первая строка: многочлен
Вторая строка: номер операции, в которой определен элемент  многочлена
Третья строка: текущая величина k
Четвертая строка: текущая величина p
Пятая строка: метка T (0 и 1). Служит для определения переменой, первая или вторая.

Скачать
https://yadi.sk/d/TLyaE5TMSo9dFg

Отредактировано ABC (2019-07-22 20:12:41)

0

2

ПРОГРАММА
2- многочлен
Генерация случайного  логического многочлена заданной длины

Программа 2- многочлен является развитием программы 1- многочлен.
Отыскиваются путем перебора исходный многочлен длиной y.
Введен цикл    repeat …..until.
Число  итераций в этом цикле ограничено числом f.
Которое задается.
Текущее число итераций в цикле – число v.
Если найден исходный многочлен длиной y включается концовка.
Вывод многочлена.
Если за число итераций f  искомый многочлен не найден, выводится текущий результат.

Скачать
Обновление 10 01 2020
Программа: 2-2 многочлен

https://yadi.sk/d/SSfiUDsWgz3W9Q
https://yadi.sk/d/SSfiUDsWgz3W9Q

Отредактировано ABC (2020-01-10 17:54:19)

0

3

ПРОГРАММА
Вычисление логического многочлена

1. О программе
2. Исходные данные
3. Алгоритм
4. Данные для отладки
5. Итог
6. Вывод
7. Скачивание

   1. О программе
Программа «Вычисление логического многочлена» предназначено для вычисления логического многочлена.
Программа на Дельфи  7.
Вычисляется многочлен, генерируемый программой «Генерация случайного  логического многочлена».
Цель программы.
Оценить корректность программ:
«Генерация случайного  логического многочлена» и  «Вычисление логического многочлена».
То есть этап исследования.

2. Исходные данные
Исходные данные для вычисления логического многочлена те же, что в программе
«Генерация случайного  логического многочлена».

3. Алгоритм
Переменным случайно присваиваются величины 1 и 0.
Затем последовательно осуществляются итерации.
Итерация 1.
Последовательность:
Левая скобка – переменная – правая скобка
Заменяется на  – переменная.
Если такой последовательности в многочлене нет, многочлен не меняется.
Итерация 2
Последовательность
Переменная – связка – переменная
Вычисляется: 0 или 1.
Если такой последовательности в многочлене нет, многочлен не меняется.

Последовательность:
переменная 1- связка 1 –переменная 2 – связка 2 – переменная 4
Вычисляется в такой последовательности:
переменная 1- связка 1     (переменная 2 – связка 2 – переменная 4)
Редко получается фрагмент многочлена, не доступный сокращению.

4. Данные для отладки

Матрица 1

Первые 5 строк – программа «Генерация случайного  логического многочлена».
Строка 6
Число левых скобок после каждой итерации.
rr:   array  [1..2*y] of integer ;//
Строка 7
Число правых скобок после каждой итерации.
dd:   array  [1..2*y] of integer ;//
Строка 8
Величины переменных
za:   array  [1..11] of integer ;//
Строка 9
Позиция в многочлене при очередной итерации 1
Строка 9
xa:   array  [1..50] of integer ;//
Строка 10
Позиция в многочлене при очередной итерации 2
fa:   array  [1..300] of integer ;//
строка 11
Переменная aa
1 итерация 1, 0 итерация 0
ga:    array  [1..300] of integer ;//

Со строки 14 последовательность преобразований исходного многочлена
m:  array  [1..(2*y),1..300]   of Int64;//

Матрица 4
Для отладки
v1:  array  [1..(2*y),1..300]   of Int64;//

5. Итог

Edit 5

www – число итераций, цикл - ii
vvv – значение многочлена

6. Вывод

Необходимо дальнейшее исследование для исключения
не корректных ситуаций.

7. Скачивание
Скачать программу
Вычисление логического многочлена.
Исправлено   10 01 2012
Программа 2-2 многочлен

https://yadi.sk/d/ZwuM25wo4mJyOw

Отредактировано ABC (2020-01-10 17:43:36)

0

4

[size=24]ПРОГРАММА
3-1 многочлен[/size]

1. Общее описание
2. Алгоритм
3. Вывод

1. Общее описание
Программа, версия 3-1, предназначена для выявления соответствия в многочлене правых и левых скобок.
Кстати.
Недостаток Дельфи 7:
Скобки  begin   end не пронумерованы.
В сложной программе можно совершить ошибку.

2. Алгоритм
Исходный многочлен генерируется по программе генерации случайного многочлена:
Версия 1-1.
Сканируется многочлен.
На каждом шаге определяется соответствие правой и левой скобки.
Находится фрагменты  правая …… левая скобка.
Скобки нумеруются по номеру шага, на котором выявлено соответствие.
Нумерованные скобки исключаются из рассмотрения.

3. Вывод:

Первая строка в таблице № 2: исходный многочлен
Вторая строка: номера левых и правых.

Скачать: версия  3-1
https://yadi.sk/d/vg8iwKUdKV5xdQ

Отредактировано ABC (2020-01-14 01:49:37)

0


Вы здесь » поговорим о ЛОНИИС » КОММЕНТАРИИ к ПРОГРАММАМ » Генерация случайного логического многочлена