ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

| AI.DAI5 | DAI5 eBook Free Download | CFDSOF | VisualFOAM | PT CCIT Group Indonesia | 8N8 |

Prinsip & Algoritma PINN Heat Conduction 1D Dengan Framework DAI5 – Aditya Andra Yudhistyra (2306265511)

Assalamualaikum Warahmatullahi Wabarakatuh. Sebelumnya perkenalkan nama saya Aditya Andra Yudhistyra bisa dipanggil Andra dengan NPM 2306265511 dari kelas Metode Numerik-03. Pada kesempatan kali ini saya akan sharing terkait Prinsip & Algoritma PINN Dalam Penerapan Heat Conduction 1D Dengan Framework DAI5.

Physics-Informed Neural Networks (PINN) merupakan jenis algoritma pembelajaran mesin yang dikembangkan secara khusus untuk menangani berbagai macam permasalahan berbasis fisika. Hal ini menggabungkan hukum-hukum fisika, yang biasanya dinyatakan dalam bentuk persamaan diferensial, ke dalam fungsi tertentu untuk mengarahkan proses pembelajaran agar menghasilkan solusi yang lebih selaras dengan prinsip-prinsip fisika yang mendasarinya.

DAI5 sendiri merupakan framework yang menggabungkan pemahaman sains dengan iman. Framework ini mengajak kita untuk selalu berada di fase dalam kondisi kesadaran penuh(conscious), lalu kita juga harus memahami bahwasannya manusia telah dikaruniai anugerah oleh Allah SWT. Oleh karena itu, dalam menangani permasalahan sains, kita perlu selalu mengingat bahwa setiap fenomena yang kita pelajari pada hakikatnya adalah ciptaan Allah SWT dan berada di bawah kekuasaan-Nya.

DAI5 terdiri dari lima tahap yang disusun secara sistematis untuk membimbing proses pembelajaran dan pemecahan masalah:

  1. Deep Awareness of I
    Tahap ini mengajak kita untuk menyadari esensi pencarian ilmu. Segala sesuatu di alam semesta telah diatur dengan keteraturan yang ditetapkan oleh Allah SWT. Oleh karena itu, dalam mempelajari suatu fenomena, kita perlu memiliki kesadaran mendalam.
  2. Intention
    Sebelum mendalami suatu bidang ilmu, kita harus menetapkan niat yang tulus. Niat ini tidak hanya berorientasi pada pencapaian pribadi, tetapi juga diarahkan untuk memberikan manfaat bagi umat manusia. Dengan niat yang benar, ilmu yang diperoleh dapat digunakan untuk kebaikan yang lebih luas.
  3. Initial Thinking
    Pada tahap ini, kita perlu memahami dasar-dasar dari suatu permasalahan sebelum melakukan analisis yang lebih dalam. Mengidentifikasi prinsip-prinsip fundamental akan membantu menyusun solusi yang tetap sesuai dengan hukum-hukum alam yang telah ditetapkan oleh Allah SWT, sehingga tidak menyimpang dari kebenaran ilmiah.
  4. Idealization
    Untuk menyelesaikan suatu masalah secara ilmiah, diperlukan penyederhanaan yang efektif agar gambaran keseluruhan masalah dapat lebih mudah dipahami. Berdasarkan pemikiran awal yang telah dilakukan, kita juga perlu menentukan batasan penyederhanaan agar tetap relevan dan tidak menghilangkan aspek penting dari permasalahan yang dikaji.
  5. Instruction Set
    Tahap terakhir adalah pelaksanaan model atau solusi yang telah dirancang. Setiap langkah harus disusun secara sistematis, logis, dan dapat dipertanggungjawabkan. Pendekatan ini memastikan bahwa proses eksekusi berjalan dengan baik, hasilnya dapat diuji, dan dapat dipercaya.

Dengan mengikuti kelima tahapan ini, DAI5 bukan hanya menjadi metode dalam memahami sains, tetapi juga membangun kesadaran akan hubungan erat antara ilmu pengetahuan dan iman kepada Allah SWT.

Deep Awareness of I

Physics-Informed Neural Networks (PINNs) merupakan pendekatan mutakhir dalam menyelesaikan masalah berbasis persamaan diferensial, dengan memanfaatkan kecerdasan buatan untuk memastikan solusi tetap memenuhi hukum-hukum fisika. Dalam mempelajari dan menerapkan PINNs, kita harus menyadari bahwa hukum-hukum fisika yang digunakan dalam algoritma ini bukan sekadar rumus matematis buatan manusia, melainkan bagian dari keteraturan alam yang telah ditetapkan oleh Allah SWT. Melalui PINNs, kita dapat memahami berbagai fenomena fisika, termasuk konduksi panas, dengan pendekatan komputasi yang lebih efisien dan akurat.

Intention

Sebelum mendalami dan menerapkan Physics-Informed Neural Networks (PINNs) dalam menyelesaikan permasalahan konduksi panas 1D, penting bagi kita untuk menetapkan niat yang jelas dan bermakna. Ilmu yang kita pelajari bukan sekadar alat untuk menyelesaikan masalah teknis atau mencapai keberhasilan akademik, tetapi juga merupakan bagian dari amanah yang harus digunakan untuk memberikan manfaat bagi sesama.

Initial Thinking

Tahap ini menitikberatkan pada pemahaman yang komprehensif terhadap permasalahan sebelum merumuskan solusi. Dalam konteks konduksi panas 1D, langkah ini mencakup identifikasi domain dan lingkungan sistem, penentuan kondisi batas, serta analisis faktor-faktor yang memengaruhi distribusi suhu, seperti sifat material.

Pendekatan analitis, seperti Root Cause Analysis, dapat digunakan untuk mengidentifikasi penyebab utama perubahan distribusi suhu, misalnya adanya sumber panas atau variasi karakteristik material. Dengan memahami setiap aspek yang berperan dalam sistem, kita dapat menyusun solusi yang lebih efektif, efisien, dan sesuai dengan prinsip-prinsip fisika yang berlaku.

Idealization

Tahap ini berfokus pada penyederhanaan permasalahan tanpa menghilangkan esensi fisiknya, sehingga analisis dapat dilakukan secara lebih efektif. Dalam kasus konduksi panas 1D, idealisasi melibatkan penentuan asumsi yang sesuai, seperti kondisi tunak (steady-state) atau transien, homogenitas material, serta linieritas sifat termal. Selain itu, pendekatan ini juga mencakup formulasi ulang sistem dalam bentuk yang lebih sederhana namun tetap mewakili karakteristik aslinya.

Instruction Set

Tahap ini berfokus paduan penerapan solusi serta melakukan implementasi solusi secara sistematis dan terstruktur. Lalu dalam simulasi menggunakan PINNs, ini merupakan tahap yang berfungsi untuk menggabungkan seluruh langkah dalam kerangka DAI5, sehingga menghasilkan solusi yang optimal dan efisien. 

Berikut merupakan contoh permodelan dengan python :

# Import Libraries
import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt

# Define PINN Class
class PINN(nn.Module):
    def __init__(self):
        super(PINN, self).__init__()
        self.net = nn.Sequential(
            nn.Linear(1, 25),  # Mengubah jumlah neuron pada layer pertama
            nn.Tanh(),
            nn.Linear(25, 25), # Mengubah jumlah neuron pada hidden layer
            nn.Tanh(),
            nn.Linear(25, 1)
        )
    
    def forward(self, x):
        return self.net(x)

# Compute Loss Function
def compute_loss(model, x, T0, T1):
    x = x.requires_grad_(True)
    T = model(x)
    
    # Compute derivatives
    dT_dx = torch.autograd.grad(T, x, grad_outputs=torch.ones_like(T), create_graph=True)[0]
    d2T_dx2 = torch.autograd.grad(dT_dx, x, grad_outputs=torch.ones_like(dT_dx), create_graph=True)[0]
    
    # Physics loss
    physics_loss = torch.mean(d2T_dx2**2)
    
    # Boundary conditions
    T_left = model(torch.tensor([[0.0]]))
    T_right = model(torch.tensor([[1.0]]))
    bc_loss = (T_left - T0)**2 + (T_right - T1)**2
    
    return physics_loss + bc_loss

# Train PINN Function
def train_pinn(T0, T1, epochs=1000):
    model = PINN()
    optimizer = torch.optim.Adam(model.parameters(), lr=0.002)  # Mengubah learning rate
    x = torch.linspace(0, 1, 120).reshape(-1, 1)  # Menambah jumlah titik diskritisasi
    
    for epoch in range(epochs):
        optimizer.zero_grad()
        loss = compute_loss(model, x, T0, T1)
        loss.backward()
        optimizer.step()
        
        if epoch % 100 == 0:
            print(f"Epoch {epoch}, Loss: {loss.item():.6f}")
    
    return model

# Plot Result Function
def plot_results(model, T0, T1):
    x = torch.linspace(0, 1, 120).reshape(-1, 1)
    
    with torch.no_grad():
        T_pred = model(x).numpy()
        x = x.numpy()
        T_analytical = T0 + (T1 - T0) * x
    
    plt.figure(figsize=(8, 6))
    plt.plot(x, T_pred, label="PINN Solution", linewidth=2)
    plt.plot(x, T_analytical, "--", label="Analytical Solution", linewidth=2)
    plt.xlabel("x")
    plt.ylabel("Temperature")
    plt.title("1D Steady-State Heat Conduction")
    plt.legend()
    plt.grid(True)
    
    # Simpan grafik sebagai file jika tidak ada display
    plt.savefig("heat_conduction_result_updated.png")
    print("Grafik telah disimpan sebagai 'heat_conduction_result_updated.png'")

# Main Execution
if __name__ == "__main__":
    # Parameter default
    T0 = 100.0  # Suhu di x=0
    T1 = 0.0    # Suhu di x=1
    epochs = 1000
    
    # Latih model dan tampilkan hasil
    model = train_pinn(T0, T1, epochs)
    plot_results(model, T0, T1)

Kesimpulan

Physics-Informed Neural Networks (PINNs) telah terbukti sebagai pendekatan yang efektif dalam menyelesaikan permasalahan konduksi panas 1D.

Sekian dari saya, mohon maaf jika ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh


Leave a Reply

Your email address will not be published. Required fields are marked *