### 数学代考|计算复杂性理论代写computational complexity theory代考|Agent Based Modeling and Computer Languages

statistics-lab™ 为您的留学生涯保驾护航 在代写计算复杂性理论computational complexity theory方面已经树立了自己的口碑, 保证靠谱, 高质且原创的统计Statistics代写服务。我们的专家在代写计算复杂性理论computational complexity theory代写方面经验极为丰富，各种代写计算复杂性理论相关的作业也就用不着说。

• Statistical Inference 统计推断
• Statistical Computing 统计计算
• (Generalized) Linear Models 广义线性模型
• Statistical Machine Learning 统计机器学习
• Longitudinal Data Analysis 纵向数据分析
• Foundations of Data Science 数据科学基础

## 数学代考|计算复杂性理论代写computational complexity theory代考|Types of Computer Languages

A ‘computer language’ is a method of noting directives for computers. ‘Computer programming languages,’ or ‘programming languages,’ are an important category of computer languages. A programming language is a computer language that allows any computable activity to be expressed. This article focuses on computer programming languages rather than the more general computer languages since virtually all agent-based modeling systems require the power of programming languages. This article sometimes uses the simpler term ‘computer languages’ when referring to computer programming languages. According to Watson [47]:
Programming languages are used to describe algorithms, that is, sequences of steps that lead to the

solution of problems … A programming language can be considered to be a ‘notation’ that can be used to specify algorithms with precision.
Watson [47] goes on to say that “programming languages can be roughly divided into four groups: imperative languages, functional languages, logic programming languages, and others”. Watson [47] states that in imperative languages “there is a fundamental underlying dependence on the assignment operation and on variables implemented as computer memory locations, whose contents can be read and altered”. However, “in functional languages (sometimes called applicative languages) the fundamental operation is function application” [47]. Watson cites LISP as an example. Watson [47] continues by noting that “in a logic programming language, the programmer needs only to supply the problem specification in some formal form, as it is the responsibility of the language system to infer a method of solution”.

A useful feature of most functional languages, many logic programming languages, and some imperative languages is higher-order programming. According to Reynolds [35]:
In analogy with mathematical logic, we will say that a programming language is higher-order if procedures or labels can occur as data, i. e., if these entities can be used as arguments to procedures, as results of functions, or as values of assignable variables. A language that is not higher-order will be called first-order.
Watson [47] offers that “another way of grouping programming languages is to classify them as procedural or declarative languages”. Elaborating, Watson [47] states that:
Procedural languages … are those in which the action of the program is defined by a series of operations defined by the programmer. To solve a problem, the programmer has to specify a series of steps (or statements) which are executed in sequence.

## 数学代考|计算复杂性理论代写computational complexity theory代考|Requirements of Computer Languages for Agent-Based Modeling

The requirements of computer languages for agent-based modeling and simulation include the following:

• There is a need to create well defined modules that correspond to agents. These modules should bind together agent state data and agent behaviors into integrated independently addressable constructs. Ideally these mod-

ules will be flexible enough to change structure over time and to optionally allow fuzzy boundaries to implement models that go beyond methodological individualism [20].

• There is a need to create well defined containers that correspond to agent environments. Ideally these containers will be recursively nestable or will otherwise support sophisticated definitions of containment.
• There is a need to create well defined spatial relationships within agent environments. These relationships should include notions of abstract space (e.g., lattices), physical space (e.g., maps), and connectedness (e.g. networks).
• There is a need to easily setup model configurations such as the number of agents; the relationships between agents; the environmental details; and the results to be collected.
• There is a need to conveniently collect and analyze model results.

Each of the kinds of programming languages namely, unstructured languages, structured languages, object-oriented languages, logic-based languages, and functional languages can address these requirements.

Unstructured languages generally support procedure definitions which can be used to implement agent behaviors. They also sometimes support the collection of diverse data into independently addressable constructs in the form of data structures often called ‘records’. However, they generally lack support for binding procedures to individual data items or records of data items. This lack of support for creating integrated constructs also typically limits the language-level support for agent containers. Native support for implementing spatial environments is similarly limited by the inability to directly bind procedures to data.
As discussed in the previous section, unstructured languages offer statements to implement execution jumps. The use of jumps within and between procedures tends to reduce module cohesion and increase module coupling compared to structured code. The result is reduced code maintainability and extensibility compared to structured solutions. This is a substantial disadvantage of unstructured languages.

## 数学代考|计算复杂性理论代写computational complexity theory代考|Domain-Specific Languages

Domain-specific languages (DSL’s) are computer languages that are highly customized to support a well defined application area or ‘domain’. DSL’s commonly include a substantial number of keywords that are nouns and verbs in the area of application as well as overall structures and execution patterns that correspond closely with the application area. DSL’s are intended to allow users to write in a language that is closely aligned with their area of expertise.

DSL’s often gain their focus by losing generality. For many DSL’s there are activities that can be programmed in most computer languages that cannot be programmed in the given DSL. This is consciously done to simplify the DSL’s design and make it easier to learn and use. If a DSL is properly designed then the loss of generality is often inconsequential for most uses since the excluded activities are chosen to be outside the normal range of application. However, even the best designed DSL’s can occasionally be restrictive when the bounds of the language are encountered. Some DSL’s provide special extension points that allow their users to program in a more general language such as C or Java when the limits of the DSL are reached. This feature is extremely useful, but requires more sophistication on the part of the user in that they need to know and simultaneously use both the DSL and the general language.

