ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

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

Memahami Prinsip dan Algoritma PINN HC 1D Menggunakan Framework DAI 5 – Nayla Aamira Bachtiar (2306247206)

Assalamualaikum warahmatullahi wabarakatuh. Segala puji bagi Allah SWT pencipta semesta Alam yang telah melimpahkan segala Rahmat dan karunianya sehingga kita masih bisa diberi kesempatan untuk beraktivitas hingga saat ini. Pada bulan puasa ini, saya berharap semoga kita semua senantiasa dalam lindungan-Nya, Aamiin. Dalam kesempatan ini, saya akan membahas mengenai prinsip dan algoritma PINN HC 1D dengan menggunakan framework DAI 5. Semoga essay ini dapat bermanfaat bagi orang lain, Aamiin.

Dalam menyelesaikan masalah fisika, kita seringkali dihadapkan dengan masalah untuk menyelesaikannya. Physics-Informed Neural Netwoks (PINNs) adalah suatu metode untuk menyelesaikan masalah fisika berbasis persamaan diferensial dengan menggunakan bantuan jaringan saraf tiruan. Pendekatan yang biasanya digunakan untuk menyelesaikan model fisika adalah dengan menggunakan turunan parsial (PDE) dan dengan menggunakan metode numerik yaitu metode Finite Element Method (FEM)

Contohnya pada kasus 1D Heat Conduction yang diselesaikan dengan menggunakan persamaan diferensial orde dua

dengan menggunakan kondisi batas T(0) = 100ยฐ C dan T(1) = 0ยฐ C

Kasus 1D Heat Conduction ini dapat diselesaikan dengan menggunakan metode PINN dan Framework DAI 5 yang menggabungkan aspek kesadaran spiritual, pemikiran secara logis, dan implementasi teknis.

  1. Deep Awareness of I

Pada langkah ini, kita menerapkan kesadaran spiritual dalam diri. Kesadaran spiritual ini kita gunakan sebagai fondasi dari seluruh langkah kita dalam menyelesaikan kasus ini. Persamaan diferensial yang kita gunakan bukanlah hanya rumus matematis yang tidak ada artinya, melainkan merupakan hukum termodinamika yang diciptakan oleh Allah SWT untuk menjaga keseimbangan alam. Pada 1D Heat Conduction, panas yang berpindah dari suhu tinggi ke suhu rendah merupakan tanda kekuasaan Allah SWT yang dapat kita pelajari ilmunya. Selain itu, tahap Deep Awareness of I ini membimbing kita untuk tidak sekedar menyelesaikan sebuah kasus, tetapi juga melakukan refleksi diri. Apakah ilmu yang kita pelajari mendekatkan diri kita kepada Allah SWT?

  • Intention

Setelah melakukan refleksi diri terhadap Allah SWT, kita harus menekankan niat untuk mempelajari hukum fisika dengan melakukan pendekatan neural network dan membuat solusi yang bermanfaat seperti menggunakan PINN untuk simulasi termal pada bangunan hemat energi atau sistem pendingin. Dengan menetapkan niat yang baik, kasus 1D Heat Conduction ini bukan hanya untuk menghasilkan sebuah output, melainkan juga tentang menghadirkan kebermanfaatan bagi orang banyak

  • Initial Thinking

Setelah melakukan refleksi dan menetapkan niat, langkah selanjutnya adalah melakukan pemikiran awal terhadap masalah. Kita dapat melihat kembali ke persamaan diferensial sebelumnya

yaitu

dengan menggunakan kondisi batas T(0) = 100ยฐ C dan T(1) = 0ยฐ C. Masalah ini hanya mempunyai solusi analitik linier, yaitu T(x)=T0โ€‹+(T1โ€‹โˆ’T0โ€‹)x. Namun, pada beberapa kondisi batas yang variatif solusi analitik ini sulit ditemukan. Maka kita dapat menggunakan pendekatan alternatif yaitu dengan menggunakan Physics-Informed Neural Networks (PINN). PINN dapat membuat pendekatan baru yakni:

  1. Neural network dapat digunakan untuk menebak bentuk solusi
  2. PINN melihat hukum fisika sebagai fungsi loss
  3. PINN dapat membuat hasil prediksi yang sesuai dengan hukum fisika
  4. Alat dan framework yang digunakan adalah dengan bahasa phyton, library PyTorch (autograd&training), NumPy, Matplotlib, dan Tkinter (GUI), dan menggunakan tools VsCode untuk coding
  • Idealization

