Деревья->упрошение формул
Кто-нить знает как с помошью деревьев можно упрошать формулы? говорят как-то можно, но я не встречал еще инфы по сабжу. может вы знаете?
на кадом узле должна быть операция, на концах дерева - операнды. упрощает разбор и вычисления при помощи компов.
+
| \
| \
a +
|\
| \
b c
ты это имеешь ввиду ?
на кадом узле должна быть операция, на концах дерева - операнды. упрощает разбор и вычисления при помощи компов.
+
| \
| \
a +
|\
| \
b c
ты это имеешь ввиду ?
разумеется, что надо перевести выражение в постфиксную форму :)
а дальше то как упрошается?
разумеется, что надо перевести выражение в постфиксную форму :)
а дальше то как упрошается?
что ты имеешь ввиду под упрощением ? ( x + 1 - 1) = x ? если да то эт наверно могло бы быть темой для дисертации. хотя есть у меня пару идей... вот например если результат какого нить подвыражения равен нулю то его можна убрать.
что ты имеешь ввиду под упрощением ? ( x + 1 - 1) = x ? если да то эт наверно могло бы быть темой для дисертации. хотя есть у меня пару идей... вот например если результат какого нить подвыражения равен нулю то его можна убрать.
понятно правильно.
но главное это упрошение переменных, если делать все серьезно, то реализация может быть очень сложна...
т.е. (a+b)*(c-d)=
/ \
+ +
/\ /\
a b c d
2) *
/ \
a+b c+d
3) a*c+a*d+b*c+b*d
понятно правильно.
но главное это упрошение переменных, если делать все серьезно, то реализация может быть очень сложна...
т.е. (a+b)*(c-d)=
/ \
+ +
/\ /\
a b c d
2) *
/ \
a+b c+d
3) a*c+a*d+b*c+b*d
умножение многчленов... гмс.. я б не сказал что формула стала проще. Цель N1 : сформулировать метод численной оценки простоты формулы. Стратегия N1 : сформулировать набор эмпирических правил типа "если результат какого нить подвыражения равен нулю то его можна убрать". например b-b. Применять к формуле пока формула не станет максимально простой. Но эт так первое что пришло в голову. Вообще задача лежит в области ИИ. Интересная задача. А то тут некоторые на соседних ветках такую туфту предлагают. :D
умножение многчленов... гмс.. я б не сказал что формула стала проще. Цель N1 : сформулировать метод численной оценки простоты формулы. Стратегия N1 : сформулировать набор эмпирических правил типа "если результат какого нить подвыражения равен нулю то его можна убрать". например b-b. Применять к формуле пока формула не станет максимально простой. Но эт так первое что пришло в голову. Вообще задача лежит в области ИИ. Интересная задача. А то тут некоторые на соседних ветках такую туфту предлагают. :D
копайте глубже. когда вы получите такую форму записи, будет возможно упрошение. я привел просто такой набор переменных, которые никак не сократятся :)
а зачем ваши попытки искать нули? 7*b-6*b=b элементарно упрошается (и реализуется в алгоритмах) без всяких нулей.
и все равно, что бы рассматривать ваши нули, нужно все равно раскрывать скобки, т.е. выполнять операции по приоритету - как вы узнаете без раскрытия скобок, что (a+b)*c-a*с-b*c=0 ????
ии тут не причем. вы методы математики ИИ называете? :) тогда мат. пакеты это вообще алгоритмический парадокс по вашему )))
если бы это нужно было мне (и +за это бы заплатили), а не тому кто меня попросил это сделать, я бы уже сделал сделал.
копайте глубже. когда вы получите такую форму записи, будет возможно упрошение.
какую форму ? в виде дерева ? такую форму получить не проблема. Но обычно она используется для других вещей. Про то что бы упрощать с помощью нее, в классических книгах по ИИ не встречал, но задача вообще интересна.
я привел просто такой набор переменных, которые никак не сократятся :)
а зачем ваши попытки искать нули? 7*b-6*b=b
дык... равенство неверно.
элементарно упрошается (и реализуется в алгоритмах) без всяких нулей.
и все равно, что бы рассматривать ваши нули, нужно все равно раскрывать скобки, т.е. выполнять операции по приоритету - как вы узнаете без раскрытия скобок, что (a+b)*c-a*с-b*c=0 ????
я тебе что запрещаю раскрывать скобки ? узнай сначала что такое эвристика. Тебе надо сформировать набор правил которыми пользуются математики при упрощении. Одно из таких правил : поиск подввыражений результат которых равен 0.
ии тут не причем. вы методы математики ИИ называете? :)
блин... еще один... просто прямо какое то нашествие математиков. Задача относится к ИИ так как воспроизводит человеческий способ решения этой задачи, и в частности способы мышления которыми пользуются математики.
тогда мат. пакеты это вообще алгоритмический парадокс по вашему )))
гыг.. интерсно почему ? поясни. гыг.
если бы это нужно было мне (и +за это бы заплатили), а не тому кто меня попросил это сделать, я бы уже сделал сделал.
мне вообще пофиг.
ладно, тогда не спорю )))
подожди, 7*b-6*b не равняется b по вашему?
ладно, тогда не спорю )))
гыг. мне че то со сна читая твой пост показалось что вместо b стоит ноль в правой части равентсва. А то текст у тя про одно а формула про другое. гыг.
гыг. мне че то со сна читая твой пост показалось что вместо b стоит ноль в правой части равентсва. А то текст у тя про одно а формула про другое. гыг.
вы определенно заморочены на нулях )))
вы определенно заморочены на нулях )))
Да есть немного :D :D особенно потому что в универе нужно сдавать кучу лаб :D :D :D
Выражения типа 7*b - 6*b можно частично вычислять влоб. Т.е. моделируем арифметику.
Кроме того, думаю, нужно неким образом распознавать формулы сокращённого умножения и раскрытых скобок типа (a + b)^2.
я помнится искал алгоритмы интегрирования
Значит плохо искал. Вот здесь есть алгоритмы интегрирования.