Abstrakt. Programmering genom demonstration gör det möjligt för användare att enkelt anpassa sina program, automatisera repetitiva uppgifter helt enkelt genom att utföra några exempel. Vi formaliserar programmering genom demonstration som ett maskininlärningsproblem: med tanke på de förändringar i applikationstillståndet som följer av användarens demonstrerade åtgärder, lär dig det allmänna programmet som kartlägger från ett applikationstillstånd till nästa. Vi presenterar en metodik för lärande i detta utrymme av komplexa funktioner. Först utökar vi versionsrymder för att lära oss godtyckliga funktioner, inte bara begrepp. Sedan introducerar vi versionsutrymme algebra, en metod för att komponera enklare versionsutrymme för att konstruera mer komplexa utrymmen. Slutligen tillämpar vi vår versionsutrymme algebra på textredigeringsdomänen och beskriver ett implementerat system som heter SMARTedit som lär sig repetitiva textredigeringsförfaranden genom exempel. Vi utvärderar vårt tillvägagångssätt genom att mäta antalet exempel som krävs för att systemet ska kunna lära sig ett tillvägagångssätt som fungerar på resten av exemplen, och genom en informell användarstudie som mäter den ansträngning som användarna spenderar med hjälp av vårt system jämfört med att utföra uppgiften för hand. Resultaten visar att SMARTedit kan generalisera korrekt från så få som ett eller två exempel, och att användare i allmänhet sparar en betydande ansträngning när de utför uppgifter med SMARTedits hjälp.
Lau m.fl. senare utökade detta koncept till versionsutrymme algebra för att lära sig mer komplexa funktioner REF ].
Programming by Demonstration Using Version Space Algebra
{'venue': 'Machine Learning', 'journal': 'Machine Learning', 'mag_field_of_study': ['Computer Science']}