Jump to content

Электронный график

В информатике электронный граф — это структура данных , которая хранит отношение эквивалентности для терминов некоторого языка.

Определение и операции

[ редактировать ]

Позволять быть набором неинтерпретируемых функций , где является подмножеством состоящий из функций арности . Позволять быть счетным набором непрозрачных идентификаторов, которые можно сравнивать на предмет равенства, называемых идентификаторами e-класса . Применение к идентификаторам электронного класса обозначается и называется электронным узлом .

Затем электронный граф представляет классы эквивалентности электронных узлов, используя следующие структуры данных: [1]

  • объединения поиска Структура представление классов эквивалентности идентификаторов e-классов с обычными операциями , и . Идентификатор электронного класса является каноническим , если ; электронный узел является каноническим, если каждый канонично ( в ).
  • Ассоциация идентификаторов электронных классов с наборами электронных узлов, называемых электронными классами . Это состоит из
    • хешконы (т.е. сопоставление) канонических электронных узлов с идентификаторами e-классов, и
    • карта электронного класса который сопоставляет идентификаторы электронных классов с электронными классами, так что сопоставляет эквивалентные идентификаторы с одним и тем же набором электронных узлов:

Инварианты

[ редактировать ]

В дополнение к вышеуказанной структуре действительный электронный граф соответствует нескольким инвариантам структуры данных . [2] Два e-узла эквивалентны , если они принадлежат одному e-классу. утверждает Инвариант конгруэнтности , что электронный граф должен гарантировать, что эквивалентность замкнута относительно конгруэнтности , где два e-узла совпадают, когда . утверждает Инвариант хэшконов , что хэшконы сопоставляют канонические электронные узлы с их идентификатором электронного класса.

Операции

[ редактировать ]

Электронные графы раскрывают обертки вокруг , , и операции из поиска объединения, сохраняющие инварианты электронного графа. Последняя операция — электронное сопоставление — описана ниже.

Электронное сопоставление

[ редактировать ]

Позволять — набор переменных и пусть быть наименьшим набором, который включает функциональные символы нулевой арности (также называемые константами ), включает переменные и замыкается при применении функциональных символов. Другими словами, — наименьшее множество такое, что , , и когда и , затем . Терм, содержащий переменные, называется шаблоном , термин без переменных называется основой .

Электронный график представляет собой основной термин если один из его электронных классов представляет . Электронный класс представляет если какой-то электронный узел делает. Электронный узел представляет собой термин если и каждый электронный класс представляет собой термин ( в ).

электронное сопоставление — это операция, которая принимает шаблон и электронный график , и дает все пары где является заменой, отображающей переменные в к идентификаторам электронного класса и — это идентификатор электронного класса, такой, что каждый термин представлен . Существует несколько известных алгоритмов электронного сопоставления. [3] [4] Алгоритм реляционного электронного сопоставления основан на оптимальных соединениях для наихудшего случая и является оптимальным для наихудшего случая. [5]

Сложность

[ редактировать ]
  • Электронный граф с n равенствами можно построить за время O( n log n ). [6]

Равенство насыщения

[ редактировать ]

Насыщение равенством — это метод построения оптимизирующих компиляторов с использованием электронных графов. [7] Он работает путем применения набора перезаписей с использованием электронного сопоставления до тех пор, пока электронный граф не станет насыщенным, не будет достигнут тайм-аут, не будет достигнут предел размера электронного графа, не будет превышено фиксированное количество итераций или не будет достигнуто какое-либо другое условие остановки. После перезаписи из электронного графика извлекается оптимальный член в соответствии с некоторой функцией стоимости, обычно связанной с размером AST или соображениями производительности.

Приложения

[ редактировать ]

Электронные графы используются в автоматизированном доказательстве теорем . Они являются важной частью современных решателей SMT, таких как Z3. [8] и CVC4 , где они используются для решения пустой теории путем вычисления конгруэнтного замыкания набора равенств, а электронное сопоставление используется для создания экземпляров кванторов. [9] В DPLL(T) решателях на основе , которые используют обучение предложений, управляемое конфликтами (также известное как нехронологический возврат), электронные графики расширяются для создания подтверждающих сертификатов. [10] Электронные графы также используются в средстве доказательства теорем Simplify ESC/Java . [11]

Насыщение равенством используется в специализированных оптимизирующих компиляторах , [12] например, для глубокого обучения [13] и линейная алгебра . [14] Насыщение равенством также использовалось для проверки перевода, применяемого в наборе инструментов LLVM . [15]

