Skip to content

luisvenezian/unesp-nature-inspired-computing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Natural Computing Algorithms

This repository contains code developed during a master's degree program in natural computing. The implemented algorithms focus on optimization and search techniques using artificial intelligence.

Contents

  1. otimizacao.py: This notebook demonstrates an iterative approach of two AI algorithms for optimization and search: Hill Climbing and Simulated Annealing. It provides a step-by-step visualization of the algorithms using matplotlib.

  2. chromosome.py: An abstract class used for implementing various chromosome representations. Derived classes include chromosome_bitstring.py, chromosome_bitstring_max_function.py, and chromosome_simple_equation.py.

  3. genetic_algorithm.py: This file contains a general class for running genetic algorithms with support for any kind of chromosome representation. The run() method has been modified multiple times to return generation age, fitness value, or the instance of the best chromosome. The structure of this code is inspired by David Kopec's approach outlined in the book "Classic Computer Science Problems in Python".

  4. main.py: Entry point for the codebase.

  5. Notebooks:

    • Inside /plots dispersao.ipynb and 3d_and_series.ipynb were used for ad-hoc graph plotting and do not significantly contribute to the project's value. However, they are kept for future reference and potential reuse.
  6. Neural Networks: This folder has the usage of the Perceptron architecture for classification of:

    1. file percpetron.ipynb - classification of the outputs of an logical port type AND
    2. folder perceptron constains a full Scala program to compute classifications on Iris, Wine and Aids dataset from scratch, also there are some Python notebooks for data analysis on the training results.

Example Results

Here are some visualizations of the optimization process:

Visualization of the function ( f(x, y) = (1 − x)^2 + 100(y − x^2)^2 ), showcasing the results of the genetic algorithm optimization. 3D Graph

Evolution of the function result at each generation of the population initialized. Fitness Graph

About

Computação Inspirada Pela Natureza com professor Fabricio Breve

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages