Perkenalkan saya Gregorius Tri Santoso dengan NPM 2306204794. Pada kesempatan ini saya inin menceritakan pengalaman saya mengenai belajar konduksi panas dengan metode PINN.
Apa itu PINN?
Physics-Informed Neural Networks (PINN) adalah jenis jaringan saraf yang menggabungkan hukum fisika dalam proses pelatihan model. Berbeda dengan jaringan saraf biasa yang hanya belajar dari data, PINN juga memanfaatkan persamaan diferensial parsial (PDE) atau hukum fisika lainnya untuk mengatur dan membimbing proses pembelajaran.
Konsep Utama dalam PINN
Fungsi Kehilangan Berbasis Fisika
- Selain menggunakan data loss (kesalahan dari data observasi), PINN juga mengoptimalkan physics loss, yaitu seberapa baik model memenuhi persamaan fisika seperti Hukum Konservasi Energi, Navier-Stokes, atau Persamaan Panas.
Tidak Memerlukan Banyak Data
- Karena sudah memahami hukum fisika, PINN sering kali dapat memberikan hasil akurat dengan sedikit data eksperimen.
Aplikasi PINN
- Simulasi Fluida (misalnya memodelkan aliran air atau udara menggunakan Navier-Stokes).
- Prediksi Perambatan Gelombang (misalnya gelombang elektromagnetik atau mekanik).
- Penyelesaian PDE Kompleks tanpa metode numerik tradisional seperti metode elemen hingga (FEM) atau beda hingga (FDM).
Dalam simulasi konduktivitas panas 1D ini, metode PINN diterapkan dengan mengoptimalkan loss function yang terdiri dari:
- Physics Loss โ Memastikan persamaan diferensial panas {d^2T}/{dx^2} = 0 dipenuhi.
- Boundary Conditions Loss โ Memastikan bahwa temperatur di kedua ujung batang (x=0 dan x=1) sesuai dengan nilai batas yang diberikan (T0 dan T1).
PINN berperan penting dalam menyelesaikan masalah heat conduction karena tidak bergantung pada metode diskritisasi eksplisit seperti Finite Difference atau Finite Element. Hal ini memungkinkan solusi yang lebih smooth dan kontinu.
Dalam pelaksanaan pembelajaran tersebut, Framework DAI5 digunakan untuk mengarahkan pembelajaran menjadi lebih mantap
I. Deep Awareness of ‘I’
1. Consciousness of Purpose
PINN digunakan untuk memodelkan fenomena konduksi panas, yang merupakan bagian dari hukum alam yang telah diatur secara sempurna. Kesadaran akan penciptaan hukum fisika ini mendorong kita untuk memahami bagaimana model matematika dapat mencerminkan realitas dengan lebih baik, sekaligus mendekatkan diri kepada Pencipta melalui eksplorasi ilmu pengetahuan.
2. Self-awareness
Dalam implementasi PINN, penting untuk menyadari keterbatasan metode ini. Misalnya, meskipun PINN mampu menangkap hukum fisika melalui fungsi loss, hasilnya masih bergantung pada kualitas jaringan saraf yang digunakan dan proses training-nya. Pemahaman ini mencegah bias dalam menilai efektivitas model serta membantu memilih metode yang lebih sesuai jika diperlukan.
3. Ethical Considerations
Model PINN menawarkan alternatif terhadap metode numerik klasik seperti metode beda hingga (FDM) atau elemen hingga (FEM). Keunggulan utamanya adalah tidak memerlukan mesh, yang menghemat sumber daya komputasi. Dari sisi etika, penggunaan metode yang lebih efisien dapat mengurangi konsumsi daya dan meningkatkan aksesibilitas teknologi simulasi bagi lebih banyak orang.
4. Integration of CCIT
CCIT (Consciousness of Creator in Technology) dalam konteks ini adalah bagaimana pemodelan fisika tetap sejalan dengan hukum-hukum alam yang telah diciptakan. PINN secara fundamental bekerja dengan menghormati hukum konduksi panas Fourier, menjadikannya alat yang selaras dengan keteraturan yang telah ditetapkan dalam alam semesta.
5. Critical Reflection
PINN tidak hanya menawarkan solusi teknis tetapi juga mendorong refleksi mendalam tentang bagaimana metode ini membandingkan dengan teknik numerik konvensional. Apakah lebih akurat? Apakah lebih efisien? Apakah memiliki keterbatasan yang harus diatasi? Dengan pertanyaan ini, pendekatan PINN dapat terus dievaluasi untuk perbaikan di masa depan.
6. Continuum of Awareness
Penggunaan PINN dalam simulasi ini dapat menjadi langkah awal dalam eksplorasi lebih lanjut terhadap metode berbasis kecerdasan buatan dalam fisika komputasi. Dengan menjaga kesadaran akan potensi dan batasan teknologi ini, kita dapat mengembangkannya lebih jauh untuk aplikasi yang lebih luas.
II. Intention
7. Clarity of Intent
Tujuan utama dari implementasi PINN dalam kode ini adalah untuk menyelesaikan persamaan konduksi panas tanpa menggunakan metode diskritisasi klasik. Pendekatan berbasis kecerdasan buatan ini bertujuan untuk mendapatkan solusi kontinu dengan lebih sedikit keterbatasan numerik.
8. Alignment of Objectives
Penggunaan PINN selaras dengan tujuan pengembangan teknik pemodelan numerik yang lebih efisien dan fleksibel. Dengan menggantikan metode berbasis grid yang kaku, PINN menawarkan pendekatan yang lebih adaptif dalam menyelesaikan permasalahan konduksi panas.
9. Relevance of Intent
Pendekatan PINN sangat relevan dalam konteks industri modern, di mana simulasi fisika berbasis AI semakin diminati untuk meningkatkan efisiensi dan akurasi perhitungan. Dalam skenario nyata, metode ini bisa diterapkan dalam desain material termal, pendinginan perangkat elektronik, hingga simulasi iklim.
10. Sustainability Focus
Dibandingkan metode numerik klasik yang sering kali memerlukan sumber daya komputasi besar untuk mesh berkepadatan tinggi, PINN memungkinkan solusi lebih hemat energi. Pendekatan ini sejalan dengan prinsip keberlanjutan dalam pemanfaatan teknologi.
11. Focus on Quality
Keakuratan solusi PINN sangat bergantung pada jumlah epoch, arsitektur jaringan, serta optimasi loss function. Dalam kode ini, model diuji dengan 1000, 3000, dan 10000 epoch, yang memungkinkan evaluasi kualitas prediksi secara mendalam.
III. Initial Thinking
12. Problem Understanding
Konduksi panas 1D merupakan masalah yang secara analitis memiliki solusi linier. Dengan memahami sifat fisiknya, kita dapat mengevaluasi apakah PINN memberikan solusi yang sesuai dengan ekspektasi teori.
13. Stakeholder Awareness
Penerapan PINN dalam simulasi konduksi panas relevan bagi para ilmuwan, insinyur, dan peneliti yang bekerja di bidang termal. Metode ini dapat mengurangi ketergantungan pada pendekatan berbasis grid yang memerlukan pengaturan mesh yang kompleks.
14. Contextual Analysis
Dalam konteks industri dan akademik, metode ini bisa diterapkan dalam berbagai bidang seperti optimasi pendinginan chip, desain material isolasi, dan analisis perpindahan panas di bangunan.
15. Root Cause Analysis
Perbedaan hasil antara solusi analitik dan PINN dapat disebabkan oleh beberapa faktor, seperti keterbatasan kapasitas jaringan, kurangnya jumlah epoch, atau kesalahan dalam implementasi loss function.
16. Relevance of Analysis
Analisis ini relevan dalam menilai efektivitas metode berbasis AI untuk menyelesaikan persamaan diferensial parsial (PDE), yang merupakan tantangan utama dalam berbagai bidang rekayasa dan fisika.
17. Use of Data and Evidence
Perbandingan hasil antara metode analitik dan PINN menunjukkan bahwa solusi mendekati hasil teori, tetapi akurasi meningkat seiring dengan jumlah epoch. Hal ini menunjukkan bagaimana pembelajaran berbasis data dalam jaringan saraf mempengaruhi hasil akhir.
IV. Idealization
18. Assumption Clarity
Asumsi utama dalam model ini adalah bahwa konduksi panas berlangsung dalam kondisi tunak dan tanpa sumber panas internal, sesuai dengan persamaan Laplace.
19. Creativity and Innovation
PINN merupakan inovasi dalam pemecahan PDE, karena menggabungkan kecerdasan buatan dengan hukum fisika, mengurangi kebutuhan diskritisasi yang kompleks.
20. Physical Realism
Hasil simulasi menunjukkan bahwa solusi PINN mengikuti tren linier yang sesuai dengan hukum Fourier, membuktikan bahwa pendekatan ini secara fisik masuk akal.
21. Alignment with Intent
Model ini tetap berpegang pada niat awal, yaitu menyelesaikan persamaan konduksi panas dengan metode berbasis AI tanpa mengorbankan akurasi solusi.
22. Scalability and Adaptability
Metode ini dapat diperluas ke dimensi lebih tinggi dan sistem yang lebih kompleks, seperti konduksi panas transient atau simulasi dengan kondisi batas non-trivial.
23. Simplicity and Elegance
Dibandingkan metode numerik klasik, PINN menawarkan pendekatan yang lebih ringkas dan tidak memerlukan pembuatan grid secara eksplisit.
V. Instruction-Set
24. Clarity of Steps
Kode yang dibuat memiliki struktur yang jelas: mulai dari definisi model, loss function, hingga proses pelatihan dan visualisasi hasil.
25. Comprehensiveness
Implementasi sudah cukup lengkap untuk menyelesaikan permasalahan konduksi panas 1D, dengan perbandingan solusi analitik sebagai verifikasi.
26. Physical Interpretation
Hasil simulasi menunjukkan bahwa solusi PINN tetap mengikuti distribusi suhu linier, yang sesuai dengan teori konduksi panas 1D.
27. Error Minimization
Dengan meningkatkan jumlah epoch, kesalahan dapat diminimalkan, meskipun ada batasan yang harus diperhatikan terkait overfitting.
28. Verification and Validation
Validasi dilakukan dengan membandingkan hasil PINN dengan solusi analitik, yang menunjukkan tingkat kesesuaian yang cukup baik.
29. Iterative Approach
Model diuji dengan berbagai jumlah epoch untuk melihat bagaimana performa jaringan meningkat dengan lebih banyak iterasi.
30. Sustainability Integration
Metode ini mengurangi konsumsi daya komputasi dibandingkan metode berbasis grid, menjadikannya lebih ramah lingkungan.
31. Communication Effectiveness
Grafik hasil simulasi memberikan cara komunikasi yang efektif dalam memahami performa PINN.
32. Alignment with the DAI5 Framework
Analisis ini mengikuti prinsip DAI5, mulai dari kesadaran mendalam hingga penerapan solusi berbasis bukti.
33. Documentation Quality
Kode sudah cukup terdokumentasi dengan baik, tetapi bisa ditingkatkan dengan penjelasan lebih rinci dalam bentuk komentar.



