Ciència computacional

De la Viquipèdia, l'enciclopèdia lliure

La computació científica o ciència computacional és el camp d’estudi relacionat amb la construcció de models matemàtics i tècniques numèriques per resoldre problemes científics, de ciències socials i problemes d'enginyeria. Típicament és l’aplicació de modelització numèrica i altres formes de càlcul de problemes en diverses disciplines científiques.

Aquest camp és diferent de la informàtica i a la teoria i experimentació, que són formes tradicionals de la ciència i l'enginyeria. El focus de la computació científica és per guanyar enteniment, principalment a través de l'anàlisi de models matemàtics implementats en computadors.

Científics i enginyers desenvolupen software, aplicacions informàtiques per modelar sistemes que estan sent estudiats, i córrer aquests programes amb diferents conjunts d’entrades. En general, aquests models requereixen una gran quantitat de càlculs (usualment de punt flotant) i són sovint executats en supercomputadors o plataformes de computació distribuïda.

L’anàlisi numèrica és un pilar fonamental de tècniques utilitzades en les ciències computacionals.

La computació científica és considerada com la tercera modalitat de la ciencia, complementant i afegint a la experimentació/observació i teoria.

El científic computacional[modifica]

El terme científic computacional s’utilitza per descriure algú amb coneixements de ciència computacional. Aquesta persona és sovint un científic, enginyer o matemàtic aplicat que utilitza computació d’alt rendiment per aplicar millores en diferents disciplines com la física, química o enginyeria.

Un científic computacional ha de ser capaç de:

  • reconèixer problemes complexos
  • conceptualitzar correctament el sistema que conté aquests problemes
  • dissenyar una estructura d’algoritmes capaç d’estudiar aquest sistema: la simulació
  • escollir una infraestructura computacional apropiada (computació paral·lela/graella de càlcul/supercomputadors)
  • maximitzar el poder computacional de la simulació
  • avaluar fins a quin nivell el resultat de la simulació s’assembla als sistemes: el model és validat
  • ajustar la conceptualització del sistema correctament
  • repetir el cicle fins a obtenir un nivell de validació adequat

Aplicacions de la computació científica[modifica]

Els dominis problemàtics per a la ciència computacional/informàtica científica inclouen:

Ciència computacional predictiva[modifica]

La ciència computacional predictiva és una disciplina científica que es dedica a la formulació, calibratge, solució numèrica i validació de models matemàtics dissenyats per predir aspectes específics d'esdeveniments físics, donades les condicions inicials i de contorn, i un conjunt de paràmetres caracteritzadors i incerteses associades.[1] En casos típics, l'enunciat predictiu es formula en termes de probabilitats. Per exemple, donat un component mecànic i una condició de càrrega periòdica, "la probabilitat és (per exemple) del 90% que el nombre de cicles en avaria (Nf) estigui a l'interval N1<Nf<N2".[2]

Sistemes urbans complexos[modifica]

El 2018, més de la meitat de la població mundial viu a les ciutats.[3] L'any 2050, les Nacions Unides estimen, el 68% de la població mundial serà urbana.[3] Aquest creixement urbà se centra en les poblacions urbanes dels països en desenvolupament on els habitants de les ciutats es duplicaran amb més de 2.500 milions en 2009 fins a gairebé 5.200 milions l'any 2050. Les ciutats són sistemes massivament complexos creats per humans, formats per humans i governats per humans. Intentar predir, entendre i donar forma d'alguna manera al desenvolupament de les ciutats en el futur requereix un pensament complex i models i simulacions computacionals per ajudar a mitigar els reptes i possibles desastres. L'objectiu de la investigació en sistemes complexos urbans és, mitjançant la modelització i la simulació, construir una millor comprensió de la dinàmica de la ciutat i ajudar a preparar-se per a la propera urbanització.

Finances computacionals[modifica]

Article principal: Finances computacionals

Als mercats financers, grans volums d'actius interdependents són negociats per un gran nombre de participants del mercat que interactuen en diferents llocs i zones horàries. El seu comportament és d'una complexitat sense precedents i la caracterització i mesura del risc inherent a aquest conjunt d'instruments tan divers es basa normalment en models matemàtics i computacionals complicats. La resolució d'aquests models exactament en forma tancada, fins i tot a nivell d'un sol instrument, normalment no és possible i, per tant, hem de buscar algorismes numèrics eficients. Això s'ha tornat encara més urgent i complex recentment, ja que la crisi creditícia ha demostrat clarament el paper dels efectes en cascada que van des d'instruments únics passant per carteres d'entitats individuals fins fins i tot la xarxa comercial interconnectada. Entendre això requereix un enfocament multiescala i holístic on els factors de risc interdependents, com ara el risc de mercat, de crèdit i de liquiditat es modelin simultàniament i a diferents escales interconnectades.

Biologia computacional[modifica]

Article principal: Biologia computacional

