机器学习_第07讲-3-2-2-DP
- 格式:pdf
- 大小:592.60 KB
- 文档页数:41
机器学习基础课件概述机器学习是人工智能领域中的一个重要分支,它通过利用数据和统计算法来使计算机系统自动地学习和改进性能。
在过去的几年中,机器学习已经在各个领域得到广泛应用,如自然语言处理、计算机视觉和数据挖掘等。
本课件将介绍机器学习的基础知识,包括机器学习的分类、常用的算法和评估方法等。
机器学习的分类在机器学习中,根据学习方式和任务类型的不同,可以将机器学习分为以下几类:1.监督学习(Supervised Learning):监督学习通过使用带有标签的数据作为输入和输出,并训练模型来预测新数据的标签。
常见的监督学习算法有线性回归、逻辑回归、决策树和支持向量机等。
2.无监督学习(Unsupervised Learning):无监督学习是指利用无标签的数据进行模型训练和预测。
常见的无监督学习算法有聚类、降维和关联规则挖掘等。
3.半监督学习(Semi-supervised Learning):半监督学习是介于监督学习和无监督学习之间的学习方式,它同时使用带标签和无标签的数据进行模型训练。
半监督学习可以减少标记数据的需求,提高模型的性能和泛化能力。
4.强化学习(Reinforcement Learning):强化学习是通过观察环境的状态和采取行动来学习最优策略的一种学习方式。
它包括智能体、环境和奖励机制三个要素。
常见的强化学习算法有Q-Learning和深度强化学习等。
常用的机器学习算法机器学习的算法种类繁多,根据任务不同,选择合适的算法对于模型的性能和效果至关重要。
以下介绍几种常用的机器学习算法:1.线性回归(Linear Regression):线性回归是一种用于预测连续型变量的监督学习算法。
它通过拟合一个线性模型来建立输入特征与输出之间的关系。
2.决策树(Decision Tree):决策树是一种基于树结构的有监督学习算法。
它通过在特征空间中划分样本集合来进行分类或回归。
决策树具有解释性强和易于理解的优点。
机器学习基础入门1. 什么是机器学习机器学习是一种人工智能的分支,旨在使计算机能够从数据中学习和改进,而无需明确编程。
它通过构建和训练模型来实现这一目标,这些模型可以根据输入数据进行预测或做出决策。
机器学习的应用广泛,包括图像识别、语音识别、自然语言处理、推荐系统等。
2. 机器学习的基本原理机器学习的基本原理是通过训练数据来构建模型,并使用该模型对新数据进行预测或分类。
以下是机器学习的基本步骤:2.1 数据收集和准备在开始机器学习项目之前,首先需要收集和准备数据。
数据可以来自各种来源,如数据库、文件、传感器等。
数据准备包括数据清洗、特征选择和特征工程等步骤,以确保数据的质量和适用性。
2.2 模型选择和训练选择合适的模型是机器学习中的关键步骤之一。
常见的机器学习模型包括线性回归、决策树、支持向量机、神经网络等。
选择模型时需要考虑数据的特点和问题的需求。
训练模型是指使用训练数据来调整模型的参数,使其能够更好地拟合数据。
2.3 模型评估和调优在训练模型之后,需要对其进行评估和调优。
评估模型的性能可以使用各种指标,如准确率、召回率、F1分数等。
如果模型的性能不满足要求,可以通过调整模型的超参数或改进数据准备过程来提高模型的性能。
2.4 模型应用和部署当模型训练和调优完成后,可以将其应用于新数据并进行预测或分类。
模型的部署可以是将其集成到现有系统中,或者将其作为一个独立的服务提供给其他应用程序使用。
3. 常见的机器学习算法机器学习算法可以分为监督学习、无监督学习和强化学习三类。
以下是常见的机器学习算法:3.1 监督学习算法监督学习算法使用带有标签的训练数据来训练模型,并根据输入数据预测其对应的标签。
常见的监督学习算法包括线性回归、逻辑回归、决策树、支持向量机等。
3.2 无监督学习算法无监督学习算法使用未标记的训练数据来训练模型,目标是发现数据中的模式和结构。
常见的无监督学习算法包括聚类、降维、关联规则等。
机器学习入门教程简介机器学习是一种人工智能(AI)领域的技术,它使计算机能够从数据中自动学习并改进性能,而不需要明确编程。
本教程旨在介绍机器学习的基础知识和常见的算法,以帮助初学者快速入门。
目录1.什么是机器学习2.机器学习的应用领域3.常见的机器学习算法•监督学习算法–线性回归–逻辑回归–决策树–支持向量机•无监督学习算法–K均值聚类–主成分分析(PCA)–关联规则挖掘(Apriori算法)4.数据预处理•数据清洗•特征选择和提取•数据转换和标准化5.模型评估与选择6.模型调优与参数优化7.实践案例展示什么是机器学习机器学习是一种通过对数据进行统计分析和模式识别来让计算机自动进行决策或预测的技术。
它基于数学和统计原理,利用算法和模型来让计算机从数据中学习,提取规律并应用于新的数据。
机器学习的应用领域机器学习已经广泛应用于各个领域,包括但不限于以下几个方面:•自然语言处理(NLP)•图像识别与处理•推荐系统•声音和语音识别•金融风控与欺诈检测•医疗诊断与预测•智能交通系统•智能物流和供应链管理常见的机器学习算法监督学习算法监督学习是一种通过已有的输入输出数据来训练模型,并利用该模型对未知数据进行预测或分类的方法。
线性回归线性回归是一种常见的监督学习算法,适用于对连续数值进行预测。
它建立了一个线性关系模型,通过最小化残差平方和来找到最优解。
逻辑回归逻辑回归是一种二分类问题的监督学习算法。
它通过将线性回归模型结合Sigmoid函数的输出进行转换,将连续值映射到概率范围内(0到1之间)。
决策树决策树是一种基于树状结构的分类算法,通过学习从特征到目标值的映射关系来进行预测。
它可以处理离散和连续型数据,并且易于解释和理解。
支持向量机支持向量机(SVM)是一种常用的监督学习算法,在二分类和多分类问题中都有良好的表现。
它通过在高维空间中找出最优分隔超平面来进行分类。
无监督学习算法无监督学习是一种通过对未标记数据的分析、挖掘和模式识别来进行模型训练的方法。
1一月二月三月产品名称数量金额利润产品名称数量金额利润产品名称数量金额利润合计合计合计四月五月六月产品名称数量金额利润产品名称数量金额利润产品名称数量金额利润机器学习讲义(2010年春硕士课程试用)第一章绪论序机器学习通常被认为是人工智能领域的一个分支,但和人工智能一样,实际上是多学科的融合。
为了说明什么是机器学习,我们来看一下“自动”(automation) 和“自主”(autonomy) 这两个概念的区别。
在通常的“自动化”系统中,所有的“智能”都是系统设计者预先注入的。
当系统放入它的运行环境中去之后,将按照预定的程序进行活动。
但是如果设计者对环境的了解是不全面的,系统就有可能陷入无所适从的境地(系统中的知识是由人工编程输入的,知识中的错误也不能自动改正。
)。
这时“学习”的能力就成为唯一可依靠的解决方法,也是实现机器超过人这个终极智能的唯一手段。
具有学习能力的系统称为是“自主的”。
学习意味着根据经验改进自身。
学习的真谛在于:感知不仅用于当前的行动,而且用于改进以后的行动。
学习是系统和环境交互的结果,也来自于系统对自己决策过程的观察。
学习的范围极广,从仅仅记住经验,到创造整个的科学理论,所有这些活动都是学习的过程。
简而言之,机器学习意味着通过编程使计算机进行学习。
比如,让计算机从医疗记录中学到治疗新疾病的最佳方案;使智能房屋根据经验学到基于主人生活习惯的能源消耗优化方案;开发个人软件助手为用户从在线晨报中摘出该用户特别感兴趣的内容;等等。
机器学习研究的进展对社会经济的影响将是巨大的,它能使计算机的应用领域大为扩展,并使个人和组织的竟争力提高到新的水平,甚至形成人类全新的生活方式。
另外,对机器学习的信息处理算法的研究将导致对人脑学习能力(及其缺陷)的更好的理解。
就机器学习研究的现状而言,我们必须承认,目前还不能使计算机具有类似人那样的学习能力。
但是,对某些类型的学习任务已经发明了有效的算法,对学习的理论研究也已经开始,人们已经开发出许多计算机程序,它们显示了有效的学习能力,有商业价值的应用系统也已经开始出现。
机器学习基础教程在当今信息时代,我们每天都会面临大量的数据,如何从这些数据中提取有用的信息并帮助我们做出更好的决策成为了我们所关注的焦点。
以往的人类从业经验或者现有理论构建的模型已经无法胜任这个任务,这便是机器学习技术的发展背景。
本文将为大家介绍机器学习的基础知识。
1、机器学习—什么是机器学习机器学习是人工智能的一个分支,是指通过对数据进行自动学习,让计算机拥有类人的学习能力的技术。
机器学习的主要任务是制订一种算法或模型,通过大量的数据训练,从而能够让计算机具有感知能力,从而得出需要的信息。
机器学习通常可以分为三个主要的部分:数据准备,训练模型以及预测。
2、机器学习—机器学习的分类机器学习可以分为监督学习、无监督学习、半监督学习和强化学习四个主要的分类。
- 监督学习:监督学习的核心思想是预测输出,它训练模型并通过测试数据验证模型的准确性。
它需要已标注的数据,即数据集要包含输入(自变量)和输出(因变量)的对应关系。
这些对应关系组成了一种模型,这个模型可以用于预测未来数据。
- 无监督学习:无监督学习则是在不需要标签的情况下自行学习。
无监督学习的分类不像监督学习那样规范,通常是通过聚类算法或非线性降维技术等先进的算法实现的。
- 半监督学习:半监督学习是监督学习和无监督学习的折衷方案,它利用无标注数据的学习能力增强监督学习算法的性能。
半监督学习算法的核心思路是让有标签数据和无标签数据一起参与算法的训练过程,从而提升模型的准确性- 强化学习:强化学习是通过收集数据和试错,以提高智能体在环境中的决策能力。
它的目标是设计一个具有学习能力的智能体,它可以感知到环境和状态,并通过在环境中采取行动,获得奖励和反馈来实现目标。
3、机器学习—如何进行机器学习机器学习通常的流程如下:(1)数据的准备:机器学习的第一步是数据准备。
在这一阶段,需要收集数据并对数据进行清洗和标注,使它们变得容易理解和分析。
(2)特征提取:在数据收集后,需要将数据转换为可以供算法使用的特征向量,通常可以使用特征提取技术将数据转换为数字形式。
机器学习基础入门机器学习是一门通过让计算机自动学习和改进的技术,使其能够根据大量数据进行预测或决策的领域。
随着大数据时代的到来,机器学习成为了解决复杂问题和优化决策的有力工具。
本文将介绍机器学习的基础知识和常用算法,帮助读者快速入门。
1. 什么是机器学习?机器学习是一种人工智能的分支领域,旨在使计算机能够通过从数据中学习并自动改进来执行特定任务。
它不依赖于明确编程,而是依赖于计算机从大量数据中学习模式和规律。
2. 机器学习的基本原理机器学习的基本原理可以概括为以下三个步骤:数据准备:收集和准备数据集,包括清洗、转换、特征选择等。
模型训练:选择合适的算法,使用准备好的数据训练模型,并对其进行调优。
模型应用:使用训练好的模型对新数据进行预测或决策。
3. 常用的机器学习算法在机器学习中,有许多种类的算法可供选择,每种算法都有不同的适用场景和特点。
以下是几种常用的机器学习算法:3.1 监督学习算法监督学习是指从带有标签信息的训练数据中学习出一个函数或模型,使其能够根据输入数据预测相应的输出。
常见的监督学习算法包括线性回归、逻辑回归、决策树、随机森林等。
3.2 无监督学习算法无监督学习是指从未标记的训练数据中寻找隐藏的结构或模式。
与监督学习不同,无监督学习没有提供标签信息。
常见的无监督学习算法包括聚类分析、主成分分析(PCA)、关联规则等。
3.3 强化学习算法4. 实践案例:基于KNN算法的分类模型为了更好地理解机器学习,我们以一个实践案例来演示如何构建一个基于KNN算法的分类模型。
首先,我们需要收集并准备用于训练和测试模型的数据集。
然后,我们选择合适的特征并进行标准化处理。
接下来,我们将数据集划分为训练集和测试集。
然后,我们使用KNN算法对训练集进行模型训练,并选择合适的K值。
在进行预测时,我们使用测试集中的样本作为输入,并通过计算其与训练集中样本之间的距离来确定其所属类别。
最后,我们评估模型的性能,并根据需要进行调整和优化。
机器学习技术的基础知识机器学习是人工智能中的一个分支,它能让机器通过学习,自动地进行决策和预测,从而提高工作效率和准确度。
那么,机器学习技术的基础知识有哪些呢?一、数据预处理数据预处理是机器学习中非常重要的一步,因为它准确的妆饰数据准确性及其对模型的推荐结果至关重要,常见的数据预处理方法包括数据清洗、数据转换和数据缩放。
1. 数据清洗:数据清洗主要是针对数据中存在的缺失值、异常值、重复值等问题。
常用的数据清洗方式有填补缺失值、删除异常值、去除重复值等。
2. 数据转换:数据转换指的是将数据从一种形式转换成另一种形式。
常见的数据转换方法包括标准化、正则化、二进制化等。
3. 数据缩放:数据缩放主要是对数据特征进行缩放,使得数据特征的尺度均一,避免了某个特征对预测结果的影响过大。
常见的数据缩放方法有min-max缩放、Z-score缩放等。
二、模型选择模型选择指的是在机器学习过程中选择合适的模型,使得模型能够准确地预测结果。
常见的机器学习模型包括朴素贝叶斯、决策树、支持向量机、神经网络等。
在选择模型时需要考虑模型的可解释性、准确度、时间和空间复杂度等因素。
三、模型训练模型训练指的是在机器学习中通过数据对模型进行训练,使得模型能够预测出准确的结果。
模型训练过程中需要定义损失函数、学习速率等参数。
常见的机器学习算法包括随机梯度下降(SGD)、反向传播算法等。
四、模型评估模型评估是对模型进行准确性评估的过程,评估方法包括准确率、精度、召回率等指标。
常见的评估方法包括k-交叉验证、AUC和ROC曲线等。
五、模型优化模型优化指的是对模型进行调整,以提高模型预测准确度。
常见的方法包括调整模型参数、使用正则化方法、选择新的特征等。
六、实际应用机器学习在实际应用中的领域越来越广泛,包括电商推荐系统、社交网络分析、金融风控等。
在实际应用中需要考虑市场需求、资源分配、时间成本等因素。
总之,机器学习技术的基础知识包括数据预处理、模型选择、模型训练、模型评估、模型优化和实际应用等方面。
什么是动态规划?•多阶段决策过程(multistep decision process)是指这样一类特殊的活动过程,该过程可以按时间顺序这样类特殊的活动过程该过程可以按时间顺序分解成若干个相互联系的阶段,在每一个阶段都需要做出决策,全部过程的决策是个决策序列。
出决策全部过程的决策是一个决策序列动态规划dynamic programming(dynamic programming )算法是解决多阶段决策过程最优化问题的一种技巧性较强的常用方法,。
•利用动态规划算法,可以优雅而高效地解决很多贪婪算法或分治算法不能解决的问题。
法或分治算法不能解决的问题什么是动态规划?•动态规划算法将问题的解决方案视为一系列决策的结果•与贪婪算法不同的是,每采用一次贪婪准则,便做出一个不可撤回的决策;而在动态规划算法中,还要考察每个不可撤回的决策而在动态规划算法中还要考察每个最优决策序列中是否包含一个最优决策子序列,即问题是否具有最优子结构性质。
•适合使用动态规划求解的问题•动态规划算法的有效性依赖于待求解问题本身具有的两个重要性质:最优子结构性质和子问题重叠性质。
两个重要性质:最优子结构性质和子问题重叠性质• 1 、最优子结构性质。
如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结• 2 、子问题重叠性质。
子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。
动并不总是新问题有些子问题会被重复计算多次动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一解题效率。
最优化原理(最优子结构性质)•作为一个全过程的最优策略具有这样的性质:对于最优策略过程中的任意状态而言,无论其对于最优策略过程中的任意状态而言无论其过去的状态和决策如何,余下的诸决策必构成一个最优子策略即:。
即:一个最优策略的子策略总是最优的•一个问题满足最优化原理,又称其具有最优子个问题满足最优化原理又称其具有最优子结构性质。
动态规划的两条重要性质•一个优化问题能够用动态规划方法求解个优化问题能够用动态规划方法求解的关键在于:1. 最优子结构每个子结构都是最优的(最优化理论)动态规划的两条关键性质•动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只解一次,而后将其解保2. 重叠子问题,而后将其解保存在一个表格中,在以后尽可能多地利用这些子问题的解子问题之间不是独立的,大量子问题是重叠的动态规划算法的三个基本元素–递推关系(recurrence relation)for defining the value of an optimal solution–表格计算(tabular computation)(p )for computing the value of an optimal solution–回溯(traceback)f d li i i l l ifor delivering an optimal solution动态规划算法举例•例子1:Fibonacci 数–斐波纳契(Fibonacci)数可由如下递归定义:•F(1)=1;•F(i)=F(i-1)+F(i-2); For i>1()()()动态规划算法举例F•如何计算F10?FF9810FF7F7……–递归算法:8F6算–If n=0, then F=0;Else if n=1then F=1;Else if n=1, then F=1;–Else F=F(n-1)+F(n-2);T()O(2T(n)=O(2n)动态规划算法举例T()O(22008年8月10日11–T(n)=O(2n )动态规划算法•表格计算可避免冗余性:用数组将前n-1个数存起来,每次只用一个加法F[n] = F[n-存起来每次用个加法[][1]+F[n-2] 即可F0F1F2F3F4F5F6F7F8F9F10 011235813213455T(n)=O(n)动态规划算法举例•例子2:最大和区间问题–对于一给定的实数序列a 1a 2…a n ,找出和最大的连续子序列.9 -3 1 7 -15 2 3 -4 2 -7 6 -2 8 4 -9–对于每个位置,我们都可以用O(n)时间计算由()这个位置开始的最大和区间.这样寻找这个序列的最大和区间的时间复杂度为O(n 2)最大和区间的递归关系•定义S(i)为在i点结束的最大和区间的值•如果S(i-1)<0,则a i与其前最大和区间连,故有:接将小于它本身,故有:最大和区间的表格计算3 1 7 15 2 34 2 7 6 2 8 4 99-317-1523-42-76-284-9S(i) 9 6 7 14 -1 2 5 1 3 -4 6 4 12 16 7↑←←←←↑←←←←↑←←←最大的S(i)值最大和区间的回溯过程3 1 7 15 2 34 2 7 6 2 8 4 99-317-1523-42-76-284-9S(i) 9 6 7 14 -1 2 5 1 3 -4 6 4 12 16 7↑←←←←↑←←←←↑←←←←时间复杂度为: O(n)例:最长公共子序列问题•子序列: S的子序列是由S删除掉0个或多个字符后得到的.•如president的子序列可为: pred, sdn, ”president”:pred sdnpredent等.•最长公共子序列问题,顾名思义,是确定两个序列之公共子序列中长度最大者.最长公共子序列问题(the longest common subsequence, LCS)•举例1序列1:president–序列2:providence最长公共子序列为r e s i d e n tpp r o v i d e n c e最长公共子序列问题(the longest common subsequence, LCS)•举例2序列1:algorithm–序列2:alignment最长公共子序列为a l o r i t h mga l i g n m e n t最长公共子序列的递归关系•令A=a1 a2 … a m和B=b1 b2 … b n•定义len(i, j):字符串a1 a2 … a i和b1 b2 …b j的最长公共子序列的长度•从一个适当的初始化开始,len(i, j)可以按照下式计算按照式计算0 if i=0 or j=0,Len(i, j) = len(i-1, j-1)+1 if i, j>0 and a i = b j, Len(i j)=len(i-1j-1)+1if i j>0and a=bmax(len(i, j-1), len(i-1, j)) if i, j>0 and a i≠b j,最长公共子序列的递归计算最长公共子序列的填表计算j最长公共子序列的回溯过程最长公共子序列的回溯过程输出为: priden:priden生物信息学中的序列比对问题生物信息学中的序列比对问题序列比对图个简单的得分方案一个简单的得分方案分值的递归计算分值的递归计算•令A=a1a2… a m和B=b1b2… b n•定义S i, j:字符串a1a2… a i 和b1b2… b j的最优比对(alignment)得分•从一个适当的初始化开始,S i, j可以按照式计算下式计算i1j +w(a,-)S i-1, j w(a i, )S i, j= max S i-1, j-1 + w(a i, b j)Si, j-1+ w(-, b j)填表计算填表计算填表计算填表计算作业:11.写出局部序列比对的动态规划算法.局部序列比对就是对于两条给定序列,寻找它们之间得分最大的子序列比对.22.写出带开窗口罚分的序列比对动态规划算法.带开窗口罚分的序列比对即在正常的序列比对问题中除了考虑每个空格的罚分,还考虑了开空格窗口的罚分.如下图所示3. 写出最大和区间的动态规划算法步骤,并举例说明。
附件:相关题目(21)2-1• 1. 设某公司需要制定一种产品今后4个时期的采购与库存计划,根据市场预测在今后四个时期内,该产品的存计划根据市场预测在今后四个时期内该产品的市场需求量见下表。
如果每批产品的固定采购成本费为3千元,若不采购成本费为0元;每单位产品的成本价为1千元;每个时期所允许的最大采购量不超过6个单位;对于每个时期末没能售出的产品,每单位产品需要储存费0.5千元。
已知第一个时期的初始库存量和第四个时期末的库存量都为0。
试问该公司应如何安排各个时期的采购与库存才能在满足市场需求的条件,才能在满足市场需求的条件下,使总的成本费最少。
时期1234需求量2324附件:相关题目(22)2-2•(2)设有n个工件需要在机床A,B上加工,每个工件都必须经过先A后B的两道加工工序,我们一号码i(1<i<n)表示第i个工件,以Ai,Bi分别表示工件i在A,B上的加工时间,由于工序的不同,所用的时间也是不同的,因此,加工完这个工件的总时间是排列顺序的函数,现在的问题是怎样安排加工顺序才使总时间最少?给定5个工件,在A,B上的加工时间如下表所示.n12345A37457B62734动态规划的发展过程z20世纪50年代初美国数学家R.E. Bellman等人在研究多阶段决策过程的优化问题时提出了在研究多阶段决策过程的优化问题时,提出了著名的最优化原理(principle of optimality)z把多阶段过程转化为一系列单阶段问题,逐个求解创立了“动态规划”属于运筹学求解,创立了动态规划,属于运筹学运筹学operational research或operations research“运筹”出于《汉书·高帝纪》运筹出于汉书高帝纪“夫运筹帷握之中,决胜于千里之外,吾不如子房。
”z动态规划在工程技术、经济管理、工业生产、交等动态规划的发展过程•1948-1952 形成期•1950确定了动态规划(Dynamic Programming )这一名称•1y of Dynamic Programming,Proc. Nat.y y g g Acad. Sci. , VOI. 38. p. 716.1952.•理论完善期•1957年,Bellman出版了动态规划的第一本书R. Bellman, Dynamic Programming, Princeton, NJ: Princeton动态规划的发展过程•1960年R.A. Howard出版了动态规划在马尔科夫过程中的应用•1961年Bellman出版了动态规划在控制理论的应用1961.1961•1962年Bellman出版了‘动态规划应用’一书R. Bellman and S. Drejfus, Applied DynamicProgramming, Princeton, NJ: Princeton University Press, 1962.•……Dynamic Programming的由来“Dynamic Programming”的由来当时的美国国防部的部长Wilson对于研究尤其是数学研究有着病态的害怕和敌对情绪,每当他听到研究这术语有着病态的害怕和敌对情绪每当他听到研究这一术语,他就会面红耳赤,暴怒起来,而RAND 公司受雇于空军,Wilson实质上领导空军,Bellman 为了能够瞒住WilWilson和空军自己其实在RAND公司中所做的是数学研究这一事实,他给自己关于multistage decision processes 的研究工作命名为:y c og g e从事Dynamic Programming---Bellman数学研究的保护伞这一命名具有一箭双雕的功效:—Dynamic (在经典的物理意义下,具有绝对精确的含义)y p –Dynamic 作为一个形容词,有很有趣的性质:it’s impossibleto use the word, dynamic, in a pejorative sense.–Programming-analogy to linear programming and other forms of optimizationp。