Richard J. Lipton a été sélectionné comme lauréat du prix Knuth 2014 "pour l'introduction de nouvelles idées et techniques".
Quelles sont selon vous les principales nouvelles idées et techniques développées par Lipton?
Remarque. Cette question deviendra un wiki communautaire, veuillez mettre une telle idée, technique ou résultat par réponse.
Réponses:
Le théorème du séparateur planaire indique que dans tout graphe planaire -vertex il existe un ensemble de sommets dont la suppression laisse le graphe déconnecté en au moins deux composantes à peu près équilibrées. De plus, un tel ensemble peut être trouvé en temps linéaire. Ce résultat (serré), prouvé par Lipton et Tarjan (améliorant un résultat précédent par Ungar) est un outil puissant pour concevoir des algorithmes sur des graphes planaires. Il fournit de nombreux algorithmes de temps sous-exponentiels exacts pour les problèmes NP-difficiles et des algorithmes d'approximation polynomiale du temps améliorés. Regarder la page wikipedia donne un bon point de départ pour explorer les nombreuses applications. Une enquête précoceG O ( √n G O(n−−√) avec des détails sur un certain nombre de demandes a été écrit par Lipton et Tarjan en 1980.
la source
Le théorème de Karp-Lipton déclare que ne peut pas avoir de circuits booléens de taille polynomiale à moins que la hiérarchie polynomiale ne s'effondre à son deuxième niveau.NP
Deux implications de ce théorème pour la théorie de la complexité:
la source
Auto-réductibilité aléatoire du permanent . Lipton a montré que s'il existe un algorithme qui calcule correctement la fraction permanente de de tout F n × n , où F est un champ fini de taille d'au moins 3 n , alors cet algorithme peut être utilisé comme une boîte noire pour calculer le permanent de toute matrice à forte probabilité.1−1/(3n) Fn×n F 3n
L'idée principale est que le permanent est un polynôme de faible degré, donc sa composition avec une fonction affine univariée est un polynôme univarié de faible degré (en x ) et peut être appris exactement à partir d'un petit nombre de valeurs par interpolation . Vous pouvez choisir un B aléatoire afin que la composition soit distribuée comme le permanent d'une matrice aléatoire pour tout x . A x = 0 polynôme univariée est juste le permanent de A . Les détails peuvent être trouvés dans le chapitre 8 d'Arora Barak .A+xB x B x x=0 A
Cette approche algébrique a été extrêmement influente dans la théorie de la complexité. Les idées de Lipton ont finalement conduit à la preuve du théorème IP = PSPACE, la preuve du théorème PCP, et à des résultats sur les codes locaux de correction d'erreur.
la source
Je ne suis pas sûr à 100% si l'explication ci-dessous est historiquement exacte. Si ce n'est pas le cas, n'hésitez pas à modifier ou supprimer.
Le test de mutation a été inventé par Lipton. Les tests de mutation peuvent être considérés comme un moyen de mesurer la qualité ou l'efficacité d'une suite de tests. L'idée clé est d'injecter des défauts dans le programme à tester (c'est-à-dire de muter le programme), de préférence les types de défauts qu'un programmeur humain est susceptible de faire, et de voir si la suite de tests trouve les défauts introduits. Un exemple typique du type de test de mutation de défaut introduit pourrait être de remplacer x> 0 par x <0, ou de remplacer x par x + 1 ou x-1. La fraction des défauts détectés par la suite de tests est le "score d'adéquation de mutation" d'une suite de tests. En termes très lâches, on peut penser à cela comme une méthode de Monte-Carlo pour calculer le score d'adéquation de la mutation.
Plus abstraitement, on pourrait dire que le test de mutation met en évidence une symétrie ou une dualité entre un programme et ses suites de tests: non seulement la suite de tests peut être utilisée pour devenir plus confiante quant à l'exactitude d'un programme, mais à l'inverse, un programme peut être utilisé pour gagner en confiance sur la qualité d'une suite de tests.
À la lumière de cette dualité, le test de mutation est également conceptuellement proche de l' injection de fautes . Les deux sont techniquement similaires mais ont des objectifs différents. Les tests de mutation visent à mesurer la qualité de la suite de tests, tandis que l'injection de fautes vise à établir la qualité du programme, généralement la qualité de sa gestion des erreurs.
Récemment, des idées issues de tests de mutation ont été utilisées pour tester (formaliser des) théories logiques. Pour paraphraser l'abrégé de (4): Lors du développement de formalisations non triviales dans un prouveur de théorème, un temps considérable est consacré au «débogage» des spéci fi cations et des théorèmes. En général, des spéci fi cations ou des théorèmes incorrects sont découverts lors d'échecs de tentatives de preuve. Il s'agit d'une forme coûteuse de débogage. Il est donc souvent utile de tester des conjectures avant de se lancer dans une preuve. Une façon possible de procéder consiste à attribuer des valeurs aléatoires aux variables libres de la conjecture, puis à l'évaluer. (4) utilise des mutations pour tester la qualité des générateurs de cas de test utilisés.
Histoire . Extrait de (1): L'histoire des tests de mutation remonte à 1971 dans un article d'étudiant de Richard Lipton [...] La naissance du champ peut également être identifiée dans d'autres articles publiés à la fin des années 1970 par Lipton et al. (2) ainsi que Hamlet (3).
Référentiel de tests de mutation: Théorie des tests de mutation .
RA DeMillo, RJ Lipton, FG Sayward, Conseils sur la sélection des données de test: Aide pour le programmeur en exercice .
RG Hamlet, Test de programmes à l'aide d'un compilateur .
S. Berghofer, T. Nipkow, Tests aléatoires dans Isabelle / HOL. .
la source
Le lemme de Schwartz - Zippel - DeMillo-Lipton est un outil fondamental de la complexité arithmétique: il indique essentiellement que si vous voulez savoir si un circuit arithmétique représente le polynôme zéro, il vous suffit d'évaluer le circuit sur une entrée. Ensuite, vous obtiendrez une valeur non nulle avec une bonne probabilité si le circuit ne représente pas le polynôme zéro.
Il s'agit d'un lemme particulièrement important car aucun algorithme déterministe à temps polynomial n'est connu pour ce problème.
Le lemme est généralement connu sous le nom de Schwartz-Zippel Lemma . Une histoire de ce lemme peut être trouvée sur le propre blog de Lipton .
la source
La capacité de couverture dans les systèmes d'addition de vecteurs est EXPSPACE-difficile : dans RJ Lipton, le problème d'accessibilité nécessite un espace exponentiel , rapport de recherche 63, Université de Yale, 1976
Un système d'addition de vecteur (VAS, ce qui équivaut à un réseau de Petri) de dimension est définie comme une paire ⟨ v 0 , A ⟩ où v 0 est un vecteur de nombres entiers non négatifs à N d et A est un ensemble fini de vecteurs de entiers inclus dans Z d . Un VAS définit un système de transition sur les configurations dans (notez qu'aucun composant de v ' ne peut être négatif). Le problème de couvrabilité , étant donné un EVA et un vecteur cible v dans N dd ⟨v0,A⟩ v0 Nd A Zd Nd v→v′ u A v′=v+u v′ v Nd v0→v1→⋯→vn vn≥v Nd vn(i)≥v(i) 1≤i≤d . Combiné avec une limite supérieure EXPSPACE prouvée par C. Rackoff en 1978 , le résultat de Lipton montre l'exhaustivité d'EXPSPACE.
la source
La complexité de la communication multipartite et le modèle Number-on-Forehead ont été introduits par Ashok K. Chandra , Merrick L. Furst et Richard J. Lipton dans Multi-party Protocols , STOC 1983, doi: 10.1145 / 800061.808737 .
Le modèle multipartite est une extension naturelle du modèle bipartite de Yao de complexité de la communication, où Alice et Bob ont chacun des moitiés de bits d'entrée qui ne se chevauchent pas et souhaitent communiquer pour calculer une fonction prédéterminée de l'entrée entière. Cependant, étendre la partition des bits d'entrée à plusieurs parties n'est souvent pas très intéressant (pour les bornes inférieures, on peut généralement considérer uniquement les deux premières parties).
la source