Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2014, 14:04   #21
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Формализуйте правила, которые вы используете для анализа таблицы и создания исходника на основании их. Придумайте способ как их записать в виде некоторых данных, например, в табличном виде. Далее используя входящую табличку и ваш свод правил генерите нужный код. Пока формального свода правил не будет - ничего не будет. И ни какой ИИ не поможет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.02.2014, 14:14   #22
fanlis
Пользователь
 
Регистрация: 13.05.2007
Сообщений: 60
По умолчанию

программа пишется на языке, основанном на pascal'e, в общем-то там все то же самое, только без всяких заморочек и мудростей. Потом программа пропускается через специальный компилятор и делается код, а вот для чего, я не знаю. Учитывая, что фирма связана с разработкой микроэлектроники, возможно этот код зашивается в какую-нибудь ПЗУ. В любом случае при чем тут назначение? Мне предоставили dll, таблицы и набор правил, этого достаточно для написания программы.
fanlis вне форума Ответить с цитированием
Старый 14.02.2014, 14:18   #23
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Вот и предоставил бы dll, таблицы, и набор правил в начале темы. Не пришлось бы три дня обсуждать сферическую задачу.
doktor255 вне форума Ответить с цитированием
Старый 14.02.2014, 14:24   #24
fanlis
Пользователь
 
Регистрация: 13.05.2007
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Формализуйте правила, которые вы используете для анализа таблицы и создания исходника на основании их. Придумайте способ как их записать в виде некоторых данных, например, в табличном виде. Далее используя входящую табличку и ваш свод правил генерите нужный код. Пока формального свода правил не будет - ничего не будет. И ни какой ИИ не поможет
Ну по всей видимости в формализации-то и проблема. Я писал в постах ранее, как я пытался это сделать. Но у меня получается, что я просто ищу какие-то частные случаи и их отлавливаю, но достаточно поменяться одному параметру и случай этот не будет найден. Причем все это не систематизировано. То что я делал мне напоминает поиск сигнатур в антивирусах, но у меня не получается применить материалы по этой теме к своему проекту.
fanlis вне форума Ответить с цитированием
Старый 14.02.2014, 15:23   #25
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Моя задача состоит в том, чтобы, во-первых, запрограммировать тесты так, чтобы они тратили наименьшее кол-во времени, во-вторых, программа должна иметь минимальный размер. Собственно я нахожу наиболее оптимальное соотношение между временем и размером.
переводим таблицу состояний в таблицу изменений.
0 параметр не изменился +/-n изменение параметра указанную величину.

Код:
 0  0  0 0 0 -исходное состояние 
 0 +2 +4 0 0 -новое состояние (надо изменить второй 2=(0+2, третий 4(0+4)
+2 -1 -2 0 0 (первый 2 второй 1(=+2-1) третий 2=(+4-2)
теперь мы честно делаем циклы для установки и ... меняем только там где нужно. (время выиграно!!). причем без всякой модификации программы.
(только за счет других исходных данных!).
Если позволяется менять порядок циклов, то и еще можно выиграть.
Но определение оптимального порядка для общего случая не такая простая задача.

Цитата:
переводим таблицу состояний в таблицу изменений.
это как раз то самое что делаешь ты
Цитата:
я просто ищу какие-то частные случаи и их отлавливаю,
ищем частный случай (изменили/не изменяли) и на сколько изменили.
и формализация этих изменений.
вместо кодирования величин, мы кодируем их изменения.
у такой таблицы есть плюсы (можем управлять временем работы), но есть и минусы (чувствительна к сбоям, накапливание ошибок).

примерный код работы с таблицей изменений
Код:
/// один раз выставляем ВСЕ параметры (начальное состояние)
for i:=1 to N do begin
  p[i]:=0;
  Set(i, p[i]); //установка в соответствии  c p[i]
end;

for k:=1 to M do begin
  ReadTest(v); //читаем строку изменений
  for i:=1 to N do begin
    if v[i]<>0 then begin анализируем необходимость изменений
      p[i]:=p[i]+v[i];
      Set(i, p[i]); устанавливаем если требуется
    end;
  end; 
  RunTest; выполняем тест
end;
вместо таблицы изменений, можно просто хранить текущее(точнее предыдущее) состояние и анализ проводить сравнением с ним!
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 14.02.2014 в 15:43.
evg_m вне форума Ответить с цитированием
Старый 14.02.2014, 15:50   #26
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

fanlis, вот теперь, более-менее понятна задачка, которую вы хотите решить.
Вам нужна экспертная система примерно такая, как в книге Б. Сойер, Д.Л. Фостер "Программирование эспертных систем на Паскале".
Решение будет примерно таким. Для определённого состояния сигнатуры таблицы (типового состояния), пишется код (один раз ручной работы) и включается в правила эксперта в виде процедуры.
Прогоняем новую таблицу, если тест прошёл, на выходе появляется набор использованных процедур. Вставляем эти роцедуры в заранее подготовленную заготовку и вот он, счастье.
Если тест не прошёл, выводится сообщение, что не получилось. Дописываем процедуру и включаем её в свод правил.
Вот, примерно так.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 14.02.2014 в 17:09.
Smitt&Wesson вне форума Ответить с цитированием
Старый 15.02.2014, 22:02   #27
fanlis
Пользователь
 
Регистрация: 13.05.2007
Сообщений: 60
По умолчанию

evg_m, интересный подход! Посмотрю, можно ли его применить.

Smitt&Wesson, спасибо за книгу, посмотрю что можно из нее извлечь.
fanlis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищется програмист для написания 2х простых программ DasGluckk Фриланс 3 17.11.2010 13:02
ПО для написания программ на JS jetyb JavaScript, Ajax 8 17.11.2010 06:01
литература для написания программ для at89c5132 wanes101 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 23.08.2010 11:21
Выбор технологии для написания программ JamS007 Общие вопросы C/C++ 5 24.05.2009 16:44
текстовые редакторы для написания и редактирования программ still_alive Свободное общение 2 22.12.2007 11:25