Een restrictie is een methode in computationele chemie een beperkingsalgoritme om te voldoen aan de Newtoniaanse beweging van een stug lichaam dat uit massapunten bestaat. Een beperkingsalgoritme wordt gebruikt om ervoor te zorgen dat de afstand tussen massapunten behouden blijft. De algemene stappen zijn:
 nieuwe onbeperkte coördinaten kiezen (interne coördinaten)
 expliciete beperkingskrachten introduceren
 beperkingskrachten impliciet minimaliseren door de techniek van Lagrange-multiplicatoren of projectiemethoden

Beperkings-algoritmen worden vaak toegepast op simulaties van moleculaire dynamica. Hoewel dergelijke simulaties soms worden uitgevoerd met behulp van interne coördinaten die automatisch voldoen aan de bindingslengte-, bindingshoek- en torsiehoekbeperkingen, kunnen simulaties ook worden uitgevoerd met expliciete of impliciete restrictiekrachten voor deze drie beperkingen. Expliciete restrictiekrachten geven echter aanleiding tot inefficiëntie; er is meer rekenkracht nodig om een traject van een bepaalde lengte te krijgen. Daarom hebben interne coördinaten en oplossers van impliciete krachtbeperkingen over het algemeen de voorkeur.

Beperkingsalgoritmen bereiken rekenefficiëntie door beweging langs enkele vrijheidsgraden te verwaarlozen. In atomistische moleculaire dynamica is bijvoorbeeld de lengte van covalente bindingen met waterstof doorgaans beperkt; beperkingsalgoritmen mogen echter niet worden gebruikt als trillingen langs deze vrijheidsgraden belangrijk zijn voor het bestudeerde fenomeen.

Wiskundige achtergrond 
De beweging van een aantal N deeltjes kan worden beschreven door een reeks gewone differentiaalvergelijkingen van de tweede orde, de tweede wet van Newton, die in matrixvorm kan worden geschreven

waarbij M een massamatrix is en q de vector is van gegeneraliseerde coördinaten die de posities van de deeltjes beschrijven. De vector q kan bijvoorbeeld een 3N  Cartesische coördinaten van het deeltjesposities r k zijn, waarbij k loopt van 1 tot N; bij afwezigheid van beperkingen zou M de 3N x 3N diagonale vierkante matrix van de deeltjesmassa's zijn. De vector f vertegenwoordigt de gegeneraliseerde krachten en de scalaire V ( q ) vertegenwoordigt de potentiële energie, die beide functies zijn van de gegeneraliseerde coördinaten q .

Als M beperkingen aanwezig zijn, moeten de coördinaten ook voldoen aan M tijdonafhankelijke algebraïsche vergelijkingen

waarbij de index j loopt van 1 tot M . Kortheidshalve zijn deze functies g i gegroepeerd in een M-dimensionale vector g hieronder. De taak is om de gecombineerde verzameling differentiaal-algebraïsche (DAE) vergelijkingen op te lossen, in plaats van alleen de gewone differentiaalvergelijkingen (ODE) van de tweede wet van Newton.

Dit probleem werd in detail bestudeerd door Joseph Louis Lagrange, die de meeste methoden uiteenzette om het op te lossen.  De eenvoudigste benadering is om nieuwe gegeneraliseerde coördinaten te definiëren die onbeperkt zijn; deze benadering elimineert de algebraïsche vergelijkingen en reduceert het probleem opnieuw tot het oplossen van een gewone differentiaalvergelijking. Een dergelijke benadering wordt bijvoorbeeld gebruikt bij het beschrijven van de beweging van een star lichaam; de positie en oriëntatie van een star lichaam kan worden beschreven door zes onafhankelijke, onbeperkte coördinaten, in plaats van de posities te beschrijven van de deeltjes waaruit het bestaat en de beperkingen daartussen die hun relatieve afstanden behouden. Het nadeel van deze benadering is dat de vergelijkingen onpraktisch en complex kunnen worden; de massamatrix M kan bijvoorbeeld niet-diagonaal worden en afhankelijk zijn van de gegeneraliseerde coördinaten.

Een tweede benadering is het introduceren van expliciete krachten die werken om de beperking te handhaven; men zou bijvoorbeeld sterke veerkrachten kunnen introduceren die de afstanden tussen massapunten binnen een "stijf" lichaam versterken. De twee moeilijkheden van deze benadering zijn dat er niet precies aan de beperkingen wordt voldaan, en de sterke krachten kunnen zeer korte tijdstappen vereisen, waardoor simulaties rekenkundig inefficiënt worden.

Een derde benadering is het gebruik van een methode zoals Lagrange-vermenigvuldigers of projectie op de beperkingsvariëteit om de coördinaataanpassingen te bepalen die nodig zijn om aan de beperkingen te voldoen. Ten slotte zijn er verschillende hybride benaderingen waarin verschillende sets van beperkingen worden vervuld door verschillende methoden, bijvoorbeeld interne coördinaten, expliciete krachten en impliciete krachtoplossingen.

Computationele chemie