Selanjutnya, kita bisa membuat beberapa asumsi supaya kasus 1D Heat Conduction ini dapat dimodelkan.

a. Asumsi Fisik :

  • Media yang digunakan homogen
  • Konduksi dalam kondisi steady-state atau tidak bergantung kepada waktu,
  • Sumber panas internal dihilangkan

b. Asumsi Komputasi :

  • Domain 1D diubah dari 0 menjadi 1
  • Fungsi aktivasi adalah Tanh
  • Input 1 neuron (x), hidden layer 2 lapis (20 neuron), output 1 neuron (T)
  • Loss function = kombinasi dari physics loss serta boundary loss

c. Framework Ideal

PINN akan melakukan penyesuaian hingga outputnya dapat memenuhi persamaan fisis dan batas

  • Instruction Set

1. Class

      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)
      • Input : x (sebagai koordinat ruang)
      • Fungsi aktivasi Tanh yang cocok digunakan untuk turunan
      • Output : T(x) (sebagai prediksi suhu)

      2. Komputasi Loss Function

      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
      • Physics Loss digunakan untuk menghitung selisih antara turunan kedua suhu dengan 0 sesuai dengan PDE
      • Booundaru Loss digunakan untuk memastikan nilai suhu di tepi domasin sama sengan kondisi batas T0 dan T1

      3. Proses Pelatihan

      # 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()
      • Data yang diinput adalah data dari x 0 hingga x1
      • Epoch merupakan frekuensi putaran pelatihan penuh dari seluruh data yang dihitung melalui neural netwrok
      • Setiap tercapai kondisi epoch, model kemudian melakukan prediksi dan menghitung loss, kemudian memperbarui parameter agar mendekati kondisi ideal

      4. Visualisasi Hasil

      def plot_results(model, T0, T1): x = torch.linspace(0, 1, 100).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”) 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()
      • Visualisasi hasil menunjukkan hasil prediksi model dibandingan dengan solusi analitik jika diketahui
      • Grafik yang ditunjukkan ini memperlihatkan kesesuaian model terhadap hukum fisika

      5. GUI Aplikasi

      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()
      • Digunakan Thinkter untuk membuat antarmuka bagi user
      • Kita bisa menginput T0, T1, serta jumlah epochs
      • Langkah akhirnya kita dapat menyelesaikan kasus ini dengan memencet solve dan plot

      Setelah memasukkan phyton code PINN 1D Heat Conduction dan menatur angka T0, T1, dan epochs di VsCode, didapat grafik sebagai berikut

      Pada grafik ini, dimasukkan T(0) sebagai left boundary dengan suhu 100ยฐ C dan T(1) sebagai right boundary dengan suhu 0ยฐ C dengan nilai epoch sebesar 1000

      Pada grafik ini, dimasukkan T(0) sebagai left boundary dengan suhu 100ยฐ C dan T(1) sebagai right boundary dengan suhu 0ยฐ C dengan nilai epoch sebesar 3000

      Kesimpulan grafik : Semakin besar nilai epoch yang diinput, maka semakin akurat juga grafiknya. Prediksi suhu T(x) menjadi semakin dekat dengan solusi analitik dan mirip dengan solusi eksak. Jika kita menginput nilai epoch yang sangat kecil, prediksi akan melengkung dan jauh dari solusi analitik. Jika kita menginput nilai epoch sebesar 500-1000 maka hasil prediksi akan mirip dengan solusi analitik, dan jika kita menginput nilai epoch sebesar 2000-3000 maka hasilnya bisa mendekati solusi analitik dan konvergen. Semakin kecil nilai epoch maka semakin besar loss nya dan boundary condition bisa tidak terpenuhi.

      Setelah menyelesaikan masalah 1D Heat Conduction menggunakan PINN, saya jadi menyadari bahwa masalah fisika yang kita hadapi ini bukan hanya tentang penyelesaian analitik, melainkan juga tentang bagaimana kita bisa melihat peran Allah SWT. PINN bukan hanya algoritma Artificial Intellegence, melainkan juga sebagai bentuk tafaqquh kita sebagai umat kepada Allah SWT. Framework Dai 5 yang dibuat oleh Prof.Dr.Ir Ahmad Indra Siswantara sangat membantu saya dalam menyelesaikan tugas ini. Sekian penjelasan dari saya, kurang lebihnya mohon maaf, terimakasih.

      Wassalamualaikum warahmatullahi wabarakatuh


      Leave a Reply

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