АКЦИЯ от www.R3.ru - хостинг сайтов 72р. в месяц. Домен в подарок!

01.02.2023, Wednesday
ГЛАВНАЯ ГОСТЕВАЯ КНИГА РАЗНОЕ ИНФОРМАЦИЯ ПРИРОДА
Главная >> Информация >> Алгоритм решения >> Формирование условий задачи
Добавлена 18.05.2010 15:33
Распечатать

Формирование условий задачи

Как уже было выше сказано, для описания ситуации должны быть использованы слова. Так как программа "не знает" правил склонения и спряжения, то все одинаковые по значению слова должны быть и написаны одинаково. Строгое соответствие правилам лексики не обязательно - в силу того, что "слово" в данном случае всего лишь условное обозначение некоторого свойства объекта.

Язык и синтаксис предложений, задающих входные данные, содержит несколько специфических символов и слов, которые вследствие чего не могут быть использованы для описания свойств объектов. Это следующие слова и символы: "И", "ИЛИ", "НЕ", "(", ")", "[", "]", " ", ",", "*", "#", "^", ">", "<", "=", "≥", "≤", "!=", "не _", "+", "-".

Следует подчеркнуть, что слово не должно иметь внутри себя пробелов, а также запятых и вышеприведенных символов (кроме "И", "ИЛИ", "НЕ") и кавычек.

Стандартные логические связки (конъюнкция, дизъюнкция и отрицание) используются здесь на двух разных уровнях и, соответственно, обозначаются разными символами. На первом уровне - символами "И", "ИЛИ" и "НЕ", на втором уровне - пробелом, запятой и "не_".

Входные данные представляют собой строку элементов, соединенных друг с другом логическими связками "И", "ИЛИ", "НЕ" и скобками (первый уровень). То есть, иметь, например, такой вид: "А И (Б ИЛИ НЕ В)". Символами А, Б и В задаются множества и их размеры.

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

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

Легче это показать на примере. Есть условие задачи, состоящее в том, на ледовой дороге нет ни одного легкового автомобиля. Оно будет записано следующим образом:

[автомобиль[легковой] дорога[ледовая]]=0

Здесь пробелы между словами интерпретируются как конъюнкция. Если же необходимо задать условие, содержащее дизъюнкцию, то между словами или выражениями ставится запятая. Например, условие "В коробке лежат шары, которые могут быть синими или красными" задается следующим выражением:

[коробка шар[синий,красный]]>0

Как уже было выше сказано, размер множества можно задать с помощью натуральных чисел, нуля и знаков "равно", "больше", "меньше", "больше или равно", "меньше или равно", "не равно". Наряду с натуральными числами и нулем в качестве размера множества используется символ М – как было сказано ранее, аналог размера (мощности) бесконечного множества, со следующим свойством: объединение множества, имеющего размер М, с любым другим множеством также имеет размер М. Равенство размера множества нулю задает пустое множество.

Кроме того, можно также задать с помощью перечисленных знаков равенства и неравенства соотношение между размерами двух множеств. Например, условие "синих шаров больше, чем красных" задается следующим образом:

[шар[синий]] > [шар[красный]]

Вышеописанные правила позволяют задать условия многих логических задач. В некоторых случаях условия задачи могут быть очень громоздкими, особенно когда имеется много неявных условий. В задаче про цветные шары неявно подразумевается, что каждый шар может быть только одного определенного цвета, т. е. объекта, обладающего свойствами "шар[красный синий]" не существует. Программа этого не знает, поэтому необходимо вводить дополнительное условие:

[шар[красный синий]]=0

Если же цветов у шара может быть не два, а больше, то такие условия необходимо вводить для каждой пары цветов:

... И [шар[красный фиолетовый]]=0 И [шар[белый черный]]=0 И ...

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

Первое - это с учетом того, что задаются пустые множества (с мощностью равной 0), можно использовать запятые:

... И [шар[красный синий,красный фиолетовый,белый черный, ... ]]=0 И ...

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

[коробка шар![синий,красный]]>0
 
совет дня
Совет дня Некоторые люди полагают, что они мыслят, в то время как они просто переупорядочивают свои предрассудки. ==С. Джонсон
sun Символическая логика