import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt
import tkinter as tk
from tkinter import ttk
import tkinter.messagebox
# Define the PINN neural network
class PINN(nn.Module):
def __init__(self):
super(PINN, self).__init__()
self.net = nn.Sequential(
nn.Linear(1, 20),
nn.Tanh(),
nn.Linear(20, 20),
nn.Tanh(),
nn.Linear(20, 1)
)
def forward(self, x):
return self.net(x)
# Function to compute the loss
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 (d^2T/dx^2 = 0)
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
# Training function
def train_pinn(T0, T1, epochs=1000):
model = PINN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
x = torch.linspace(0, 1, 100).reshape(-1, 1)
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
# Function to plot results
def plot_results(model, T0, T1):
x = torch.linspace(0, 1, 100).reshape(-1, 1)
with torch.no_grad():
T_pred = model(x).detach().numpy()
x = x.numpy()
T_analytical = T0 + (T1 - T0) * x
plt.figure(figsize=(8, 6))
plt.plot(x, T_pred, label="PINN Solution")
plt.plot(x, T_analytical, '--', label="Analytical Solution")
plt.xlabel("x")
plt.ylabel("Temperature")
plt.title("1D Steady-State Heat Conduction")
plt.legend()
plt.grid(True)
plt.show()
# GUI Application
class PINNApp:
def __init__(self, root):
self.root = root
self.root.title("PINN 1D Heat Conduction Solver")
# Labels and Entries
ttk.Label(root, text="T0 (Left Boundary, ยฐC):").grid(row=0, column=0, padx=5, pady=5)
self.T0_entry = ttk.Entry(root)
self.T0_entry.grid(row=0, column=1, padx=5, pady=5)
self.T0_entry.insert(0, "100")
ttk.Label(root, text="T1 (Right Boundary, ยฐC):").grid(row=1, column=0, padx=5, pady=5)
self.T1_entry = ttk.Entry(root)
self.T1_entry.grid(row=1, column=1, padx=5, pady=5)
self.T1_entry.insert(0, "0")
ttk.Label(root, text="Epochs:").grid(row=2, column=0, padx=5, pady=5)
self.epochs_entry = ttk.Entry(root)
self.epochs_entry.grid(row=2, column=1, padx=5, pady=5)
self.epochs_entry.insert(0, "1000")
# Solve Button
self.solve_button = ttk.Button(root, text="Solve & Plot", command=self.solve)
self.solve_button.grid(row=3, column=0, columnspan=2, pady=10)
def solve(self):
try:
T0 = float(self.T0_entry.get())
T1 = float(self.T1_entry.get())
epochs = int(self.epochs_entry.get())
model = train_pinn(T0, T1, epochs)
plot_results(model, T0, T1)
except ValueError:
tk.messagebox.showerror("Error", "Please enter valid numerical values.")
# Run the GUI
if __name__ == "__main__":
root = tk.Tk()
app = PINNApp(root)
root.mainloop()
Kesimpulan
Metode PINN dalam simulasi konduktivitas panas 1D menunjukkan bahwa:
- PINN mampu menyelesaikan masalah konduksi panas berbasis persamaan diferensial dengan solusi yang akurat.
- Jumlah epochs berpengaruh terhadap akurasi hasil:
- 1000 epochs: Konvergensi awal, namun belum mencapai solusi optimal.
- 3000 epochs: Solusi lebih akurat, error lebih kecil dibandingkan dengan solusi analitik.
- 10000 epochs: Hasil hampir identik dengan solusi analitik, namun dengan waktu komputasi yang lebih lama.
- Pendekatan ini menawarkan fleksibilitas lebih dibandingkan metode numerik konvensional.
Dengan demikian, PINN menjadi alternatif potensial dalam simulasi konduktivitas panas, khususnya untuk masalah yang lebih kompleks.