Электронные графы применялись для решения нескольких задач анализа программ , включая фаззинг, [16] абстрактная интерпретация, [17] и библиотечное обучение. [18]

  1. ^ ( Уиллси и др. 2021 )
  2. ^ ( Уиллси и др. 2021 )
  3. ^ ( де Моура и Бьёрнер, 2007 )
  4. ^ Москаль, Михал; Лопушаньский, Якуб; Кинири, Джозеф Р. (6 мая 2008 г.). «Электронное сопоставление для удовольствия и прибыли» . Электронные заметки по теоретической информатике . Материалы 5-го Международного семинара по теориям выполнимости по модулю (SMT, 2007). 198 (2): 19–35. дои : 10.1016/j.entcs.2008.04.078 . ISSN   1571-0661 .
  5. ^ Чжан, Ихонг; Ван, Ису Реми; Уиллси, Макс; Тэтлок, Закари (12 января 2022 г.). «Реляционное электронное сопоставление» . Труды ACM по языкам программирования . 6 (ПОПЛ): 35:1–35:22. дои : 10.1145/3498696 . S2CID   236924583 .
  6. ^ ( Флэтт и др. 2022 , стр. 2)
  7. ^ ( Тейт и др. 2009 )
  8. ^ де Моура, Леонардо; Бьёрнер, Николай (2008). «Z3: эффективный решатель SMT». В Рамакришнане, Чехия; Рехоф, Якоб (ред.). Инструменты и алгоритмы построения и анализа систем . Конспекты лекций по информатике. Том. 4963. Берлин, Гейдельберг: Springer. стр. 337–340. дои : 10.1007/978-3-540-78800-3_24 . ISBN  978-3-540-78800-3 .
  9. ^ Рюммер, Филипп (2012). «Электронное сопоставление со свободными переменными». В Бьёрнере, Николай; Воронков, Андрей (ред.). Логика для программирования, искусственного интеллекта и рассуждения. Слушания . 18-я Международная конференция, LPAR-18, Мерида, Венесуэла, 11–15 марта 2012 г. Конспекты лекций по информатике. Том. 7180. Берлин, Гейдельберг: Springer. стр. 359–374. дои : 10.1007/978-3-642-28717-6_28 . ISBN  978-3-642-28717-6 .
  10. ^ ( Флэтт и др. 2022 , стр. 2)
  11. ^ Детлефс, Дэвид; Нельсон, Грег; Сакс, Джеймс Б. (май 2005 г.). «Упростить: средство доказательства теорем для проверки программ». Журнал АКМ . 52 (3): 365–473. дои : 10.1145/1066100.1066102 . ISSN   0004-5411 . S2CID   9613854 .
  12. ^ Джоши, Раджив; Нельсон, Грег; Рэндалл, Кейт (17 мая 2002 г.). «Денали: целенаправленный супероптимизатор». Уведомления ACM SIGPLAN . 37 (5): 304–314. дои : 10.1145/543552.512566 . ISSN   0362-1340 .
  13. ^ Ян, Ичен; Фотилимта, Пхитчайя Мангпо; Ван, Ису Реми; Уиллси, Макс; Рой, Судип; Пиенаар, Жак (17 марта 2021 г.). «Насыщение равенства для супероптимизации тензорных графов». arXiv : 2101.01332 [ cs.AI ].
  14. ^ Ван, Ису Реми; Хатчисон, Шана; Леанг, Джонатан; Хау, Билл; Сучу, Дэн (22 декабря 2020 г.). «СПОРЫ: оптимизация суммы произведения посредством насыщения реляционным равенством для крупномасштабной линейной алгебры». arXiv : 2002.07951 [ cs.DB ].
  15. ^ Степп, Майкл; Тейт, Росс; Лернер, Сорин (2011). «Валидатор перевода на основе равенства для LLVM». В Гопалакришнане — Ганеша; Кадир, Шаз (ред.). Компьютерная проверка . Конспекты лекций по информатике. Том. 6806. Берлин, Гейдельберг: Springer. стр. 737–742. дои : 10.1007/978-3-642-22110-1_59 . ISBN  978-3-642-22110-1 .
  16. ^ «Wasm-mutate: фаззинг компиляторов WebAssembly с помощью электронных графиков (EGRAPHS 2022) — PLDI 2022» . pldi22.sigplan.org . Проверено 3 февраля 2023 г.
  17. ^ Трус, Сэмюэл; Константинидес, Джордж А.; Дрейн, Тео (17 марта 2022 г.). «Абстрактная интерпретация электронных графиков». arXiv : 2203.09191 [ cs.LO ].
    Трус, Сэмюэл; Константинидес, Джордж А.; Дрейн, Тео (30 мая 2022 г.). «Сочетание электронных графиков с абстрактной интерпретацией». arXiv : 2205.14989 [ cs.DS ].
  18. ^ Цао, Дэвид; Кункель, Роуз; Нанди, Чандракана; Уиллси, Макс; Тэтлок, Закари; Поликарпова, Надя (9 января 2023 г.). «Бебля: лучшее изучение абстракций с помощью электронных графиков и борьбы с унификацией». Труды ACM по языкам программирования . 7 (ПОПЛ): 396–424. arXiv : 2212.04596 . дои : 10.1145/3571207 . ISSN   2475-1421 . S2CID   254536022 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 63d9dd23e1789f12432af7918894dd55__1719148260
URL1:https://arc.ask3.ru/arc/aa/63/55/63d9dd23e1789f12432af7918894dd55.html
Заголовок, (Title) документа по адресу, URL1:
E-graph - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)