:class:`~textattack.search_methods.SearchMethod` attempts to find the optimal set of perturbations that will produce an adversarial example. Finding such optimal perturbations becomes a combinatorial optimization problem, and search methods are typically heuristic search algorithms designed to solve the underlying combinatorial problem.
More in-depth study of search algorithms for NLP adversarial attacks can be found in the following work Searching for a Search Method: Benchmarking Search Algorithms for Generating NLP Adversarial Examples by Jin Yong Yoo, John X. Morris, Eli Lifland, and Yanjun Qi.
.. autoclass:: textattack.search_methods.SearchMethod :members:
.. autoclass:: textattack.search_methods.BeamSearch :members:
.. autoclass:: textattack.search_methods.GreedySearch :members:
.. autoclass:: textattack.search_methods.GreedyWordSwapWIR :members:
.. autoclass:: textattack.search_methods.AlzantotGeneticAlgorithm :members:
.. autoclass:: textattack.search_methods.ImprovedGeneticAlgorithm :members:
.. autoclass:: textattack.search_methods.ParticleSwarmOptimization :members:
.. autoclass:: textattack.search_methods.ParticleSwarmOptimizationLEAP :members: