MindMap Gallery Basic concepts of data structures and algorithms
Introduced the two major aspects of data structure and algorithm. Data structures mainly include linear structures and nonlinear structures. Linear structures include linear lists, stacks, queues, strings, arrays, matrices, generalized lists, etc. Nonlinear structures include trees, binary trees, forests, graphs, etc. The operations of data structures mainly include search and sorting. In terms of algorithms, it mainly introduces conventional algorithms such as divide and conquer method, dynamic programming method, etc., as well as data mining algorithms, intelligent optimization algorithms, etc.
Edited at 2022-06-30 12:23:27One Hundred Years of Solitude is the masterpiece of Gabriel Garcia Marquez. Reading this book begins with making sense of the characters' relationships, which are centered on the Buendía family and tells the story of the family's prosperity and decline, internal relationships and political struggles, self-mixing and rebirth over the course of a hundred years.
One Hundred Years of Solitude is the masterpiece of Gabriel Garcia Marquez. Reading this book begins with making sense of the characters' relationships, which are centered on the Buendía family and tells the story of the family's prosperity and decline, internal relationships and political struggles, self-mixing and rebirth over the course of a hundred years.
Project management is the process of applying specialized knowledge, skills, tools, and methods to project activities so that the project can achieve or exceed the set needs and expectations within the constraints of limited resources. This diagram provides a comprehensive overview of the 8 components of the project management process and can be used as a generic template for direct application.
One Hundred Years of Solitude is the masterpiece of Gabriel Garcia Marquez. Reading this book begins with making sense of the characters' relationships, which are centered on the Buendía family and tells the story of the family's prosperity and decline, internal relationships and political struggles, self-mixing and rebirth over the course of a hundred years.
One Hundred Years of Solitude is the masterpiece of Gabriel Garcia Marquez. Reading this book begins with making sense of the characters' relationships, which are centered on the Buendía family and tells the story of the family's prosperity and decline, internal relationships and political struggles, self-mixing and rebirth over the course of a hundred years.
Project management is the process of applying specialized knowledge, skills, tools, and methods to project activities so that the project can achieve or exceed the set needs and expectations within the constraints of limited resources. This diagram provides a comprehensive overview of the 8 components of the project management process and can be used as a generic template for direct application.
data structure
data structure
concept
definition
It is a collection of data elements and the relationship between the elements and the construction method
The relationship between elements is the logical structure of data
The storage of data elements and relationships between elements is called a storage structure (/physical structure)
Three elements
logical structure
storage structure
Operation
Classify according to logical structure
linear structure
nonlinear structure
tree structure
graph structure
About "Linear Structure"
definition
Used to describe data relationships with a single predecessor and successor in the objective world
Features
There is a linear relationship between data elements, that is, the elements are arranged "one after the other"
Classification
linear table
definition
It is a finite sequence of n (n≥0) elements (structurally indivisible), usually expressed as (a1,a2,...,an)
Basic operations
insert
delete
Find
storage structure
sequential storage
Use a set of storage units with consecutive addresses to sequentially store data elements in the linear table
The storage location of the i-th element ai
LOC(ai) = LOC(a1) (i-1) x L
chain storage
Store data elements using nodes linked by pointers
node structure
data field
Used to store the value of the data element
pointer field
Used to store the position information of the immediate predecessor or immediate successor of the current element
Classification
Linear linked list (or one-way linked list)
There is only one pointer field in the node
Doubly linked list
Each node has 2 pointers
circular linked list
The pointer of the node at the end of the table points to the node at the head of the table
static linked list
Use arrays to describe the linked storage structure of linear lists
stack
definition
Data storage and retrieval can only be achieved through one end (LIFO, Last In First Out, LIFO)
Basic operations
Initialization stack InitStack(S)
Determining that the stack is empty IsEmpty(S)
Push to the stack Push(S, x)
Pop(S)
Read the top element of the stack Top(S)
storage structure
sequential storage
chain storage
application
Expression evaluation
bracket matching
Converting a recursive process into a non-recursive process
queue
definition
Elements can only be inserted at one end of the table and deleted at the other end of the table (First In First Out, FIFO)
Basic operations
Initialize the queue InitQueue(Q)
Judge team empty IsEmpty(Q)
Enqueue EnQueue(Q, x)
Dequeue DelQueue(Q)
Read the head element of the queue FrontQue(Q)
storage structure
sequential storage
sequential queue
circular queue
chain storage
chain queue
string
definition
A limited sequence of characters only. Generally recorded as S='a1a2...an', S is the string name, and the string after = is the string value
basic concept
Empty string; space string; string comparison; string equality; substring;
Basic operations
Assignment operation StrAssign(s, t)
Concatenation operation Concat(s, t)
String length StrLength(s)
String comparison StrCompare(s, t)
Find substring SubString(s, start, len)
storage structure
sequential storage
chain storage
pattern matching
definition
The positioning operation of substrings is called string pattern matching.
Substring is also called pattern string
matching algorithm
Naive pattern matching algorithm
Brut-Foss algorithm
Improved pattern matching algorithm
KMP algorithm
promotion
array
definition
An array is an extension of a fixed-length linear list in terms of dimensions, that is, the elements in a linear list are also a linear list.
An N-dimensional array is a "isomorphic" data structure, with each data element having the same type and consistent structure.
Features
Fixed number of data elements
Data elements have the same type
The subscript relationship of data elements has upper and lower bound constraints, and the subscripts are ordered
Basic operations
Given a set of subscripts, access data elements
Given a set of subscripts, modify the data element
storage structure
sequential storage
matrix
definition
A matrix is a mathematical object. Here we mainly study how to make various operations on the matrix run efficiently while saving storage space.
Classification
special matrix
The distribution of elements with the same value or 0 elements in the matrix has certain rules.
Classification
Symmetric matrix
diagonal matrix
triangular matrix
sparse matrix
Elements with the same value or 0 elements are distributed irregularly in the matrix
storage
Use triplet (i, j, aij) to store the row number, column number, and value of 1 element
storage structure
sequential storage
triple sequence table
chain storage
cross linked list
generalized table
definition
is a finite sequence consisting of 0 or more single elements or sublists
length
number of elements
depth
The maximum number of levels of brackets contained in a generalized table after expansion
Basic operations
insert
delete
Find
storage structure
chain storage
About "Nonlinear Structure"
Tree
definition
A data element can have zero to one immediate predecessor element, and two or more immediate successor elements.
A tree is a finite set of n(n≥0) nodes
The definition of a tree is recursive. There is only one node called the "root", and the remaining nodes are called "subtrees" of the root node.
logical structure
There is a hierarchical relationship between elements
basic concept
parents
The root node of the child node
child
The root of a node's subtree is called the node's child.
brother
Nodes with the same parents are brothers of each other
leaf node
Terminal node, degree is 0
internal node
Non-terminal node or branch node, degree is not 0
degree of node
The number of subtrees of a node
Node level
The root is level 1, the children of the root are level 2, and so on.
tree height
The maximum number of layers in a tree is recorded as the height (or depth) of the tree
Ordered and unordered trees
If the subtrees of the nodes in the tree are ordered, it is an ordered tree, otherwise it is an unordered number.
storage structure
parent representation
child representation
child brother representation
It provides the possibility to realize conversion between trees, binary trees and forests.
Basic operations
Traverse
Way
Root traversal first
First visit the root node of the tree, and then traverse each subtree of the root in sequence.
back root traversal
First traverse each sub-tree of the root in sequence, and then visit the root node.
Other segments
Binary tree
definition
A binary tree is a finite set of n(n≥0) nodes
The definition of a binary tree is recursive. It is composed of 1 root node and 2 disjoint binary trees called left and right subtrees respectively.
Main properties
There are at most 2(i-1)th power nodes on the i-th level (i≥1) of the binary tree
A binary tree with height k (k≥1) has at most 2 k-1 nodes.
Classification
full binary tree
There are no empty nodes in each layer
complete binary tree
Except for the last floor, all other floors are full.
The nodes of the last layer are placed from left to right and cannot be left blank.
non-complete binary tree
storage structure
sequential storage
Store the nodes in the binary tree in an appropriate order in a set of memory cells with consecutive addresses.
Assume a complete binary tree with the root node number 1. If there is a node numbered i, then
If i=1, then the node is the root node and has no parents.
If i>1, then the parent node of this node is ⌊ i/2 ⌋
If 2i≤n, then the left child of the node is 2i, otherwise there is no left child
If 2i 1≤n, then the right child of the node is 2i 1, otherwise there is no right child
chain storage
storage
The node contains data elements, parents, the root of the left subtree, and the root of the right subtree.
Available binary linked list or triple linked list storage
Basic operations
Traverse
definition
The process of visiting each node in the tree according to a certain strategy and visiting it only once
The process of traversing a binary tree is essentially a process of arranging the nodes in the tree into a linear sequence according to certain rules.
Way
(1) According to the convention of traversing the left subtree first and then the right subtree, depending on the location of the root node visited,
3 ways available
preorder traversal
inorder traversal
Postorder traversal
(2) Layer-order traversal (top-down, left-to-right, layer-by-layer access)
Other segments
clue binary tree
definition
In the storage information of binary tree nodes, add direct predecessor and direct successor information
optimal binary tree
definition
Also known as Huffman tree, it is a type of tree with the shortest weighted path length.
basic concept
path
A path from one node to another in the tree
path length
Number of branches on the path
weighted path length of node
The length of the path from the node to the root of the tree multiplied by the weight of the node
tree path length
The sum of the path lengths from the root to each leaf
The weighted path length of the tree
The sum of the weighted path lengths of all leaf nodes in the tree
Construction algorithm
(1) In the binary tree set, select the two trees with the smallest weight as the left and right subtrees (the one with the smaller weight of the two is placed as the left subtree) to construct a new binary tree. The root nodes of the left and right subtrees are The sum of the weights of the points is used as the weight of the root node of the new binary tree; (2) Delete these two trees from the set and add the newly constructed tree; Repeat the above steps;
application
Huffman coding
illustrate
forest
definition
Trees and forests are mutually recursively defined
Basic operations
Traverse
Way
preorder traversal
First visit the root node of the first tree in the forest, and then traverse the sub-tree forest of the root node of the first tree in order. Last order traverses the forest of remaining trees
inorder traversal
First traverse the sub-tree forest of the first tree in the forest in order, and then visit the root node of the first tree. Finally, in-order traverses the forest composed of the remaining trees.
Conversion between trees, binary trees, and forests
Convert tree to binary tree
step
(1) Add a line: Add a connection between sibling nodes
(2) Line removal: The node only retains the connection with the first node
(3) Level adjustment (rotation): With the tree root node as the axis, rotate so that the first child node is located at the left child position and the sibling node is located at the right child position.
Convert forest to binary tree
step
(1) Each tree in the forest is converted into a binary tree
(2) The first binary tree does not move, and the root node of the next binary tree is used as the right child of the root node of the previous binary tree and connected.
Convert binary tree to tree
step
(1) Add a line: n right child nodes of the left child of a node are all child nodes of this node and connected.
(2) Line removal: Delete the connections between all nodes in the original binary tree and their right child nodes
(3) Level adjustment (rotation)
Convert binary tree to forest
step
(1) Separate the binary tree
Starting from the root node, delete all right child connections
(2) Convert binary tree to tree
picture
definition
There is no limit to the number of predecessor nodes and successor nodes of a node.
Graph G(Graph) is a tuple composed of sets V(Vertex) and E(Edge), denoted as G=(V, E)
V is a non-empty finite set of vertices (data elements)
E is a finite set of edges (relationships between data elements)
basic concept
degree of vertex
Spend
The number of edges associated with the vertex is the sum of in-degree and out-degree, denoted D(v)
degree
is the number of directed edges ending at the vertex, recorded as ID(v)
out degree
It is the number of directed edges starting from this vertex, recorded as OD(v)
path
Vertex sequence from vertex vp to vertex vq
path length
number on the path
loop or ring
The path where the first vertex and the last vertex are the same
If the remaining vertices of the path are different, it is called a simple path
subplot
Connected graphs and connected components
connected graph
Any two vertices are connected undirected graphs
connected components
Maximally connected subgraph of this graph
Strongly connected graph and strongly connected components
Strongly connected graph
Any two vertices are connected directed graphs
Strongly connected component
Maximally connected subgraph of this graph
net
Graph with side weights
directed tree
A directed graph with one vertex having an in-degree of 0 and the remaining vertices having an in-degree of 1
spanning tree
Minimal connected subgraph of the graph (without cycles)
The spanning tree of a graph is not unique
Single source point shortest path
Classification
directed graph
Every edge has a direction
The relationship between vertices is represented by <vi, vj>
It means that vi to vj has a directed edge (also called an arc)
vi is the starting point of the directed edge, called the arc tail
vj is the end point of the directed edge, called the arc head
Other segments
directed acyclic graph
Directed graph without cycles
Undirected graph
Each edge has no direction
The relationship between vertices is represented by (vi, vj)
complete graph
Every vertex has an edge with other vertices
Classification
Directed complete graph
undirected complete graph
storage structure
Adjacency matrix notation
Adjacency linked list representation
Basic operations
Traverse
definition
Graph traversal refers to the process of starting from a certain vertex and visiting all the vertices in the graph along a certain search path only once.
Way
Depth First Search (DFS)
Search and access in depth direction first if possible
Breadth First Search (BFS)
Try to search in the horizontal direction first if possible
About "Minimal Spanning Tree"
definition
For a connected network, the edges are weighted, and each edge of the spanning tree is also weighted.
Minimum spanning tree is the spanning tree with the smallest weight
basic concept
Spanning tree right
The sum of the weights of each edge of the spanning tree
Commonly used minimum spanning tree solving algorithms
Prim's algorithm
Kruskal's algorithm
About "shortest path from single source"
definition
It means that given a weighted directed graph G and the source point v0, find the shortest path from v0 to the remaining vertices in G
Commonly used solving algorithms
Dijkstra's algorithm
Floyd's algorithm
application
AOV network (Activity On Vertex network)
definition
A directed graph that uses vertices to represent activities and directed edges to represent priority relationships between activities.
Directed cycles should not appear in the AOV network
Check whether there is a loop in the AOV network
method
For a directed graph, construct a topologically ordered sequence of its vertices. If all the vertices in the graph are in its topologically ordered sequence, there is no cycle.
step
(1) Select a vertex in the network with an in-degree of 0 and output it
(2) Delete the vertex and all associated arcs from the network
(3) Repeat the above two steps until there are no vertices with an in-degree of 0 in the network.
(4) Result
If all vertices have been output, the entire topological sorting is completed, indicating that there is no loop.
If there are still vertices that have not been output, and the remaining vertices all have predecessor vertices, topological sorting cannot continue at this time, indicating that there is a loop.
AOE network (Activity On Edge network)
definition
A directed graph in which events are represented by vertices, activities are represented by directed edges, and the duration of the activity is represented by the weights on the edges.
The time required for the entire project is the length of the longest path from the start vertex to the end vertex.
basic concept
The event represented by the vertex is a sign that some activities have been completed and some activities can be started.
Source
The starting vertex with indegree 0
meeting point
End vertex with out-degree 0
Critical Path
The longest path from source to sink
All activities on the critical path are critical activities
The time of the vertex event
The earliest occurrence time of the vertex event ve(j)
The latest occurrence time of the vertex event vl(i)
Operations on data structures
Find
basic concept
illustrate
Search is a commonly used basic operation
lookup table
Refers to a collection of data elements (or records) of the same type
Keywords
Is the value of a data item of a data element (or record)
Used to identify (identify) this data element
primary keyword
A keyword that uniquely identifies a data element
secondary keywords
refers to a keyword that can identify multiple data elements
Search results
Search successful
Search failed
average search length
The expected number of times the search process needs to be compared with the given keyword value
Basic operations of lookup tables
static lookup table
Query whether a certain data element is in the lookup table
Retrieve various attributes of a data element
dynamic lookup table
Insert a data element
Delete a data element
About "Static Lookup Table"
Find method
Classification
sequential search
half search
process analysis
The search process can be described by a binary tree
Construction method of binary search decision (binary) tree
(1) Take the middle position number of the current search interval as the root
(2) The record serial numbers in the left half of the sub-table and the right half of the sub-table are used as nodes on the left subtree and right subtree of the root respectively.
Block search
About "Dynamic Lookup Table"
Features
The table structure itself is dynamically generated during the search process
Table structure classification
Binary sorting tree
definition
Also known as binary search tree
it may be an empty tree
Or a binary tree with the following properties
If the left subtree is not empty, then the values of all nodes in the left subtree are less than the value of the root node
If the right subtree is not empty, then the values of all nodes in the right subtree are greater than the value of the root node
The left and right subtrees themselves are binary sorted trees.
balanced binary tree
definition
Also known as AVL tree
it may be an empty tree
Or a binary tree with the following properties
The absolute value of the difference between the heights of the left and right subtrees does not exceed 1
The left and right subtrees themselves are balanced binary trees
operate
insert
LL type one-way right-hand balancing treatment
RR type one-way left-hand balancing treatment
LR type first left and then right two-way rotation balance processing
RL type first right and then left two-way rotation balance processing
B_tree of order m
definition
it may be an empty tree
Or an m-tree with the following properties
Each node in the tree has at most m subtrees
...
red black tree
Hash table (or hash table)
definition
The storage address of the record is obtained by calculating a function (called a hash function) with the key of the record as an independent variable.
That is, based on the set hash function H(key) and the conflict handling method, a set of keywords is mapped to a limited continuous address set (interval), and the "image" of the keyword in the address set is used as a record. storage location in table
This mapping process is called hashing or hashing
The resulting storage location is called a hash address or hash address
basic concept
About hash collisions
For a certain hash function H and the two keys K1 and K2, if K1≠K2 and H(K1)=H(K2), it is called a conflict
Keywords with the same hash function value are called synonyms for that hash function.
Generally speaking
Collisions can only be reduced as much as possible but not completely avoided, because the hash function is the image from the keyword set to the address set
The hash function is a compressed image and collisions are inevitable
Main issues to consider
How to construct a hash function
Common methods
direct addressing method
digital analytics
Square-Medium Method
folding method
random number method
division leaving remainder method
Problems that should be solved
The hash function should be a compressed image function, which should have greater compression to save storage space
The hash function should have good hashing properties and map keywords to various storage units in the storage area as evenly as possible
How to resolve conflicts
Common methods
open addressing method
chain address method
rehash
Create a public overflow area
Basic operations
Find
concept
Calculate the storage address of the record to be checked using the same hash function and conflict handling method used when storing elements.
average search length
depending on
Hash function
How to handle conflicts
Hash table fill factor
About "Hash Table Filling Factor"
definition
α = number of records loaded into the table / length of the hash table
sort
basic concept
definition
Assume that the content of the file containing n records is {R1, R2,…,R}, and the corresponding keywords are {k1,k2,…,kn}. After sorting, an arrangement {Rj1, Rj2,…,Rjn} is determined, Make their keywords satisfy the following increasing (or decreasing) relationship: kj1≤kj2≤...≤kjn (or kj1≥kj2≥...≥kjn).
Stability of sorting method
Stable sorting method
Records Ri and Rj with the same keyword, Ri is ahead of Rj. After sorting, the order of Ri and Rj remains unchanged.
Unstable sorting method
Records Ri and Rj with the same keyword, Ri is ahead of Rj. After sorting, the order of Ri and Rj may change
Basic operations
(1) Compare the size of keywords;
(2) Depending on the storage method, the location of the record may need to be moved;
Classification
Internal sorting
Simple sorting
direct insertion sort
Bubble Sort
Simple selection sort
Hill sort
Heap sort
Quick sort
merge sort
two-way merge sort
Radix sort
external sort
basic method
Method classification
k-way balanced merge
algorithm
basic concept
Algorithm Theory Research
Algorithm design techniques (/strategy)
Answer the question: "How to come up with an algorithm to solve a specific problem?"
Algorithmic Analysis Techniques
Answer the question: "Is the algorithm good enough?"
definition
Algorithm is a description of the steps to solve a specific problem. It is a finite sequence of instructions. Each of these instructions represents one or more operations.
5 important characteristics of algorithms
Finiteness
certainty
feasibility
enter
output
About "Algorithm Design"
Main technique
Divide and conquer method, dynamic programming method, greedy method, backtracking method, branch and bound method, probability algorithm, approximation algorithm
About "Algorithmic Analysis"
some analytical criteria
Correctness, reliability, simplicity, and understandability of the algorithm
The time complexity and space complexity of the algorithm
Algorithm representation
natural language
flow chart
programming language
pseudocode
About "time complexity"
analyze
definition
It mainly analyzes the running time of the algorithm, that is, the number of basic operations required for algorithm execution.
method
Establish a function T(n) with the input scale n as the independent variable to represent the time complexity of the algorithm.
According to different inputs, there are 3 situations
best case scenario
worst case scenario
average situation
progressive symbol
is a further abstraction of the above T(n) method, which only considers the growth rate of the running time (or called the growth magnitude)
Analytical method
O mark
Asymptotic upper bound analysis
example:
Ω symbol
Gradual next analysis
Θ symbol
Asymptotic upper bound and asymptotic lower bound analysis, that is, asymptotic compact bound analysis
Algorithm structure
Generally can be divided into
non-recursive form
recursive form
Main time complexity analysis methods
expansion method
substitution method
recursive tree method
main method
Conventional algorithm
divide and conquer
Basic idea
Decompose a large problem that is difficult to solve directly into a number of smaller identical problems so that they can be broken down individually and divided and conquered
recursion
It means that the subroutine calls itself directly or indirectly through a series of calling statements.
Basic elements
Boundary conditions
Recursive mode
The main steps
The steps of the divide-and-conquer algorithm at each level of recursion
(1) Decomposition
(2) Solve
(3) Merge
application
merge sort
Maximum fields and questions
dynamic programming
Basic idea
Break down a large problem that is difficult to solve directly into a number of smaller identical problems and attack each one. Unlike the divide-and-conquer approach, subproblems are often not independent
Save answers to solved subproblems in a table and retrieve them when needed
The main steps
(1) Find out the properties of the optimal solution
(2) Recursively define the value of the optimal solution
(3) Calculate the optimal value in a bottom-up manner
(4) Construct an optimal solution based on the information obtained when calculating the optimal value
application
0-1 backpack problem
Longest common subsequence (LCS)
greedy method
Basic idea
The strategy is to make choices based only on the currently available information and obtain local (/approximate) optimal solutions.
algorithm form
recursive greedy algorithm
iterative greedy algorithm
application
Activity selection issues
backpack problem
Backtracking
Basic idea
After determining the organizational structure of the solution space, the backtracking method starts from the starting node (root node) and searches the entire solution space in a depth-first manner. Until the required solution is found or there are no active nodes in the solution space
The solution goal is to find all solutions that satisfy the constraints
solution space
Should contain at least one (optimal) solution to the problem
Generally expressed in the form of a tree or graph
bounding function
Since the solution space is often very large, in order to search effectively, some nodes need to be pruned during the search process. Design a bounding function for pruning judgment (pruning as early and as much as possible)
The main steps
(1) Define the solution space of the problem
(2) Determine the solution space structure that is easy to search
(3) Search the solution space in a depth-first manner
scoring framework
Recursive way
non-recursive
application
0-1 backpack problem
n Queen problem
branch and bound method
Basic idea
Similar to the backtracking method, it is also an algorithm that searches for the solution to the problem on the solution space tree T of the problem.
Search the solution space in a breadth-first or least-cost-first manner
The solution goal is to find an (optimal) solution that satisfies the constraints
bounding function
Classified according to different ways of selecting the next expansion node from the active point table
Queued (FIFO, first in first out) branch and bound method
priority queue branch and bound method
Probabilistic algorithm
Basic idea
When the algorithm performs certain steps, you can randomly choose how to proceed next, while allowing the results to be erroneous with a smaller probability, and at the expense of this, obtain a substantial reduction in the algorithm running time.
Classification
Numerical Probability Algorithm
Monte Carlo algorithm
Las Vegas algorithm
Sherwood algorithm
approximation algorithm
Basic idea
Give up seeking the optimal solution and replace the optimal solution with an approximate optimal solution in exchange for simplification of algorithm design and reduction of time complexity
Measure of performance
The time complexity of the algorithm
The degree of approximation of the solution
data mining algorithm
data mining
basic concept
It is an interdisciplinary subject that uses machine learning methods to analyze and mine a variety of data (database data, data warehouse data, Web data, etc.)
core
is an algorithm
The main function
Classification
return
Association rules
clustering
Intelligent optimization algorithm
Overview
Optimization technology
It is an application technology based on mathematics and used to solve optimal solutions to various engineering problems.
In the field of optimization, due to the intuitiveness and natural mechanism of these algorithm constructions, they are often called "intelligent optimization algorithms" or "modern heuristic algorithms"
Existing optimization algorithms
Artificial Neural Network (ANN)
principle
A dynamic system with a directed graph topology that processes information by responding to continuous or discontinuous input states.
Classification
Feedforward and feedback networks
Classification
Multi-layer forward neural network based on BP algorithm
deep machine learning
Deep Belief Networks (DBNs)
Convolutional Neural Networks (CNNs)
genetic algorithm
Simulated Annealing Algorithm (SA)
Tabu search algorithm (TS)
Ant Colony Algorithm
Particle Swarm Optimization Algorithm (PSO)