Els nous desenvolupaments emocionants en biotecnologia estan revolucionant la biologia i la investigació biomèdica. Alguns exemples d'aquestes tècniques són la seqüenciació d'alt rendiment, la PCR quantitativa d'alt rendiment, la imatge intracel·lular, la hibridació in situ de l'expressió gènica, les tècniques d'imatge tridimensional com la microscòpia de fluorescència de fulls de llum i la projecció òptica (micro)-tomografia per ordinador. Donades les quantitats massives de dades complicades que generen aquestes tècniques, la seva interpretació significativa, i fins i tot el seu emmagatzematge, constitueixen grans reptes que requereixen nous enfocaments. Anant més enllà dels enfocaments bioinformàtics actuals, la biologia computacional necessita desenvolupar nous mètodes per descobrir patrons significatius en aquests grans conjunts de dades. La reconstrucció basada en models de xarxes de gens es pot utilitzar per organitzar les dades d'expressió gènica de manera sistemàtica i per guiar la recollida de dades futura. Un repte important aquí és entendre com la regulació gènica controla processos biològics fonamentals com la biomineralització i l'embriogènesi. Els subprocessos com la regulació gènica, les molècules orgàniques que interactuen amb el procés de deposició de minerals, els processos cel·lulars, la fisiologia i altres processos a nivell de teixit i medi ambient estan relacionats. En lloc de ser dirigides per un mecanisme de control central, la biomineralització i l'embriogènesi es poden veure com un comportament emergent resultat d'un sistema complex en el qual es troben diversos subprocessos a escales temporals i espacials molt diferents (que van des dels nanòmetres i nanosegons fins a metres i anys) connectats a un sistema multiescala. Una de les poques opcions disponibles per entendre aquests sistemes és desenvolupar un model multiescala del sistema.

Teoria de sistemes complexos[modifica]

Article principal: Sistemes complexos

Utilitzant la teoria de la informació, la dinàmica de no equilibri i les simulacions explícites, la teoria de sistemes computacionals intenta descobrir la veritable naturalesa dels sistemes adaptatius complexos.

Ciència computacional en l'enginyeria[modifica]

Article principal: Enginyeria computacional

La ciència i l'enginyeria computacionals (CSE) és una disciplina relativament nova que s'ocupa del desenvolupament i aplicació de models i simulacions computacionals, sovint juntament amb la computació d'alt rendiment, per resoldre problemes físics complexos que sorgeixen en l'anàlisi i el disseny d'enginyeria (enginyeria computacional) així com fenòmens naturals (ciència computacional). El CSE ha estat descrit com el "tercer mode de descobriment" (al costat de la teoria i l'experimentació).[4] En molts camps, la simulació per ordinador és integral i, per tant, essencial per als negocis i la recerca. La simulació per ordinador ofereix la capacitat d'entrar en camps que són inaccessibles a l'experimentació tradicional o on dur a terme investigacions empíriques tradicionals és prohibitiu. El CSE no s'ha de confondre amb la informàtica pura, ni amb l'enginyeria informàtica, encara que a CSE s'utilitza un ampli domini en el primer (per exemple, certs algorismes, estructures de dades, programació paral·lela, informàtica d'alt rendiment) i alguns problemes d'aquest últim es poden modelar i resoldre amb mètodes CSE (com a àrea d'aplicació).

Etapes d'investigació[modifica]

El desenvolupament de la investigació en ciències computacionals es pot dividir en les següents etapes:

Formulació del problema[modifica]

Es considera com abastar el problema i quins resultats s’han d’aconseguir.

Model matemàtic[modifica]

En aquesta etapa, s’expressa el problema en llenguatge matemàtic.

Anàlisi matemàtica[modifica]

Es comprova si el problema formulat té solució, si té solució única i si la solució depèn de les dades. Aquesta etapa normalment es resol amb ajuda d’un matemàtic. En cas que la formulació no sigui correcta, s’ha de repetir les etapes anteriors.

Anàlisi quantitativa[modifica]

Es decideix quin algoritme utilitzar per trobar o aproximar la solució. Sovint es requereix una anàlisi addicional per determinar si l’algoritme escollit funcionarà de manera confiable i ràpida. En aquesta etapa pot ser necessari un analista numèric.

Implementació[modifica]

Es crea un programa per implementar l’algoritme seleccionat. Normalment, s’encarrega un programador professional.

Experiments numèrics[modifica]

Es comparen els resultats del programa amb les dades conegudes anteriorment del sistema i s’utilitzen per crear nous models, experiments i teories. En aquesta etapa, sovint es treballa amb gent especialitzada en computació teòrica i experimental.

Mètodes i algoritmes[modifica]

Els algoritmes i mètodes matemàtics utilitzats en computació científica són variats. Els mètodes comunament aplicats són:

