Scipy lineær programmering

Scipy lineær programmering

I dagens verden der enhver annen oppgave krever høy beregningskraft eller arbeidsstyrke, tar kunstig intelligente systemer stedet for manuell arbeidskraft. Derfor konverteres alle andre dagliglivsbaserte oppgaver til autonome systemer. For å lage slike autonome systemer, må vi skape samhandling med datamaskinene for å få dem til å lære å utføre programmet og hvordan vi skal ta beslutninger. Vi bruker visse datamaskinforståelige språk, også referert til som programmeringsspråk, for å muliggjøre dette samspillet.

Blant alle dataspråk som er i bruk, er Python en av de mest kjente. Språket er bygget med flere biblioteker som tillater funksjon av flere oppgaver ved å bruke sine innebygde moduler og funksjoner. Python er også kreditert for å være et nybegynnervennlig språk på grunn av det lettfattelige manuset siden Pythons manus er mest skrevet på det engelske språket. Scipy er Pythons berømte bibliotek som er bygget på et annet berømt bibliotek, "Numpy", av Python. Scipy fungerer ved å tilby de innebygde funksjonene og modulene for oppgavene der vi jobber med opplæring av dyp læring kunstige nevrale nettverk og maskinlæringsalgoritmer for matematiske og beregningsmessige formål og optimalisering og optimalisering.

Scipys "lineære programmering" -modul representerer disse verktøyene og teknikkene som brukes som de matematiske verktøyene for matematiske optimaliseringer for å løse de lineære systemligningene, inkludert både likhetene og ulikhetene. Det hjelper med å maksimere eller minimere systemet eller den lineære funksjonen. Lineære systemer kan ha mange løsninger, så vi bruker den lineære programmeringen slik at vi ender opp med å finne en bestemt løsning for ulikhetssystemet.

Fremgangsmåte:

Denne artikkelen dekker introduksjonen av emnet Scipy Linear Programming. Deretter vil vi få kunnskapen om syntaks for erklæringen om denne funksjonen i Python-skriptet med dets muliggjørbare parametere. Og så implementeres funksjonen ved hjelp av eksempler.

Syntaks:

Syntaksen for den scipy lineære programmeringsfunksjonen i Python -skriptet kan skrives som følger:

$ scipy.optimalisere.LinProg (C, A_UB = Ingen, B_UB = Ingen, A_EQ = Ingen, B_EQ = Ingen, grenser = ingen, metode = 'Highs', callback = ingen, alternativer = ingen, x0 = ingen, integralitet = ingen)


I den tidligere nevnte funksjonen er parameter “C” den 1-dimensjonale matrisen som har informasjonen om koeffisientene til den lineære funksjonen som vi ønsker å minimere gjennom lineær programmering. De neste parametrene, “A_UB” og “B_UB”, er de valgfrie parametrene. Begge er henholdsvis de todimensjonale og 1-dimensjonale matriserene, der A_UB snakker om ulikhetsbegrensningsmatrisen på "X" -variabelen til det lineære ligningssystemet. Mens B-UB er en ulikhetsbegrensningsvektor for verdien av A_UB i korrespondanse til X.

"Sekvens" -parameteren viser den øvre grensen og den nedre grensen for maksimering eller minimering av hvert element i x. Den endelige parameteren er "metoden" som er valgfri, men dette spesifiserer standardalgoritmen for å løse problemet. Verdien er "høy" som standard.

Returverdi:

Den lineære programmeringsfunksjonen returnerer verdiene som den endimensjonale matrisen som er et resultat av den spesielle løsningen for å minimere objektivfunksjonen etter å ha tilfredsstilt de mulige begrensningene for funksjonen.

Eksempel 1:

La oss løse et lineært system med ulikheter og bruke Scipys lineære programmering for å finne løsningen for å minimere objektivfunksjonen til det systemet. Før du flytter for å skrive koden, må du huske at vi skal skrive programmet i "Google Collab" som er anerkjent som en Open Source Online Python-plattform med alle de forhåndsinstallerte Python-pakkene.

La oss starte med å lage en ny notisbok i programmet. Før vi skriver programmet, må vi definere eller ta systemet med de lineære ligningene. For det formålet tar vi følgende lineære system og jobber for å minimere denne funksjonen med alle dens begrensninger ved hjelp av lineær programmering:

Minimer y = 5x1 + 10x2 +15x3

slik at :


Vi må minimere "y" med alle dets begrensninger. Vi er pålagt å importere informasjonen som er relevant for den lineære programmeringen og matrisen til programmet vårt. For det importerer vi de to viktige pakkene fra T “Numpy” som omhandler definisjonen og funksjonene til matrisen. Den andre er Scipys “Optimize Attribute” som vi importerer “Linprog” -funksjonen.

Når vi er ferdige med disse bibliotekene, erklærer og definerer vi likningene til det tidligere nevnte lineære systemet en etter en. Først og fremst definerer vi "y" som fungerer som koeffisienten for den lineære objektvektoren, "y". Ring “NP. matrise ”og pass alle koeffisientene til Y til elementene i matrisen som“ NP. Array ([5, 10, 15]) ”.

Nå definerer vi ulikhetsbegrensningsmatrisen for dette lineære systemet. Som er definert i formen ved å bruke Numpys “NP. Array ([]) ”-metode. Denne matrisen har elementene som “NP. Array ([-1, -1, -1], [-1, 1, 0], [0, 0, 15], [-1, 0, 0], [0, -1, 0], [0 , 0, -1]) ”. Vi lagrer denne matrisen som "a_ub". Etter dette definerer vi “B_UB”. Verdiene til B_UB er “NP.Array ([-1050, 0, -340, 0, 0, 0]) ”. For å finne den optimale løsningen for dette eksemplet, kaller vi "Linear Programming ()" -funksjonen og passerer "A_UB" -matrisen, "B_UB" -vektoren og "C" -koeffisienten til parameteren til funksjonen som "Linprog (C, a_ub, b_ub) ”. Deretter viser vi resultatene. Programmet for dette eksemplet er skrevet i form av Python -kode med utdataene som følger:

Importer numpy som NP
Fra scipy.Optimaliser import linprog
C = NP.Array ([10, 15, 25])
a_ub = np.Array ([[ -1, -1, -1], [-1, 2, 0], [0, 0, -1], [-1, 0, 0], [0, -1, 0], [0, 0, -1]])
b_ub = np.Array ([ -1000, 0, -340, 0, 0, 0])
Resultat = LINPROG (C, A_UB, B_UB)
trykk ('Optimal verdi:', runde (resultat.moro, ndigits = 2),
'\ nx verdier:', resultat.x,
'\ nnummer av iterasjoner:', resultat.nit,
'\ nstatus:', resultat.beskjed)


Konklusjon

I denne redaksjonen dekket vi temaet "Scipy Linear Programming". Vi diskuterte hva lineær programmering er og hvorfor vi trenger det. Deretter snakket vi om syntaks for denne funksjonen og anvendte denne funksjonen på et lineært system med ulikheter for å finne sin optimaliserte løsning.