En aquest tema, explorarem els fonaments dels algorismes, que són una part essencial de la intel·ligència artificial (IA). Els algorismes són seqüències de passos o instruccions que es segueixen per resoldre un problema o realitzar una tasca específica. En el context de la IA, els algorismes són utilitzats per processar dades, prendre decisions i aprendre de l'experiència.

Objectius del Tema

  1. Comprendre què és un algorisme i la seva importància en la IA.
  2. Conèixer les característiques principals dels algorismes.
  3. Aprendre sobre les diferents categories d'algorismes.
  4. Veure exemples pràctics d'algorismes utilitzats en IA.

Què és un Algorisme?

Un algorisme és una seqüència finita d'instruccions ben definides que, quan s'executen, resolen un problema específic. Els algorismes són la base de la programació i de molts sistemes d'IA. Poden ser simples, com un algorisme per ordenar una llista de números, o molt complexos, com els utilitzats en el reconeixement de veu o la conducció autònoma.

Característiques dels Algorismes

  1. Finitud: Un algorisme ha de tenir un nombre finit de passos.
  2. Definició: Cada pas de l'algorisme ha de ser clar i no ambigu.
  3. Entrada: Un algorisme pot tenir zero o més entrades.
  4. Sortida: Un algorisme ha de produir almenys una sortida.
  5. Efectivitat: Els passos de l'algorisme han de ser suficientment bàsics perquè puguin ser realitzats, en principi, per una persona amb paper i llapis.

Categories d'Algorismes

Els algorismes poden ser classificats en diverses categories segons el seu propòsit i la seva aplicació. A continuació es presenten algunes de les categories més rellevants en el camp de la IA:

  1. Algorismes de Cerca: Utilitzats per trobar solucions en espais de cerca grans.
    • Exemples: Cerca en amplada, cerca en profunditat, A*.
  2. Algorismes d'Optimització: Utilitzats per trobar la millor solució segons un criteri determinat.
    • Exemples: Algorismes genètics, recuit simulat.
  3. Algorismes de Classificació: Utilitzats per assignar etiquetes a dades.
    • Exemples: K-Nearest Neighbors (KNN), màquines de vector de suport (SVM).
  4. Algorismes de Regressió: Utilitzats per predir valors continus.
    • Exemples: Regressió lineal, regressió logística.
  5. Algorismes de Clustering: Utilitzats per agrupar dades en clústers.
    • Exemples: K-means, DBSCAN.

Exemples Pràctics

Algorisme de Cerca en Amplada (Breadth-First Search, BFS)

L'algorisme de cerca en amplada és un algorisme de cerca utilitzat per explorar tots els nodes d'un graf o arbre de manera sistemàtica. És especialment útil en problemes on es necessita trobar el camí més curt en termes de nombre de passos.

from collections import deque

def bfs(graph, start):
    visited = set()
    queue = deque([start])
    while queue:
        vertex = queue.popleft()
        if vertex not in visited:
            visited.add(vertex)
            queue.extend(set(graph[vertex]) - visited)
    return visited

# Exemple d'ús
graph = {
    'A': ['B', 'C'],
    'B': ['A', 'D', 'E'],
    'C': ['A', 'F'],
    'D': ['B'],
    'E': ['B', 'F'],
    'F': ['C', 'E']
}
print(bfs(graph, 'A'))

Algorisme de Regressió Lineal

L'algorisme de regressió lineal és utilitzat per modelar la relació entre una variable dependent i una o més variables independents. És un dels algorismes més senzills i comuns en l'aprenentatge automàtic.

import numpy as np
from sklearn.linear_model import LinearRegression

# Dades d'exemple
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1, 3, 2, 3, 5])

# Crear el model de regressió lineal
model = LinearRegression()
model.fit(X, y)

# Predir valors
predictions = model.predict(X)
print(predictions)

Exercici Pràctic

Exercici 1: Implementar un Algorisme de Cerca en Profunditat (Depth-First Search, DFS)

Implementa l'algorisme de cerca en profunditat per explorar tots els nodes d'un graf. Prova'l amb el mateix graf utilitzat en l'exemple de BFS.

def dfs(graph, start, visited=None):
    if visited is None:
        visited = set()
    visited.add(start)
    for next in set(graph[start]) - visited:
        dfs(graph, next, visited)
    return visited

# Prova l'algorisme amb el graf d'exemple
print(dfs(graph, 'A'))

Solució

def dfs(graph, start, visited=None):
    if visited is None:
        visited = set()
    visited.add(start)
    for next in set(graph[start]) - visited:
        dfs(graph, next, visited)
    return visited

# Prova l'algorisme amb el graf d'exemple
print(dfs(graph, 'A'))

Resum

En aquest tema, hem après què són els algorismes i la seva importància en la IA. Hem explorat les característiques principals dels algorismes i les diferents categories en què es poden classificar. També hem vist exemples pràctics d'algorismes de cerca i regressió lineal, i hem realitzat un exercici pràctic per implementar un algorisme de cerca en profunditat.

En el següent tema, aprofundirem en els Algorismes de Cerca, on explorarem més detalladament els diferents tipus d'algorismes de cerca i les seves aplicacions en la IA.

© Copyright 2024. Tots els drets reservats