Avui dia, i tradicionalment, Fortran és un dels llenguatges de programació més populars per la majoria d’aplicacions de la ciència computacional.[14] Altres llenguatges i sistemes algebraics computacionals utilitzats pels aspectes més matemàtics de la ciència computacional inclouen GNU Octave, Haskell,[14] Julia,[14] Mathematica,[15] MATLAB,[16] Python (amb la llibreria de tercers SciPy),[17] Perl (amb la llibreria de tercers PDL), R,[18] Scilab[19] i TK Solver. Els aspectes més computacionals normalment utilitzen una variació de C o Fortran i llibreries algebraiques com BLAS o LAPACK. A més, la computació paral·lela és molt utilitzada en la computació científica per trobar solucions a problemes molt grans en una quantitat de temps raonable. En aquest cas, el problema és dividit en molts cores o en un sol node de CPU (com en OpenMP), dividit en molts nodes de CPU en xarxa (com en MPI), o es fa córrer en un o més GPUs (com a CUDA o OpenCL).

Els programes de la computació científica sovint modelen canvis en les condicions del món real, tals com el temps atmosfèric, el flux d’aire al voltant d’un avió, el moviment de les estrelles en una galàxia, un dispositiu explosiu, entre d’altres. Aquests programes podrien crear una ‘malla lògica’ en la memòria de l’ordinador on cada ítem correspon a una àrea en l'espai i conté informació sobre aquest espai rellevant al model. Per exemple, en els models de predicció meteorològica, cada ítem podria ser un kilòmetre quadrat; amb elevació del terreny, direcció del vent actual, humitat, temperatura, pressió, etc. El programa calcularia l'estat següent més probable basant-se en l'estat actual, en períodes simulats, resolent equacions diferencials que descriuen com funciona el sistema, i després repetiria el procés per calcular el següent estat.

Educació[modifica]

La computació científica és més estudiada per mitjà de la matemàtica aplicada o programes de les ciències de la computació, o dins d’un estàndard matemàtic, ciències o programes d’enginyeria. Tot i així, hi ha alguns graus (online o presencials) que s’especialitzen en aquesta branca, com el grau en Matemàtica Computacional i Anàlisi de Dades de la Universitat Autònoma de Barcelona[20] o el grau en Matemática Computacional d’UNIR.[21]

Camps relacionats[modifica]



Vegeu també[modifica]



Referències[modifica]

  1. Oden, J.T., Babuška, I. and Faghihi, D., 2017. Predictive computational science: Computer predictions in the presence of uncertainty. Encyclopedia of Computational Mechanics. Second Edition, pp. 1-26....
  2. Szabó B, Actis R and Rusk D. Validation of notch sensitivity factors. Journal of Verification, Validation and Uncertainty Quantification. 4 011004, 2019...
  3. 3,0 3,1 «68% of the world population projected to live in urban areas by 2050, says UN | UN DESA | United Nations Department of Economic and Social Affairs».
  4. «Computational Science and Engineering Program: Graduate Student Handbook». Arxivat de l'original el 2015-10-10. [Consulta: 16 gener 2022].
  5. Stoer, J., & Bulirsch, R. (2013). Introduction to numerical analysis. Springer Science & Business Media.
  6. Conte, S. D., & De Boor, C. (2017). Elementary numerical analysis: an algorithmic approach. Society for Industrial and Applied Mathematics.
  7. Brenner, S., & Scott, R. (2007). The mathematical theory of finite element methods (Vol. 15). Springer Science & Business Media.
  8. Hammersley, J. (2013). Monte carlo methods. Springer Science & Business Media.
  9. Kalos, M. H., & Whitlock, P. A. (2009). Monte carlo methods. John Wiley & Sons.
  10. Demmel, J. W. (1997). Applied numerical linear algebra. SIAM.
  11. Ciarlet, P. G., Miara, B., & Thomas, J. M. (1989). Introduction to numerical linear algebra and optimization. Cambridge University Press.
  12. Peter Deuflhard, Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms, Second printed edition. Series Computational Mathematics 35, Springer (2006)
  13. Vanderbei, R. J. (2015). Linear programming. Heidelberg: Springer.
  14. 14,0 14,1 14,2 Staff, Ars. «Scientific computing’s future: Can any coding language top a 1950s behemoth?» (en anglès americà), 08-05-2014. [Consulta: 15 gener 2022].
  15. «Mathematica 6» (en anglès), 30-05-2007. Arxivat de l'original el 2022-01-15. [Consulta: 15 gener 2022].
  16. Quarteroni, A., Saleri, F., & Gervasio, P. (2006). Scientific computing with MATLAB and Octave. Berlin: Springer.
  17. Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
  18. Ihaka, R., & Gentleman, R. (1996). R: a language for data analysis and graphics. Journal of computational and graphical statistics, 5(3), 299-314.
  19. Bunks, C., Chancelier, J. P., Delebecque, F., Goursat, M., Nikoukhah, R., & Steer, S. (2012). Engineering and scientific computing with Scilab. Springer Science & Business Media.
  20. Barcelona, UAB-Universitat Autònoma de. «Grau en Matemàtica Computacional i Analítica de Dades». [Consulta: 15 gener 2022].
  21. «Grado en Matemática Computacional (3ª edición)» (en castellà). [Consulta: 15 gener 2022].