Lineaarinen ohjelmointi on matematiikan ja tilastojen haara, jonka avulla tutkijat voivat määrittää ratkaisuja optimointiongelmiin. Lineaariset ohjelmointiongelmat ovat erottamiskykyisiä siinä mielessä, että ne on määritelty selkeästi tavoitefunktion, rajoitusten ja lineaarisuuden suhteen. Lineaarisen ohjelmoinnin ominaisuudet tekevät siitä erittäin hyödyllisen kentän, joka on löytänyt käyttöä sovelletuilla aloilla logistiikasta teollisuuden suunnitteluun.
Kaikki lineaariset ohjelmointiongelmat ovat optimointiongelmia. Tämä tarkoittaa, että lineaarisen ohjelmointiongelman ratkaisun todellinen tarkoitus on joko maksimoida tai minimoida jokin arvo. Siksi lineaariset ohjelmointiongelmat löytyvät usein taloustieteestä, liiketoiminnasta, mainonnasta ja monista muista aloista, jotka arvostavat tehokkuutta ja resurssien säästämistä. Esimerkkejä kohteista, jotka voidaan optimoida, ovat voitto, resurssien hankinta, vapaa-aika ja hyödyllisyys.
Kuten nimestä voi päätellä, kaikilla lineaarisilla ohjelmointiongelmilla on ominaisuus olla lineaarisia. Tämä lineaarisuuden piirre voi kuitenkin olla harhaanjohtava, koska lineaarisuus viittaa vain muuttujiin, joihin on ensimmäinen teho (ja siten pois lukien tehofunktiot, neliöjuuret ja muut epälineaariset toiminnot). Lineaarisuus ei kuitenkaan tarkoita, että lineaarisen ohjelmointiongelman toiminnot ovat vain yhdellä muuttujalla. Lyhyesti sanottuna lineaarisuus lineaarisissa ohjelmointitehtävissä sallii muuttujien suhtautua toisiinsa linjan koordinaateina, lukuun ottamatta muita muotoja ja käyriä.
Kaikilla lineaarisilla ohjelmointiongelmilla on toiminto, jota kutsutaan "tavoitetoiminnoksi". Tavoitetoiminto on kirjoitettu muuttujilla, joita voidaan muuttaa haluamallaan tavalla (esim. työhön käytetty aika, tuotetut yksiköt jne.) päällä). Kohdefunktio on se, jonka lineaarisen ohjelmointiongelman ratkaisija haluaa maksimoida tai minimoida. Lineaarisen ohjelmointiongelman tulos annetaan tavoitefunktiona. Tavoitefunktio kirjoitetaan isolla kirjaimella "Z" useimmissa lineaarisissa ohjelmointitehtävissä.
Kaikilla lineaarisilla ohjelmointiongelmilla on rajoituksia tavoitefunktion sisällä oleville muuttujille. Nämä rajoitukset ovat eriarvoisuuden muotoja (esim. "B <3", missä b voi edustaa tekijän kuukausittain kirjoittamien kirjojen yksiköitä). Nämä epätasa-arvot määrittelevät, kuinka tavoitetoiminto voidaan maksimoida tai minimoida, koska ne yhdessä määrittelevät "alueen", jolla organisaatio voi tehdä päätöksiä resursseista.