고차 프로그램을위한 프로그램 반전 알고리즘


10

프로그램 반전 이라는 용어 는 여러 가지 의미를 갖지만 아마도 AI의 맥락에서 J. McCarthy의 1956 년 튜링 머신의해 정의 된 기능의 반전으로 시작되었을 것입니다 . 가역 프로그래밍 (실제 및 논리), 부분 평가, 검증, 양방향 프로그래밍, 논리 프로그래밍 및 기계 학습과 같은 프로그램 반전과 다른 필드 사이의 많은 연결이 발견되었습니다.

프로그램 반전이란 무엇입니까? 첫 번째 근사에서 이런 식의 일이 : 프로그램을 감안할 때 형의 인수를 복용 하고 형의 결과를 반환 B를 , 프로그램 제작 P - 1 "어떻게 든"의 역이다 P를 . 나는 개념이 다양한 방식으로 명확해질 수 있고 (예를 들어) P 가 주입 되어야하므로 의도적으로 모호하다 . 해야 P - 1 ( B ) 모두를 반환하거나 일부 등이 P ( ) = BP:ABABP1PPP1(b)aP(a)=b?

McCarthy가 이미 지적한대로 대각선을 사용하거나 부분 평가를 사용하는 등 프로그램을 뒤집는 일반적인 방법이 있지만 효율적이지는 않습니다. 또한 내가 익숙한 프로그램 반전에 대한 대부분의 작업은 완전한 고차 프로그래밍 언어 (예 : -calculi) 를 다루지 않는 것 같습니다 .λ

참조 요청. -calculi 의 프로그램 반전을위한 명시 적 알고리즘의 최신 기술은 무엇입니까 (고차에 대한 제한 없음)?λ

답변:


5

이 분야에서 많은 양의 작업이 없었지만 거기에있는 작업은 꽤 흥미 롭습니다.

  1. Torben Mogensen이이 문제를 해결했습니다. 여기 그의 두 논문이 있습니다.

    첫 번째 논문은 1 차 기능적 프로그램을위한 알고리즘을 제공하고 두 번째 논문은이를 고차로 확장합니다. 이 알고리즘이 성공할시기의 정확한 특성은 향후 연구에 맡겨져 있습니다.

  2. Tetsuo Yokoyama, Holger Bock Axelsen 및 Robert Glück.

    여기에서는 1 차 기능 프로그램을 반전시키는 RFun 프로그래밍 언어에 대해 설명하지만, 역률 평가를 앞뒤로 빠르게 수행 할 수 있도록 주 입성 및 역 결정 결정 제한 조건을 적용합니다. (그들은이 주제에 관해 여러 가지 다른 논문을 썼습니다.

  3. Stefan Bohne과 Baltasar Trancón Widemann.

    이것은 정말 깔끔한 종이입니다! (a) 당신은 형태가 그들의 역수 와 짝을 이루는 함수 (여기서 당신이 사용하는 역의 개념에 관계없이) 로 범주를 구성 할 수 있으며, (b)이 범주는 콤팩트 한 구조를 가지고 있습니다. 이것은 약간 펑키 한 선형 유형의 규칙으로 프로그램을 작성한 다음 의미론에서 앞뒤 해석을 읽을 수 있음을 의미합니다.

    그것들은 상당히 거친 문법으로 기능적인 언어를 제공합니다.

  4. 프란체스코 티에 지아, 요시다 노부코

    나는 이것을 읽지 않았지만 다른 논문을 인터넷 검색 할 때만 발견했습니다. 저자와 주제를 감안할 때 이것이 바로 당신의 골목이라고 생각합니다!


감사. (2, 3, 4)는 프로그램 반전을 수행하는 것이 아니라 프로그램이 정의에 따라 가역적 / 역 가동 가능한 설계 프로그래밍 언어입니다. 이것은 밀접하게 관련되어 있지만 다른 문제입니다. 사실 나는 이러한 문제가 어떻게 관련되어 있는지 완전히 명확하지 않습니다. 반전이 반 반전의 가장 큰 경우 인 것 같아서 이미 문제를 해결하기 전에 반 반전을 보지 못했습니까? BTW Mogensen의 두 번째 논문은 2 차까지 올라갑니다.
Martin Berger

@ MartinBerger : 관계는 프로그램 반전을 사용하려는 대상에 달려 있다고 생각합니다! 유형 유추를보고 있었기 때문에 문제에 관심이 생겼습니다 (유형 레벨 함수가있는 경우 해당 함수를 반전시켜 수량화 인스턴스화를 알아낼 수 있음). 따라서 언어를 제한하는 것은 나를. 무엇을하려고합니까?
닐 크리슈나 스와미

지금은 일반적인 추상 문제에 관심이 있습니다. 프로그램 반전에 대한 관심은 프로그램 검증에서 비롯됩니다. 그리고 나는 단순히 PCF say 또는 STLC에서 람다 용어를 취하여 뒤집는 곳을 찾을 수 없었습니다. 내가 올바른 장소를보고 있지 않기 때문입니까?
Martin Berger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.