DSL’s have the potential to implement specific features to support ‘design patterns’ within a given domain. Design patterns form a “common vocabulary” describing tried and true solutions for commonly faced software design problems (Coplien [6]). Software design patterns were popularized by Gamma et al. [13]. North and Macal [29] describe three design patterns for agent-based modeling itself.

## 数学代考|计算复杂性理论代写computational complexity theory代考|Types of Computer Languages

“计算机语言”是一种记录计算机指令的方法。“计算机编程语言”或“编程语言”是计算机语言的一个重要类别。编程语言是一种允许表达任何可计算活动的计算机语言。本文重点关注计算机编程语言，而不是更通用的计算机语言，因为几乎所有基于代理的建模系统都需要编程语言的强大功能。在提及计算机编程语言时，本文有时会使用更简单的术语“计算机语言”。根据 Watson [47]：

Watson [47] 继续说“编程语言可以大致分为四组：命令式语言、函数式语言、逻辑编程语言等”。Watson [47] 指出，在命令式语言中“存在对赋值操作和实现为计算机内存位置的变量的基本潜在依赖，其内容可以被读取和更改”。然而，“在函数式语言（有时称为应用程序语言）中，基本操作是函数应用程序”[47]。Watson 以 LISP 为例。Watson [47] 继续指出“在逻辑编程语言中，程序员只需要以某种形式提供问题规范，因为推断解决方法是语言系统的责任”。

Watson [47] 提出“对编程语言进行分组的另一种方法是将它们分类为过程性或声明性语言”。详细说明，Watson [47] 指出：

## 数学代考|计算复杂性理论代写computational complexity theory代考|Requirements of Computer Languages for Agent-Based Modeling

• 需要创建与代理相对应的定义良好的模块。这些模块应该将代理状态数据和代理行为绑定到集成的独立可寻址结构中。理想情况下，这些 mod-

• 需要创建与代理环境相对应的定义良好的容器。理想情况下，这些容器将是递归可嵌套的，或者将支持复杂的包含定义。
• 需要在代理环境中创建明确定义的空间关系。这些关系应该包括抽象空间（例如格子）、物理空间（例如地图）和连通性（例如网络）的概念。
• 需要轻松设置模型配置，例如代理数量；代理人之间的关系；环境细节；以及要收集的结果。
• 需要方便地收集和分析模型结果。

## 数学代考|计算复杂性理论代写computational complexity theory代考|Domain-Specific Languages

DSL 经常通过失去通用性来获得他们的关注。对于许多 DSL，有一些活动可以用大多数计算机语言进行编程，而这些活动不能用给定的 DSL 进行编程。有意识地这样做是为了简化 DSL 的设计并使其更易于学习和使用。如果 DSL 设计得当，那么对于大多数用途来说，一般性的损失通常是无关紧要的，因为被排除的活动被选择在正常的应用范围之外。然而，即使是设计最好的 DSL 有时也会在遇到语言边界时受到限制。一些 DSL 提供了特殊的扩展点，允许用户在达到 DSL 的限制时使用更通用的语言（例如 C 或 Java）进行编程。这个功能非常有用，

DSL 有可能实现特定功能以支持给定域内的“设计模式”。设计模式形成了一个“通用词汇”，描述了针对常见软件设计问题的经过验证的真实解决方案（Coplien [6]）。Gamma 等人推广了软件设计模式。[13]。North 和 Macal [29] 描述了基于代理的建模本身的三种设计模式。

## 有限元方法代写

tatistics-lab作为专业的留学生服务机构，多年来已为美国、英国、加拿大、澳洲等留学热门地的学生提供专业的学术服务，包括但不限于Essay代写，Assignment代写，Dissertation代写，Report代写，小组作业代写，Proposal代写，Paper代写，Presentation代写，计算机作业代写，论文修改和润色，网课代做，exam代考等等。写作范围涵盖高中，本科，研究生等海外留学全阶段，辐射金融，经济学，会计学，审计学，管理学等全球99%专业科目。写作团队既有专业英语母语作者，也有海外名校硕博留学生，每位写作老师都拥有过硬的语言能力，专业的学科背景和学术写作经验。我们承诺100%原创，100%专业，100%准时，100%满意。

## MATLAB代写

MATLAB 是一种用于技术计算的高性能语言。它将计算、可视化和编程集成在一个易于使用的环境中，其中问题和解决方案以熟悉的数学符号表示。典型用途包括：数学和计算算法开发建模、仿真和原型制作数据分析、探索和可视化科学和工程图形应用程序开发，包括图形用户界面构建MATLAB 是一个交互式系统，其基本数据元素是一个不需要维度的数组。这使您可以解决许多技术计算问题，尤其是那些具有矩阵和向量公式的问题，而只需用 C 或 Fortran 等标量非交互式语言编写程序所需的时间的一小部分。MATLAB 名称代表矩阵实验室。MATLAB 最初的编写目的是提供对由 LINPACK 和 EISPACK 项目开发的矩阵软件的轻松访问，这两个项目共同代表了矩阵计算软件的最新技术。MATLAB 经过多年的发展，得到了许多用户的投入。在大学环境中，它是数学、工程和科学入门和高级课程的标准教学工具。在工业领域，MATLAB 是高效研究、开发和分析的首选工具。MATLAB 具有一系列称为工具箱的特定于应用程序的解决方案。对于大多数 MATLAB 用户来说非常重要，工具箱允许您学习应用专业技术。工具箱是 MATLAB 函数（M 文件）的综合集合，可扩展 MATLAB 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。