Lineair programmeren is een tak van wiskunde en statistiek waarmee onderzoekers oplossingen voor optimalisatieproblemen kunnen bepalen. Lineaire programmeerproblemen onderscheiden zich doordat ze duidelijk gedefinieerd zijn in termen van een objectieve functie, beperkingen en lineariteit. De kenmerken van lineair programmeren maken het een uiterst nuttig veld dat gebruik heeft gevonden in toegepaste gebieden, variërend van logistiek tot industriële planning.
Alle lineaire programmeerproblemen zijn optimalisatieproblemen. Dit betekent dat het ware doel achter het oplossen van een lineair programmeerprobleem is om een bepaalde waarde te maximaliseren of te minimaliseren. Lineaire programmeerproblemen komen dus vaak voor in economie, zaken, reclame en vele andere gebieden die waarde hechten aan efficiëntie en het behoud van hulpbronnen. Voorbeelden van items die kunnen worden geoptimaliseerd zijn winst, het verwerven van middelen, vrije tijd en nut.
Zoals de naam aangeeft, hebben lineaire programmeerproblemen allemaal de eigenschap lineair te zijn. Dit kenmerk van lineariteit kan echter misleidend zijn, aangezien lineariteit alleen verwijst naar variabelen die de eerste macht (en dus exclusief machtsfuncties, vierkantswortels en andere niet-lineaire) functies). Lineariteit betekent echter niet dat de functies van een lineair programmeerprobleem slechts van één variabele zijn. Kortom, lineariteit in lineaire programmeerproblemen maakt het mogelijk dat de variabelen zich tot elkaar verhouden als coördinaten op een lijn, met uitzondering van andere vormen en krommen.
Alle lineaire programmeerproblemen hebben een functie die de "objectieve functie" wordt genoemd. De objectieve functie is geschreven in termen van de variabelen die naar believen kunnen worden gewijzigd (bijv. tijd besteed aan een baan, geproduceerde eenheden enz. Aan). De objectieve functie is de functie die de oplosser van een lineair programmeerprobleem wil maximaliseren of minimaliseren. Het resultaat van een lineair programmeerprobleem wordt gegeven in termen van de doelfunctie. De objectieve functie wordt in de meeste lineaire programmeerproblemen met de hoofdletter "Z" geschreven.
Alle lineaire programmeerproblemen hebben beperkingen op de variabelen binnen de doelfunctie. Deze beperkingen nemen de vorm aan van ongelijkheden (bijv. "b < 3", waarbij b de eenheden van boeken kan vertegenwoordigen die door een auteur per maand worden geschreven). Deze ongelijkheden bepalen hoe de objectieve functie kan worden gemaximaliseerd of geminimaliseerd, aangezien ze samen het "domein" bepalen waarin een organisatie beslissingen kan nemen over middelen.